Ruby 初心者スレッド Part 65

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん (ワッチョイ 0f80-JI52)
垢版 |
2018/12/22(土) 04:43:34.03ID:84E3pYZa0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 64
https://mevius.5ch.net/test/read.cgi/tech/1535797516/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2019/11/08(金) 23:51:37.33ID:sLgGgSr40
シンボル・・・型が無い言語で、型を気付かれないように書くための手段の一つ

型がないとされる言語でも、123は数字だが、"123"は文字というように
書き方で型をこっそりと記述している。
他にも/abc/は正規表現型、1.0は浮動小数点型などの定義方法がある。
シンボルはその一つで、:で始めることにより、シンボル型の値を書くことができる
2019/11/08(金) 23:57:04.08ID:q9/Fdf+e0
>>841
リファレンスにも書いてるけどシンボルとブロックだと扱いが違う
ただパフォーマンスにシビアな箇所じゃなければ特別気にするほどの違いはない
https://ideone.com/p5oW7Y
2019/11/08(金) 23:59:15.28ID:q9/Fdf+e0
>>843
その「型が無い言語」とか「型がないとされる言語」という理解は間違ってるよ
2019/11/09(土) 00:09:55.38ID:PhKUzZj90
シンボルと文字列を区別したのは失敗だったとmatzも言ってるな
streamという途中でぶん投げた新言語ではその区別がなくなってる
2019/11/09(土) 02:32:49.02ID:d5YSql6x0
>>845
反論は「あってるよ」だけで十分そうだねw
2019/11/09(土) 12:03:54.60ID:u1W/mjBNM
>>842
文字列リテラルよりも記述が簡便だからという理由により、本来文字列を使うべき用途にもシンボルが乱用された結果、
シンボルGCなどという頭の悪いものが誕生したりしたんだよな
誰がどう見ても完全に失敗
849デフォルトの名無しさん (ワッチョイ 9f2c-E8Ce)
垢版 |
2019/11/09(土) 12:04:25.68ID:Ypm9+s0e0
シンボルは、識別子を表すために作られたのか、数字で始められないだろ。
下はエラーになる

p :"1" # OK

p :1 # エラー
2019/11/09(土) 12:13:45.55ID:X62CmnUE0
>>848
あいやそっちじゃなくてinjectがシンボルを引数にとってブロックみたいな処理ができるって方の話
mapとかは&がいるんだよね?
2019/11/09(土) 12:16:59.76ID:u1W/mjBNM
>>849
リテラルが書けないだけで、to_symすれば数字始まりのシンボルも普通に作れる
だから型が文字列と別である理由にはならない
2019/11/09(土) 12:19:33.79ID:u1W/mjBNM
>>850
すまん848は>>846に対するレスだ
&:が後付けだから一貫性がないだけで、深い意味はない
2019/11/09(土) 14:08:02.54ID:MvykJ39t0
>>850
sliceやchunkのような分割系以外は
ブロックがなければEnumeratorを返すのを基本ルールにしてるから
mapはシンボルを取る形がないんじゃないかな

injectはEnumeratorを返すものじゃないから
ちょっと気を利かしてシンボルを取る形を加えたのかもね
2019/11/14(木) 00:10:26.40ID:GMI1Y3D90
今年が2.7ってことは
2022年には3か2.10か
2019/11/14(木) 17:40:11.04ID:BO+nDgNta
Rubyで2値の差を得る簡単なメソッドとかないかな
def diff(num1, num2)
 max = [n1, n2].max
 min = [n1, n2].min
 (max - min)
end
p diff(-3, 7)   #=> 10
とかだと見てくれ良くないし無駄も多い
2019/11/14(木) 18:15:34.71ID:baSi3t2Kr
(num1 - num2).absじゃあかんのか?
2019/11/15(金) 01:07:32.58ID:em064pO70
オラもそう思った
2019/11/15(金) 07:32:43.98ID:1PuPU5S7a
>>854
最初の小数点の次の数は二桁以上にしない縛りなかったっけ?
2019/11/21(木) 19:57:13.88ID:0YdMrNdaa
Rubyの平均年収は全言語中最低
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/01068/111100004/
2019/11/21(木) 23:28:58.12ID:tUWUNbqx0
そんなに年収ほしければCOBOLやれば?
861デフォルトの名無しさん (ワッチョイ 9305-CPe6)
垢版 |
2019/11/23(土) 01:26:32.66ID:DazDco060
今月までプログラミングに一切触れたことのなかった初心者です
引数を配列にして
メソッド内で変数aに引数を代入
その後変数aの0番目にnを代入すると引数の0番目まで巻き添えでnになってしまうんですがそういう仕様なんでしょうか?
配列だけで起こる現象のようなんですが
method(0,1)と呼んで
def method(array)
a = array
a[0] = 10
puts a
puts array
end
とするとaもarrayも[10,1]となってしまいます
862デフォルトの名無しさん (ワッチョイ 9305-CPe6)
垢版 |
2019/11/23(土) 01:27:53.59ID:DazDco060
method([0,1])でした
失礼しました
2019/11/23(土) 03:03:35.14ID:8xX8HZu80
>>861
そういう仕様です

https://magazine.rubyist.net/articles/0032/0032-CallByValueAndCallByReference.html
864デフォルトの名無しさん (ワッチョイ 9305-CPe6)
垢版 |
2019/11/23(土) 10:59:21.53ID:DazDco060
>>863
ありがとうございます
アドレスの参照先をコピーしてるだけだったんですね
理解しました
調べたところMarshalで書き出せばバイト値もコピーできるようなのでこの方法でいきます
2019/11/23(土) 14:01:09.34ID:8xX8HZu80
>>864
使い方にもよるのかもしれんが階層が浅くて固定ならdupで十分じゃない?

foo = [[1,2], [3,4], [5,6,7]]
bar = foo.dup

bar[0] = [9,9,9]
foo #=> [[1, 2], [3, 4], [5, 6, 7]]
bar #=> [[9, 9, 9], [3, 4], [5, 6, 7]]

bar[1].push 200
foo #=> [[1, 2], [3, 4, 200], [5, 6, 7]]
bar #=> [[9, 9, 9], [3, 4, 200], [5, 6, 7]]

bar[2] = bar[2].dup.push 300
foo #=> [[1, 2], [3, 4, 200], [5, 6, 7]]
bar #=> [[9, 9, 9], [3, 4, 200], [5, 6, 7, 300]]

階層が深くて手動でdupするのが大変ならdeep_dup

require 'active_support'
require 'active_support/core_ext/object/deep_dup'

baz = foo.deep_dup
baz[1].push 300
foo #=> [[1, 2], [3, 4, 200], [5, 6, 7]]
baz #=> [[1, 2], [3, 4, 200, 300], [5, 6, 7]]
2019/11/23(土) 20:53:58.93ID:fygFNKSM0
年収は、5大SIer, Java などの土方系・奴隷、多重請負構造では、1社間に入る度に、3割抜かれる!

顧客が100万円払っても、間1 が、30万円抜いて、
自社には70万円で来るので、自分の給料は、25万円ぐらいw

顧客が100万円払っても、間1 が、30万円抜いて、間2 が、20万円抜くと、
自社には50万円で来るので、自分の給料は、20万円ぐらいw

だから、ハローワークのIT 講座でも、奴隷になる2次請け以降に、就職しないように言われる。
Javaの平均年収が600万円なら、300万円の奴隷と、900万円の大企業の奴隷使いがいる。
元々、大企業の人は、給料が良いだけ。
給料は言語に関係ない。労働形態による!

抜きを警戒する人は、派遣なら3割抜かれて、後は自分の給料になるけど、
仕事がない期間の保証がない。
それか、フリーランスのエージェントで、1割ぐらいの抜きを探すか

一方、Ruby などの自社サービス系は、多重請負構造じゃないから抜かれない
2019/11/23(土) 21:01:37.75ID:fygFNKSM0
C/C++ 以外のほとんどの言語では、参照がコピーされるだけ!
インスタンスを作っていない

だから、実際のインスタンス数は、clone, dup, new された回数を、チェックすれば良い
868デフォルトの名無しさん (ワッチョイ fb8c-qZD/)
垢版 |
2019/11/23(土) 22:03:14.93ID:uAZdpObm0
土方系の仕事って何ですか
2019/11/23(土) 22:07:51.58ID:jA/F562DM
>>866
そんなRubyの平均年収は全言語中最低
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/01068/111100004/
2019/11/24(日) 01:52:22.27ID:iwyjZSbL0
>>868
顧客に価値を提供すること
2019/11/24(日) 02:00:18.56ID:2vFps37N0
土方にはなるな
SIerにはなるな
2019/11/24(日) 02:02:59.56ID:Q6cceAnpa
しかし現実には大半のRubyistよりもSIerのドカタの方が給料は高いのであった
2019/11/24(日) 04:46:27.73ID:kT5P2hJJ0
給料だけでもないやろ。
つーか、どうでもいいから。んな話は。
2019/11/24(日) 15:33:55.35ID:Gqvqz24c0
要件定義、外部設計を受注できるプライマリの
会社に行かないと高収入はないよ。
内部設計、プログラミングは下流工程だから下請けに流される。

3割抜くとか言うが、粗利3割はどの業界でも普通だし。
875デフォルトの名無しさん (ワッチョイ fb8c-qZD/)
垢版 |
2019/11/24(日) 18:51:34.90ID:ednGVdun0
言語を知っている。いや知っているだけで金になる仕事はないから
2019/11/24(日) 23:07:40.54ID:Q5WFFNoW0
上流工程が、下級工程の給料を決める

だから、YouTube で有名なKENTA が、
クライアント側ではなく、サーバー側・構築運用へ行った

今世紀最大の起業家、Ruby でVagrant を作った、
HashiCorp のMitchell Hashimoto も、Go でTerraform を作った!

富・技術革新が集中する所に、Hashimoto は行く!

実際に、車のメーカーの企業の時価総額は変わらないけど、
アマゾン・Google などのサーバー屋は、100兆円企業になってる!
2019/11/25(月) 04:07:09.54ID:gVPe0v4t0
>>876
日本のIT企業はほぼ国内事業しかやってないし
規模も小さいからどうしても時価総額は上がらないんだろうね
あと大したことやってない
878デフォルトの名無しさん (ワイーワ2 FF63-KqLj)
垢版 |
2019/11/25(月) 12:33:00.08ID:pjJuONFZF
>上流工程が、下級工程の給料を決める
>クライアント側ではなく、サーバー側・構築運用へ行った

上流ってそういう意味か?ωωω
2019/11/25(月) 16:27:01.28ID:Lb2w9ntUM
Amazonの売上の大半はEC
Googleの売上の大半は広告
どっちも実際には上物で稼いでいて、AWSやGCPの売上比率は15%程度に過ぎない
キチガイの目に映る世界と実態の間にはは大きな乖離があることがわかるだろう
2019/11/25(月) 17:19:36.92ID:vZmdeQAZ0
まあ利益出してるところじゃなくて"売上"というのなら、
ECが一番やろうな。そりゃ
881デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
垢版 |
2019/11/28(木) 00:37:50.62ID:WsOSEkue0
Windows10, WSL, Ubuntu 16.4 で、
libruby2.3, ruby2.3 の更新が来た!

Ruby2.3 は、もうサポート切れだけど、まだ誰かがサポートしてるw
Ubuntu チームか
2019/11/28(木) 17:42:14.05ID:dnvj190uM
ビルドしてるだけやろ。
883デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
垢版 |
2019/11/30(土) 04:33:29.25ID:HbGyzSLF0
Vagrant, Chef, RSpec, Serverspec などの、

DSL の書き方だけができる、ライブラリ・フレームワークはないの?
2019/11/30(土) 07:04:52.88ID:WKFbtD9B0
>>883
なんか面白そうだね?
どういう事?
2019/11/30(土) 09:10:10.03ID:HbGyzSLF0
環境の構築テストなどを、すごく簡潔に、宣言っぽく書いている

例えば、ファイル・ディレクトリなどを作る場合でも、エラー処理もなく、1行で書いてる。
Maven, Gradle も、こういう宣言っぽい感じかな?

便利だなと思って
2019/12/02(月) 07:50:51.40ID:sFARCTmI0
k-sato_at_oiaxって実はもう死んでたりするの?
887デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
垢版 |
2019/12/02(月) 22:47:05.03ID:H5nAExhM0
改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9/7

この本が、株式会社オイアクス監修だろ。
著者2人は、株式会社ルビキタスにも所属している
2019/12/03(火) 09:08:31.07ID:I9YoNGrF0
義務教育にrubyが組み込まれなかった時点でrubyは終わりだろ
ポジション取られたのがscratch

ついでにオブジェクト脳の本の社長起立プログラム、あれ最高にキモイ
889デフォルトの名無しさん (ワッチョイ 232c-+J45)
垢版 |
2019/12/05(木) 09:12:33.74ID:fTTGdtWT0
Windows のPowerShell で、1-liner で、webrick サーバーを立てるのに、

上だとエラーになって、
下のように、%Q("./") でクォートすると、正常に動くのは、なぜでしょう?

どういうカラクリなの?

ruby -rwebrick -e 'WEBrick::HTTPServer.new(:DocumentRoot => "./", :Port => 8888).start'

ruby -rwebrick -e 'WEBrick::HTTPServer.new(:DocumentRoot => %Q("./"), :Port => 8888).start'
2019/12/05(木) 09:19:26.64ID:wT3fRGGOr
windowsで-e の後にシングルクォーテーション使ってるからでしょ

ruby -e 'puts "hello"'
でもエラーになるぞ
2019/12/05(木) 09:20:45.92ID:wT3fRGGOr
ちな
ruby -e 'puts \"hello\"'

ruby -rwebrick -e 'WEBrick::HTTPServer.new(:DocumentRoot => \"./\", :Port => 8888).start'
なら問題ない
2019/12/05(木) 10:48:53.10ID:fTTGdtWT0
ruby -e 'puts "hello"'
は、コマンドプロンプトではエラーにならないが、
PowerShell ではエラーになるw

ruby -e 'puts %Q("hello")'
は、コマンドプロンプト・PowerShell の両方で正常

ruby -e 'puts "hello"'
が、コマンドプロンプト・PowerShell から、Rubyに渡る際に、どう変換されるのか?

そのカリクリを知りたい
893デフォルトの名無しさん (アウウィフ FFa9-MVf8)
垢版 |
2019/12/05(木) 10:57:49.63ID:IbmhSLeWF
WSL使え

あるいはWindowsのコマンドプロンプトなら
ruby -e "puts 'hello'"
2019/12/05(木) 11:11:38.90ID:wT3fRGGOr
だから'使うなっつってんだろアホか
895デフォルトの名無しさん (ワッチョイ 7501-MVf8)
垢版 |
2019/12/05(木) 11:21:52.16ID:q0kDwfyl0
製造者がWindowsが憎いMicrosoftが憎いと言ってるのに、わざわざWindows上で使わなくても。
2019/12/05(木) 21:12:26.41ID:h+M+c6Hd0
コマンドプロンプトのクォート解釈は、控えめに言ってメチャクチャだからな。
昔のものだし、しかたない。

それに比べたら、PowerShellははるかにまともで現代的。
897889 (ワッチョイ 232c-+J45)
垢版 |
2019/12/05(木) 23:40:17.64ID:fTTGdtWT0
まとめ。
Windows10 で、1-liner のruby -e で順に、1〜3 を実行した場合

1. 'puts "hello"'
2. 'puts %Q("hello")'
3. "puts 'hello'"

1〜3は、コマンドプロンプトと、WSL, Ubuntu 16.04 では、
hello, "hello", hello

PowerShell では、
エラー, "hello", hello
898デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/06(金) 10:14:28.56ID:uUae0oO6F
pythonは””も’’も意味一緒だが
rubyは””と''は微妙に意味違うよな
899デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/06(金) 10:16:15.68ID:uUae0oO6F
'puts %Q(hello)'
あるいは
"puts %Q(hello)"
で良いのに
2019/12/06(金) 12:46:17.58ID:IktivxOB0
>>899
まとめ。
Windows10 で、1-liner のruby -e で順に、1〜2 を実行した場合

1. 'puts %Q(hello)'
2. "puts %Q(hello)"

コマンドプロンプト・PowerShell、WSL, Ubuntu 16.04 のすべてで、
hello
と出力された!
2019/12/06(金) 20:18:06.92ID:nE0DnhAQa
>>898
微妙というか、ダブルクォートは中身を命令として実行し、
シングルクォートは中身を文字列として処理する。

全然違うぞ
2019/12/06(金) 21:53:56.86ID:P1BfZN9u0
‘‘
’’
””
‘’

眼力チェック
2019/12/06(金) 23:26:41.64ID:IktivxOB0
1-liner を、" " で囲むと「$ \ ` !」などの機能が働くので、
それよりも強いエスケープである、' ' で囲む

' ' で、すべての特殊文字を無効化して、シェルに解釈させないため
904デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/07(土) 14:11:49.26ID:qPdUR/SgF
>>902
``
2019/12/07(土) 16:01:04.83ID:9WC+Jh540
>>903
それが結局、シェルによるっつー話やろ。
906デフォルトの名無しさん (ワッチョイ 232c-+J45)
垢版 |
2019/12/09(月) 06:17:52.14ID:+FpDkG8n0
rdoc の説明を読んでるけど、難しい

皆、自作ライブラリをrdoc用に書いてるの?
2019/12/09(月) 06:52:14.04ID:+FpDkG8n0
RDoc よりも、YARD の方が簡単かな?
908デフォルトの名無しさん (ワッチョイ 62ad-I3wE)
垢版 |
2019/12/17(火) 13:35:16.51ID:ObjwLX/w0
配列に0から任意の整数を重複なく格納するメソッドを作ってみたんですが、戻り値がnillになってしまいます
どうすれば解決できますか?
def random_sort(array, n)
array = []
judgement_array = [false]
i = 0

while(i < n + 1)
array[i] = rand(n + 1)
k = 0
while(k < i)
judgement_array[k] = array[k] == array[i]
k += 1
end
next if judgement_array.any?
i += 1
end
end

array1 = []
p random_sort(array1, 9)
909デフォルトの名無しさん (アウウィフ FF3b-uKDx)
垢版 |
2019/12/17(火) 13:41:59.97ID:rApV4krMF
shuffle! shuffle!
910デフォルトの名無しさん (ワッチョイ 62ad-I3wE)
垢版 |
2019/12/17(火) 14:23:19.78ID:ObjwLX/w0
>>908です
定義の最後の部分で戻り値を記述するのを忘れており
記述したら解決しました
2019/12/17(火) 16:20:58.58ID:kLn+0u7yM
ズコー
2019/12/17(火) 16:47:49.10ID:o3ShK0md0
p [*0..9].shuffle
913デフォルトの名無しさん (ワッチョイ efd2-LrQS)
垢版 |
2019/12/18(水) 17:27:34.36ID:JutxhN8f0
digitsメソッドが返す配列を元の数値に戻すには
自分で計算するしかないのかな
何かついになるメソッドがないかと
探してみたけどわからなかった
2019/12/18(水) 22:00:34.91ID:LSlKy/12r
ないね

p [1, 1, 0, 1, 'hoge'].to_i(2) # => 11
みたいなString#のあってもいいよね
2019/12/18(水) 22:01:10.07ID:LSlKy/12r
誤爆

みたいなString#to_iに相当するメソッドがあってもいいよね
2019/12/18(水) 23:03:33.03ID:j3JURanB0
これの逆を考えるか

123.to_s.chars.map(&:to_i).reverse
123.digits
#=> [3, 2, 1]

他には、Array#pack、String#unpack とか
2019/12/18(水) 23:17:07.42ID:N9ghlCsW0
自分で計算というか.reverse.join.to_iすればいいよね?
2019/12/19(木) 01:41:56.39ID:GB4b8bgW0
見た目シンプルだけど一旦文字列を経るのがモヤっとする
かといってreverse_each.inject(0){|v,d|v*10+d}とかやると何やってるのか分かりづらいしなあ
2019/12/19(木) 11:46:12.90ID:rpR+KBR90
>>914
Math::BaseCalc - Convert numbers between various bases - metacpan.org
https://metacpan.org/pod/Math::BaseCalc

昔探したがperlにはあるがrubyにはないtpyhonにも無い
なんで無いのか分からないほど便利な関数なのになんで無いんだ?
920デフォルトの名無しさん (ワイーワ2 FFdf-yOET)
垢版 |
2019/12/19(木) 12:17:12.46ID:+cpLTGtZF
tpyhonは知らんけどpythonにはnumpyでpackbitsがあるんやで
2019/12/19(木) 14:26:11.65ID:snKgfw1x0
>>919

>>914が言ってるのは単なる基数の変換じゃないよ
基数の変換はto_s, to_iに2~36までなら直接渡せるからそれで済ませることが多い
もっと大きい基数が必要になってもinjectやmapで簡単に変換可能だから
いくつかgemあるけど人気ない
2019/12/19(木) 18:11:13.04ID:4hkxYlHE0
こういう基本的なものは、言語そのものに内蔵しないといけない
gem作っても流行らない
2019/12/19(木) 19:30:39.32ID:xlnTqgd4r
だな
これだけなら自分で書いた方が速いもんね
2019/12/19(木) 19:39:22.26ID:NWHUALIi0
基本的でもないやろ。
2019/12/19(木) 21:39:52.45ID:snKgfw1x0
2/8/10/16進数の変換は基本的だろうけど
それはInteger#to_s, String#to_i, Integer()で十分

遊びで作るようなプログラムを除くと
それ以外で必要なのってBase64くらいでそれは別途用意されてる
2019/12/20(金) 00:26:43.84ID:Eyw3tJ4L0
digits/undigits 作ってみた (baseに配列が使える)
https://ideone.com/QJgsBR

[1, 1, 0, 1, 'hoge'].to_i(2) # => 11
123456789.to_i([24,60,60]) #=> [9,33,21,1428]
[9,33,21,1428].undigits([24,60,60]) #=> 123456789
2019/12/21(土) 23:51:56.40ID:u8N2YXrT0
digits/undigits 拡張してみた (baseをbit数に出来る,負の数で符号拡張)
https://ideone.com/xvXVfv

0b0011_100_01.my_digits([4,3,2],1) #=> [1,4,3]
[1,4,3].undigits([4,3,2],1).to_s(2) #=> "1110001" -> 11_100_01
0b0011_100_01.my_digits([-4,-3,-2],1) #=> [1,-4,3] (-4:符号拡張)
[1,-4,3].undigits([4,3,2],1).to_s(2) #=> "1110001"
2019/12/22(日) 00:15:06.50ID:O05uH48x0
さて問題です。>>926-927を説明なしに理解できますか?
929デフォルトの名無しさん (ワイーワ2 FFdf-hPjh)
垢版 |
2019/12/22(日) 13:06:26.92ID:6Us+wzVLF
質問です
Ruby on Rails で SQLite は使えますか?
使えるならどうやれば良いですか?
2019/12/22(日) 13:15:06.84ID:dEobfqv4a
>>929
https://www.google.com/search?q=Ruby+on+Rails+で+SQLite+は使えますか?
2019/12/22(日) 19:43:26.79ID:u+b66RrE0
SQLite, MySQL, PostgreSQL の、3大DB が使える!
MariaDB は知らないけど

ただし、SQLite は開発用専門で、本番では使えない!
2019/12/22(日) 22:51:56.37ID:bTmhsrle0
>>931
MariaDBもきっとだいたいだいじょうぶ。
まだまだMySQL互換だから。
2019/12/22(日) 23:02:08.75ID:O05uH48x0
>>931
SQLiteはiPhoneで重要な機能を提供してるのも知らないの?w
2019/12/23(月) 00:32:47.68ID:U5hT/i5g0
>>931 >>932
ドライバーが提供されてればMariaDBに限らずどのRDBでも使えるぞ

>>933
SQLiteは高い並行性が求められるWebアプリには適さない
Rails用のDBという文脈では>>931のSQLiteに対する認識は間違ってない
2019/12/23(月) 00:44:18.94ID:PWVJIOWbr
>>933
自分は文脈読めないバカですって自己紹介してるようなもんだな
2019/12/23(月) 13:18:52.98ID:+KUE/8IiM
まあ実際にはRailsアプリでSQLiteを使うことなんて無いから、使えないと考えても差し支えない
DBMSの癖に依存しないアプリなんて現実には不可能なので、テストであっても最初からプロダクションと同じDBMSを使えばよい
937931 (ワッチョイ 9f2c-1ZZR)
垢版 |
2019/12/24(火) 03:27:44.81ID:3XzgnZW70
SQLite は、ブラウザがURL などを保存するのに使っている

ただ、Rails では開発用専門で、本番では使えない
2019/12/24(火) 10:20:24.51ID:a69VsF/md
Dockerが主流になるまでは、ぽん置きで使えるようになる簡単なツール程度だと使ってたな、俺は。
2019/12/24(火) 19:19:54.79ID:fkiwsPE50
性能的にも信頼性的にも、御一人様用なんだろ。
940デフォルトの名無しさん (ワッチョイ 9f2c-1ZZR)
垢版 |
2019/12/25(水) 20:06:31.05ID:ZI663GBY0
C:/Ruby24-x64/lib/ruby/2.4.0/fileutils.rb を参考にして、
module 内 moduleの、DryRun みたいなモジュールを作った!
$stdout/$stderr で、出力先を切り替える

module MyFileUtils
@fileutils_output = $stdout

module_function
public

extend self
def f( *args, **options ) # 配列・ハッシュ
p @fileutils_output
@fileutils_output.puts( args, options )
end

module DryRun
include MyFileUtils
@fileutils_output = $stderr

module_function
public

extend self
def f( *args, **options )
super( *args, **options, noop: true, verbose: true )
end
end
end

MyFileUtils::DryRun.f( 1, 2, a: 8, b: 9 )
MyFileUtils.f( 1, 2, a: 8, b: 9 )
2019/12/25(水) 20:11:42.34ID:ZI663GBY0
出力は、

MyFileUtils::DryRun.f( 1, 2, a: 8, b: 9 )

#<IO:<STDERR>>
1
2
{:a=>8, :b=>9, :noop=>true, :verbose=>true}

MyFileUtils.f( 1, 2, a: 8, b: 9 )

#<IO:<STDOUT>>
1
2
{:a=>8, :b=>9}
2019/12/25(水) 20:18:49.19ID:c8DC0dTUr
ここはお前の日記帳じゃねえんだよ
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況