プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 63
https://mevius.5ch.net/test/read.cgi/tech/1523954817/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby コミュニティ公式
https://www.ruby-lang.org/
Ruby 初心者スレッド Part 64
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/09/01(土) 19:25:16.66ID:wk35+pf/530デフォルトの名無しさん
2018/10/07(日) 01:10:26.32ID:MD9q6Ezo >>525
{}とdo~endの結合の強さはちょくちょくわかりにくい部分として話題に上がるよね
メソッドに括弧無しで波括弧渡すとブロックとして解釈される
p ({aaa: 'aaa'}) #=> {:aaa => 'aaa'}
p {|_| hoge} #=> nil
{}とdo~endの結合の強さはちょくちょくわかりにくい部分として話題に上がるよね
メソッドに括弧無しで波括弧渡すとブロックとして解釈される
p ({aaa: 'aaa'}) #=> {:aaa => 'aaa'}
p {|_| hoge} #=> nil
531デフォルトの名無しさん
2018/10/07(日) 07:19:06.04ID:xeeSwodA 2.0系でも欠陥言語であることには変わりないのが盲目的だとわからんようだな
散々言われ続けてきてるのに
散々言われ続けてきてるのに
532デフォルトの名無しさん
2018/10/07(日) 08:38:56.71ID:xsjyG55/533デフォルトの名無しさん
2018/10/07(日) 08:43:48.15ID:xsjyG55/534デフォルトの名無しさん
2018/10/07(日) 08:49:48.66ID:uCAn2+3z 文法が理解できてないのを他人の責にしてるのか
というかトリップ付けろよ
というかトリップ付けろよ
535デフォルトの名無しさん
2018/10/07(日) 08:59:16.34ID:TSpot0BX 紛う事なきウンコ文法だけどRuby様がそうなってるんだから認めろ
信者様の仰ってる事はそういう事ですよね
信者様の仰ってる事はそういう事ですよね
536デフォルトの名無しさん
2018/10/07(日) 09:00:23.58ID:uCAn2+3z だからトリップつけろよ糞荒らし
それから板を荒らすな
それから板を荒らすな
537デフォルトの名無しさん
2018/10/07(日) 09:04:25.58ID:TSpot0BX 個人の主観的な思い込みで人格批判するばかりで
技術論が皆無なのは、信者に共通するパターン
技術論が皆無なのは、信者に共通するパターン
538デフォルトの名無しさん
2018/10/07(日) 09:07:47.78ID:uCAn2+3z お前以外に板を荒らしてる奴はいないんだが?
いるなら指摘してみろや
いるなら指摘してみろや
539デフォルトの名無しさん
2018/10/07(日) 09:35:43.25ID:xsjyG55/ def foo(*args, keywords:"KEYWORDS")
p args, keywords
end
foo(0) #=> [0] "KEYWORDS" # キーワード引数を省略。普通
foo(0, keywords: 1) #=> [0] 1 # キーワード引数を明示。普通
foo({keywords: 1}) #=> [] 1 # ハッシュはキーワード引数に展開される。成程
あれ?じゃあ可変長引数にハッシュを渡すこと出来なくね?
foo({x: 0}) #=> `foo': unknown keyword: x (ArgumentError)
やっぱりね。クソ文法すぎるw
p args, keywords
end
foo(0) #=> [0] "KEYWORDS" # キーワード引数を省略。普通
foo(0, keywords: 1) #=> [0] 1 # キーワード引数を明示。普通
foo({keywords: 1}) #=> [] 1 # ハッシュはキーワード引数に展開される。成程
あれ?じゃあ可変長引数にハッシュを渡すこと出来なくね?
foo({x: 0}) #=> `foo': unknown keyword: x (ArgumentError)
やっぱりね。クソ文法すぎるw
540デフォルトの名無しさん
2018/10/07(日) 10:05:00.76ID:8XeZ4VQt 気になるんなら教祖様にお願い(バグ報告)して直して貰えばええやん?
541デフォルトの名無しさん
2018/10/07(日) 10:17:46.69ID:SSKtSdRa >>540
具体的に指摘されるとそれかよ笑笑
具体的に指摘されるとそれかよ笑笑
542デフォルトの名無しさん
2018/10/07(日) 10:23:53.85ID:uCAn2+3z トリップはずっして書き込むな
543デフォルトの名無しさん
2018/10/07(日) 10:30:08.45ID:8XeZ4VQt トリップトリップ煩いガキだな
544デフォルトの名無しさん
2018/10/07(日) 10:37:33.53ID:uCAn2+3z お前以外に板を荒らしてる奴はいないんだが?
いるなら指摘してみろや
いるなら指摘してみろや
545デフォルトの名無しさん
2018/10/07(日) 10:45:06.78ID:Cd3g9IXw546デフォルトの名無しさん
2018/10/07(日) 11:02:49.07ID:uCAn2+3z ほんと自演が大好きだな
誰とは言わないが
誰とは言わないが
547デフォルトの名無しさん
2018/10/07(日) 12:02:40.27ID:AElP+NJt 信者「Rubyがウンコ過ぎて技術的に反論できない。荒らしって事にしとこ!」
www
www
548デフォルトの名無しさん
2018/10/07(日) 12:19:22.93ID:z2UVqEej549デフォルトの名無しさん
2018/10/07(日) 12:21:42.01ID:dWI643/y550デフォルトの名無しさん
2018/10/07(日) 12:46:57.24ID:MD9q6Ezo 僕の思ってる仕様と違うからクソ!って言ってるだけで草
551デフォルトの名無しさん
2018/10/07(日) 12:53:30.69ID:dVob98ND552デフォルトの名無しさん
2018/10/07(日) 13:03:32.25ID:dWI643/y いいからはやく説明しろよw
553デフォルトの名無しさん
2018/10/07(日) 13:06:28.31ID:5UiN/r2E 落ち着け猿
554デフォルトの名無しさん
2018/10/07(日) 13:16:32.65ID:8XeZ4VQt >>532
ところでこれ構文解析的にはどう結合したことになってるの?
ところでこれ構文解析的にはどう結合したことになってるの?
555デフォルトの名無しさん
2018/10/07(日) 13:17:33.72ID:uhglS2kq >>554
ブロックとして解釈されるから
ブロックとして解釈されるから
556デフォルトの名無しさん
2018/10/07(日) 13:26:52.15ID:HTGTaQ6M 最初言語仕様がなんかおかしいのかとも思ったけどif文で代入するようなコード書くヤツの頭がおかしいだけだった
557デフォルトの名無しさん
2018/10/07(日) 13:29:43.30ID:uhglS2kq558デフォルトの名無しさん
2018/10/07(日) 13:30:42.55ID:ZRxhxONC Ruby使いは、何ができたら一人前みたいな基準ある?
559デフォルトの名無しさん
2018/10/07(日) 13:36:26.42ID:6Dfeh4Yw Pythonなら深層学習のライブラリを扱えると一人前
560デフォルトの名無しさん
2018/10/07(日) 13:40:04.08ID:ZRxhxONC Rubyの話です
561デフォルトの名無しさん
2018/10/07(日) 13:54:32.35ID:8XeZ4VQt Railsで一通りサイトが作れる事じゃない?
結局Ruby単体で使ってもそれは別にRubyじゃなくてもいいものでしかない
結局Ruby単体で使ってもそれは別にRubyじゃなくてもいいものでしかない
562デフォルトの名無しさん
2018/10/07(日) 13:58:02.17ID:frMlqiU9563デフォルトの名無しさん
2018/10/07(日) 14:04:33.87ID:dVob98ND >>562
あぁ理解した
あぁ理解した
564デフォルトの名無しさん
2018/10/07(日) 14:11:55.14ID:dVob98ND foo({x: 0},{})
たしかに臭すぎるな
たしかに臭すぎるな
565デフォルトの名無しさん
2018/10/07(日) 17:16:19.53ID:oF+BNYxq バグを最大限に利用したプログラミングテクニックを競うスレ
566デフォルトの名無しさん
2018/10/07(日) 17:47:13.93ID:9DLOHMhB ああ、ファイナルファンタジーの高速移動はな
567デフォルトの名無しさん
2018/10/07(日) 19:33:28.02ID:4iSmONA1 超初心者です
@y0 = [3, 8]
@y1 = [2, 5]
@y2 = [5, 6]
@y3 = [12, 8]
.
.
.
@yn = [3, 4]
というような独立した名前とそれに代入されているデータがあるのですが
n番目(nの大きさは事前に代入されている)までの各データを,関数を用いてまとめて順番に表示させたい時は
どうすれば良いのでしょうか
@y0 = [3, 8]
@y1 = [2, 5]
@y2 = [5, 6]
@y3 = [12, 8]
.
.
.
@yn = [3, 4]
というような独立した名前とそれに代入されているデータがあるのですが
n番目(nの大きさは事前に代入されている)までの各データを,関数を用いてまとめて順番に表示させたい時は
どうすれば良いのでしょうか
568デフォルトの名無しさん
2018/10/07(日) 19:40:08.05ID:uhglS2kq (0..n).each do |i|
puts instance_variable_get(:"@y#{i}")
end
試してはいない
puts instance_variable_get(:"@y#{i}")
end
試してはいない
569デフォルトの名無しさん
2018/10/07(日) 20:01:54.78ID:4iSmONA1 >>568
できました!ありがとうございます
できました!ありがとうございます
570デフォルトの名無しさん
2018/10/07(日) 20:52:20.80ID:8XeZ4VQt >>566
あれ作ったの王族だったっていうのが更にロマンだな
あれ作ったの王族だったっていうのが更にロマンだな
571デフォルトの名無しさん
2018/10/07(日) 20:53:03.51ID:ZRxhxONC Rubyの検定試験ってめちゃくちゃ意味なさそうなんだけど持ってる人おる?
572デフォルトの名無しさん
2018/10/07(日) 21:48:24.31ID:fkKga7ZH 俺が面接官ならRubyに限らずプログラミング言語の検定試験合格をアピールするような奴は問答無用で落とす
意味がないことに対して貴重な時間を無駄に投資したことと自分の能力や経験に自身がないことの証明でしかない
意味がないことに対して貴重な時間を無駄に投資したことと自分の能力や経験に自身がないことの証明でしかない
573デフォルトの名無しさん
2018/10/07(日) 22:52:49.84ID:ybty/36n 同列評価された時の僅かな差にはなるだろうな。
574デフォルトの名無しさん
2018/10/07(日) 23:05:26.81ID:ybty/36n 法令による独占業務や義務付けの無い資格は暇潰しや自己満足だよ。
575デフォルトの名無しさん
2018/10/08(月) 00:56:47.59ID:H/mp1NsO 資格があれば有利
資格がある人は、採用試験が免除されるけど、
ない人は、資格を取れって言われるだけ
要するに、自分で勉強して、客観的な合格点を取ったという証明書。
自力型人間。
自分でできる範囲の準備をした人。
自分の事を、自分で証明した人だから、評価が高い
普通の人は、ずっと遊んでいるだけで、
大学へ行って勉強したり、資格なども取らないから
資格がある人は、採用試験が免除されるけど、
ない人は、資格を取れって言われるだけ
要するに、自分で勉強して、客観的な合格点を取ったという証明書。
自力型人間。
自分でできる範囲の準備をした人。
自分の事を、自分で証明した人だから、評価が高い
普通の人は、ずっと遊んでいるだけで、
大学へ行って勉強したり、資格なども取らないから
576デフォルトの名無しさん
2018/10/08(月) 01:40:55.16ID:3oh/BVON 自分の勉強するのはいいことだけど、肝心なのは資格の選定
IPA系の資格やLPICのように詰め込む知識自体に十分な価値があるものなら一定の意味はあるが、
プログラミング言語の資格って基本的に言語の重箱の隅を突っつき回すクソコード品評会でしかない
全くもって時間の無駄、というか金と時間を無駄にしたバカの証明
IPA系の資格やLPICのように詰め込む知識自体に十分な価値があるものなら一定の意味はあるが、
プログラミング言語の資格って基本的に言語の重箱の隅を突っつき回すクソコード品評会でしかない
全くもって時間の無駄、というか金と時間を無駄にしたバカの証明
577デフォルトの名無しさん
2018/10/08(月) 01:56:55.38ID:fjKB7KaC そもそもRubyって仕様無いのに一体何をテストするんだろうな
例えばJava言語の資格であれば明確な言語仕様に基づいた出題だから合格すればJava言語使用に対する一定の理解が証明されるわけだ
一方Rubyは何が仕様で何が実装依存なのかはMatzの頭の中にしかない
Matzが気まぐれでコード一行変えてMatzが実装依存だと思ってた挙動が変わったら、それだけで試験の知識が無意味になる可能性がある
こんなもん試験を主催する側も頭おかしいし、それをおかしいと思わずに受ける側もたいがい頭おかしいわ
例えばJava言語の資格であれば明確な言語仕様に基づいた出題だから合格すればJava言語使用に対する一定の理解が証明されるわけだ
一方Rubyは何が仕様で何が実装依存なのかはMatzの頭の中にしかない
Matzが気まぐれでコード一行変えてMatzが実装依存だと思ってた挙動が変わったら、それだけで試験の知識が無意味になる可能性がある
こんなもん試験を主催する側も頭おかしいし、それをおかしいと思わずに受ける側もたいがい頭おかしいわ
578デフォルトの名無しさん
2018/10/08(月) 02:25:53.44ID:HqDSWn9/ ドキュメント軽視とWindows蔑視はRubyコミュニティの伝統だからな…
「コードが仕様だ!」
「コードが仕様だ!」
579575
2018/10/08(月) 03:23:38.27ID:H/mp1NsO 本当に、藻舞らは実社会で通用しない連中だな
漏れは、10言語は使えて、国家資格も幾つか持っているけど、
それでも会社の面接試験で、VBA の試験に、0点とって落ちたこともあるw
資格を持っていない奴が、あちこち面接行ったり、返事に1週間待ったり、
社内で時間つぶしするから、効率悪い
次の仕事との間が開くから、稼ぎが悪いし、
資格を持っていない連中と競うから、あちこちへ面接へ行くので、コストがかかる
特に、C++ とか難しい言語では皆、お試しの初日で返されるから、効率悪い
資格を持っていれば、会社の面接試験もフリーパス。
最初から合格者扱い
漏れは、10言語は使えて、国家資格も幾つか持っているけど、
それでも会社の面接試験で、VBA の試験に、0点とって落ちたこともあるw
資格を持っていない奴が、あちこち面接行ったり、返事に1週間待ったり、
社内で時間つぶしするから、効率悪い
次の仕事との間が開くから、稼ぎが悪いし、
資格を持っていない連中と競うから、あちこちへ面接へ行くので、コストがかかる
特に、C++ とか難しい言語では皆、お試しの初日で返されるから、効率悪い
資格を持っていれば、会社の面接試験もフリーパス。
最初から合格者扱い
580デフォルトの名無しさん
2018/10/08(月) 05:09:07.21ID:NpYdwkIF581デフォルトの名無しさん
2018/10/08(月) 08:37:10.75ID:NFI2fQQ+ >>579
VBAとか使ってるの元々碌な会社じゃないとしか思えんね
VBAとか使ってるの元々碌な会社じゃないとしか思えんね
582デフォルトの名無しさん
2018/10/08(月) 11:46:40.31ID:kWzXmI6+ >>571
やっぱ意味ないよな。ご多聞に漏れず受験料もバカ高いし、こんなんプログラミング教室の講師になりたい奴くらいしか受けないだろ
やっぱ意味ないよな。ご多聞に漏れず受験料もバカ高いし、こんなんプログラミング教室の講師になりたい奴くらいしか受けないだろ
583575
2018/10/08(月) 11:50:59.70ID:H/mp1NsO Excel ぐらい、大企業ならどこでも使っている
漏れも、色んな言語で、色んな製品・インフラ・アプリ・金融とか、
3か月ごとに仕事が変わるから、スケジュールの空きの都合で、
やったことのない言語でも、面接へ行くこともあるから、大恥かく事もあるw
10言語も知っているのに、VBA 知らないとかw
dim とか、配列のインデックスは、0・1 のどちらから始まりますかとか、知らんわw
資格を持っていないと、面接試験を受けないといけない
漏れも、色んな言語で、色んな製品・インフラ・アプリ・金融とか、
3か月ごとに仕事が変わるから、スケジュールの空きの都合で、
やったことのない言語でも、面接へ行くこともあるから、大恥かく事もあるw
10言語も知っているのに、VBA 知らないとかw
dim とか、配列のインデックスは、0・1 のどちらから始まりますかとか、知らんわw
資格を持っていないと、面接試験を受けないといけない
584デフォルトの名無しさん
2018/10/08(月) 11:55:52.01ID:rY7QFOOR 検定試験が意味ないと言ってる人は
どちらの意味で言ってるかをはっきりさせないといけない
検定試験の内容が意味がないと言っているのか、
それとも内容は意味があるが、合格証明が必要ないと言っているのかだ
大抵の人は後者である。なぜなら試験を受けなくても通る自信があるからだ
(通る自信がある=普段のプログラミングで鍛えられてる=普段のプログラミング内容が試験範囲)
どちらの意味で言ってるかをはっきりさせないといけない
検定試験の内容が意味がないと言っているのか、
それとも内容は意味があるが、合格証明が必要ないと言っているのかだ
大抵の人は後者である。なぜなら試験を受けなくても通る自信があるからだ
(通る自信がある=普段のプログラミングで鍛えられてる=普段のプログラミング内容が試験範囲)
585デフォルトの名無しさん
2018/10/08(月) 13:02:39.20ID:NFI2fQQ+ いや、要らんって言ってる人は多分資格ゲッターが実際に現場では役に立たなかったっていう経験則なんじゃない?
>>576で挙がってる様な資格なら一朝一夕では取れないから意味はあるだろうけど
一朝一夕で取れる資格を沢山持ってるヤツって短期記憶特化型なのか取った資格の内容まるっと忘れてるなんていうパターンが実際にあるからな
>>576で挙がってる様な資格なら一朝一夕では取れないから意味はあるだろうけど
一朝一夕で取れる資格を沢山持ってるヤツって短期記憶特化型なのか取った資格の内容まるっと忘れてるなんていうパターンが実際にあるからな
586デフォルトの名無しさん
2018/10/08(月) 13:20:22.46ID:QmlHMP6P >>583
ワープアはお呼びじゃないですよ
ワープアはお呼びじゃないですよ
587デフォルトの名無しさん
2018/10/08(月) 13:28:01.00ID:H/mp1NsO 資格を取った人は勉強したから、いったん忘れても、短期間で思い出すけど、
資格を取らない人は、最初から勉強しないといけないから、無理
資格を取る人は、年に1% ぐらいだから、10年居ても、10%。
この人たちしか出世しない
勉強は競争だから、現状維持する人は、ドンドン遅れていく。
常に勉強していて、現状維持ぐらい
世の中と同じ。
努力する人が勝つ
資格を取らない人は、最初から勉強しないといけないから、無理
資格を取る人は、年に1% ぐらいだから、10年居ても、10%。
この人たちしか出世しない
勉強は競争だから、現状維持する人は、ドンドン遅れていく。
常に勉強していて、現状維持ぐらい
世の中と同じ。
努力する人が勝つ
588デフォルトの名無しさん
2018/10/08(月) 13:30:25.48ID:NpYdwkIF >>583
3ヶ月とか底辺派遣エンジニアかよ
3ヶ月とか底辺派遣エンジニアかよ
589デフォルトの名無しさん
2018/10/08(月) 13:36:33.16ID:QmlHMP6P >>587
コードを書くことは手段に過ぎない
エンジニアとして出世する人は貴方のようにコードを書く仕事じゃなくてモノを作ることで目標達成に導く仕事をするのです
あなたには自分の意思を持って何かを作り上げ、顧客の事業目標の達成に貢献した経験がありますか?
自信を持ってこの問いに答えられるなら、派遣の違法面接ループから抜け出せるよ
コードを書くことは手段に過ぎない
エンジニアとして出世する人は貴方のようにコードを書く仕事じゃなくてモノを作ることで目標達成に導く仕事をするのです
あなたには自分の意思を持って何かを作り上げ、顧客の事業目標の達成に貢献した経験がありますか?
自信を持ってこの問いに答えられるなら、派遣の違法面接ループから抜け出せるよ
590デフォルトの名無しさん
2018/10/08(月) 13:40:50.28ID:+5qyKWRv 声が大きい香具師が勝つ
金持ってる香具師が勝つ
金持ってる香具師が勝つ
591デフォルトの名無しさん
2018/10/08(月) 19:31:14.62ID:WG28FLuI お金はね、とても寂しがり屋なんだ。
だから仲間の多いところに集まり、少ないところから居なくなるんだ。
だから仲間の多いところに集まり、少ないところから居なくなるんだ。
592デフォルトの名無しさん
2018/10/08(月) 19:39:26.02ID:WG28FLuI 山谷や西成、寿町に似合いそうな話題が出ているな。
593デフォルトの名無しさん
2018/10/09(火) 11:41:25.82ID:b1Wfw1Yo 100人会っても尖ったエンジニアに出会わないっていうのは主観が腐ってると思うけど、底辺単純業務だと腰の低いエンジニアは多いかも。
594デフォルトの名無しさん
2018/10/09(火) 12:33:12.64ID:iDNploc3 言語だけで採用される仕事は知能労働ではない
工場のライン工と本質的に何も変わらない
工場のライン工と本質的に何も変わらない
595デフォルトの名無しさん
2018/10/09(火) 13:48:10.20ID:oG+Gs+vp エンジニアの人間性となんの言語やってるかは別物だろ
バカじゃないんだからそのくらいわかりそうなもんだが……
バカじゃないんだからそのくらいわかりそうなもんだが……
596デフォルトの名無しさん
2018/10/09(火) 15:34:28.16ID:c0UbTvkE rubyに集まるプログラマの人間性ω
597デフォルトの名無しさん
2018/10/09(火) 19:17:06.95ID:dt6p5VXQ プログラマは消滅職業
598デフォルトの名無しさん
2018/10/09(火) 23:12:15.76ID:uKgwXIAC 線路の上にウンコ載せるだけの単純な作業
599デフォルトの名無しさん
2018/10/10(水) 01:35:39.70ID:cxHjn/W/600デフォルトの名無しさん
2018/10/10(水) 12:11:38.02ID:5OEU6ePq 荒らしはもう飽きたのか?
木曜日からあんなにがんばってたんだからもうすこしがんばれよ
おまえなら出来る
木曜日からあんなにがんばってたんだからもうすこしがんばれよ
おまえなら出来る
601デフォルトの名無しさん
2018/10/10(水) 12:23:51.40ID:J+20JPiD それよりrubyの未来ってどうなっていくのか詳しいお前たちに教えてほしい
マジレスでお願い
マジレスでお願い
602デフォルトの名無しさん
2018/10/10(水) 12:28:05.87ID:FcX3TrAZ603デフォルトの名無しさん
2018/10/10(水) 12:52:43.54ID:GtoVLTgS アンチは自演が足りてないな
木曜日の勢いはどうした?
木曜日の勢いはどうした?
604デフォルトの名無しさん
2018/10/10(水) 13:43:18.18ID:J+20JPiD >>603
お前がアンチ成りすましだろ
お前がアンチ成りすましだろ
605デフォルトの名無しさん
2018/10/10(水) 13:59:26.60ID:yHtilhZ9 アンチ成りすましというパワーワード
606デフォルトの名無しさん
2018/10/10(水) 16:01:24.42ID:6XSXLAH4 連休費やしてこれだけしか荒らせなかったのか?
レス稼ぎにもならんな
そんなんだから毛根が死滅するんだよ
レス稼ぎにもならんな
そんなんだから毛根が死滅するんだよ
607デフォルトの名無しさん
2018/10/11(木) 22:14:08.07ID:U1kKB/4M RubyのLOAD_PATHって誰がどうやって設定してるの?
ビルドするときにバイナリに埋め込まれるの?
ビルドするときにバイナリに埋め込まれるの?
608デフォルトの名無しさん
2018/10/12(金) 04:59:13.35ID:1iFt3dhJ 「Ruby は国内でしか使われていない」
デマ流してるのは Matz 本人だと思った
デマ流してるのは Matz 本人だと思った
609デフォルトの名無しさん
2018/10/12(金) 05:52:03.73ID:sbMdiEdb 「Rubyは死んだ」も自業自得
これまでMatzは調子こいて他言語をさんざん時代遅れ呼ばわりしてたからな
普通教祖は暴走する信者をたしなめるものなんだが…その器じゃなかったということか
これまでMatzは調子こいて他言語をさんざん時代遅れ呼ばわりしてたからな
普通教祖は暴走する信者をたしなめるものなんだが…その器じゃなかったということか
610デフォルトの名無しさん
2018/10/12(金) 07:57:15.54ID:C1pVYns8 >>607
知らないけど、Windows, Linux 用のパスが、設定ファイルに書いてあるんじゃないの?
知らないけど、Windows, Linux 用のパスが、設定ファイルに書いてあるんじゃないの?
611デフォルトの名無しさん
2018/10/12(金) 08:04:46.04ID:wwlgi++0 RubyにTSみたいな構造的部分型の静的型検査が入るのいつですか?
時代の最先端行ってるはずのRubyさんなのに、今回は遅くてイライラします!
時代の最先端行ってるはずのRubyさんなのに、今回は遅くてイライラします!
612デフォルトの名無しさん
2018/10/12(金) 08:16:47.73ID:Y9zzUgKz613デフォルトの名無しさん
2018/10/12(金) 08:40:32.55ID:4VCKLvgd javaやったらいちいちセミコロン付けないといけないらしくてちょくちょく忘れて焦ったわ
Rubyだとあってもなくてもいい、というか使う人いないから忘れがち
Rubyだとあってもなくてもいい、というか使う人いないから忘れがち
614610
2018/10/12(金) 09:06:52.78ID:C1pVYns8 >>612
知らないから、推測で書くけど、
ひとまず設定ファイルか、C 言語のヘッダファイルにでも、
デフォルト値を書いておいて、各OS 用にコンパイルする
各OS では環境変数に設定すると、デフォルト値を上書きできるとか?
知らないから、推測で書くけど、
ひとまず設定ファイルか、C 言語のヘッダファイルにでも、
デフォルト値を書いておいて、各OS 用にコンパイルする
各OS では環境変数に設定すると、デフォルト値を上書きできるとか?
615デフォルトの名無しさん
2018/10/12(金) 11:05:56.88ID:Y9zzUgKz >>614
rbenvで自分のHOME以下にインストールしたRubyのバイナリを
stringsで調べたら、自分の名前がバイナリに含まれてることを確認した。
Rubyに限らずLinux/Unix系の一般的な作法なのかもしれないけど、
参照する基本的なパスはバイナリに埋め込まれるのかなーって今思ってる。
Windowsだと一つのディレクトリに全部入れるからわかりやすいけど
Linuxだと、バイナリは/usr/bin/ruby(シンボリックリンク、実体は/usr/bin/ruby2.5)
だけど、LOAD_PATHは/usr/local/lib/site_ruby2.5.0とか/usr/lib/ruby/vendor_ruby/2.5.0とか
相対パスで決まらない場所にあちこちに散らばるから、これらのパスを書いておかないといけないはずなんだよね
最初は/etcかな?ともよくよく考えると/optとかに入れることもあるわけで、/etc決め打ちってわけにも行かない
実行バイナリからの相対パスに設定ファイルがあるようにも思えないのでやっぱりバイナリ埋め込みなのかな。
言い換えると実行バイナリを移動したりしても参照するディレクトリを変更することはできないと
rbenvのように標準とは異なるLOAD_PATHにする仕組みを作るためにはバイナリをビルドする必要があると
もちろんソースコードに直接書いてるわけじゃなくて、autoconf?とかビルドするときの--prefixとか
その他の設定によって、バイナリに埋め込まれる
rbenvで自分のHOME以下にインストールしたRubyのバイナリを
stringsで調べたら、自分の名前がバイナリに含まれてることを確認した。
Rubyに限らずLinux/Unix系の一般的な作法なのかもしれないけど、
参照する基本的なパスはバイナリに埋め込まれるのかなーって今思ってる。
Windowsだと一つのディレクトリに全部入れるからわかりやすいけど
Linuxだと、バイナリは/usr/bin/ruby(シンボリックリンク、実体は/usr/bin/ruby2.5)
だけど、LOAD_PATHは/usr/local/lib/site_ruby2.5.0とか/usr/lib/ruby/vendor_ruby/2.5.0とか
相対パスで決まらない場所にあちこちに散らばるから、これらのパスを書いておかないといけないはずなんだよね
最初は/etcかな?ともよくよく考えると/optとかに入れることもあるわけで、/etc決め打ちってわけにも行かない
実行バイナリからの相対パスに設定ファイルがあるようにも思えないのでやっぱりバイナリ埋め込みなのかな。
言い換えると実行バイナリを移動したりしても参照するディレクトリを変更することはできないと
rbenvのように標準とは異なるLOAD_PATHにする仕組みを作るためにはバイナリをビルドする必要があると
もちろんソースコードに直接書いてるわけじゃなくて、autoconf?とかビルドするときの--prefixとか
その他の設定によって、バイナリに埋め込まれる
616610
2018/10/12(金) 11:22:45.70ID:C1pVYns8 原理的には、rbenv は仮想環境だから、activate すると、
~/.bashrc などで、環境変数PATH の一番前に、プロジェクトフォルダを追加して、
~/.bashrc を再読み込みする
そうやって一時的に、ruby コマンドで起動する、rubyのバージョンを変える
~/.bashrc などで、環境変数PATH の一番前に、プロジェクトフォルダを追加して、
~/.bashrc を再読み込みする
そうやって一時的に、ruby コマンドで起動する、rubyのバージョンを変える
617デフォルトの名無しさん
2018/10/12(金) 11:31:26.65ID:vWnsmRfa618デフォルトの名無しさん
2018/10/12(金) 11:35:12.06ID:vWnsmRfa 環境変数でないのは、環境変数を表示してみればわかるはず
619デフォルトの名無しさん
2018/10/12(金) 11:49:52.50ID:vWnsmRfa あと、ちなみに>>616が言ってる仕組みは間違い
> ~/.bashrc などで、環境変数PATH の一番前に、プロジェクトフォルダを追加して
プロジェクトフォルダは追加しない
> ~/.bashrc を再読み込みする
再読込が必要なのはインストール直後のみ
.bashrcに書かれるのだから次回からは不要
> そうやって一時的に、ruby コマンドで起動する、rubyのバージョンを変える
一時的に変更するオプションはあるが、通常は一時的ではない
本当の仕組みは、まずPATHの一番前にrbenvのパスが追加される。
そこにrubyコマンド等が入っている・・・ように見えて、これはただのシェルスクリプト
rubyを実行すると、まずこのrbenvのrubyシェルスクリプトが実行される。
このシェルスクリプトは設定またはプロジェクトフォルダの.ruby-versionを参照して
適切なバージョンのrubyを実行する
> ~/.bashrc などで、環境変数PATH の一番前に、プロジェクトフォルダを追加して
プロジェクトフォルダは追加しない
> ~/.bashrc を再読み込みする
再読込が必要なのはインストール直後のみ
.bashrcに書かれるのだから次回からは不要
> そうやって一時的に、ruby コマンドで起動する、rubyのバージョンを変える
一時的に変更するオプションはあるが、通常は一時的ではない
本当の仕組みは、まずPATHの一番前にrbenvのパスが追加される。
そこにrubyコマンド等が入っている・・・ように見えて、これはただのシェルスクリプト
rubyを実行すると、まずこのrbenvのrubyシェルスクリプトが実行される。
このシェルスクリプトは設定またはプロジェクトフォルダの.ruby-versionを参照して
適切なバージョンのrubyを実行する
620610
2018/10/12(金) 13:03:26.10ID:C1pVYns8 恒久的に、~/.bashrc に書かれていたら、マズイじゃん。
常に、環境変数PATH の一番前に、仮想環境があるってことだろ
そうじゃなくて、仮想環境を、activate した時だけ、
PATHの順番が変わるようにしないといけない
普段は、Ruby 2.3 とかを使っていて、
activate した時だけ、2.5 を使うとか
常に、環境変数PATH の一番前に、仮想環境があるってことだろ
そうじゃなくて、仮想環境を、activate した時だけ、
PATHの順番が変わるようにしないといけない
普段は、Ruby 2.3 とかを使っていて、
activate した時だけ、2.5 を使うとか
621デフォルトの名無しさん
2018/10/12(金) 13:06:28.04ID:vWnsmRfa お前が思ってる仕組みが間違いで
それよりももっと高度な仕組みを使ってるから
恒久的に.bashrcに実際に書かれているが
何も問題になってないんだよ
勉強不足なんだから反省してから書き込め
それよりももっと高度な仕組みを使ってるから
恒久的に.bashrcに実際に書かれているが
何も問題になってないんだよ
勉強不足なんだから反省してから書き込め
622デフォルトの名無しさん
2018/10/12(金) 13:09:24.83ID:fTMxnY19623610
2018/10/12(金) 13:12:13.56ID:C1pVYns8 ruby というコマンドを入力すると、
そのシェルスクリプトが実行されて、適切なバージョンのRuby が呼び出されるのか
そのシェルスクリプトが実行されて、適切なバージョンのRuby が呼び出されるのか
624デフォルトの名無しさん
2018/10/12(金) 14:33:44.62ID:46Wm2YVF >>615
>Rubyに限らずLinux/Unix系の一般的な作法なのかもしれないけど、
>参照する基本的なパスはバイナリに埋め込まれるのかなーって今思ってる。
一般的ではないよ
普通は埋め込むとしても ~/ だから
rbenv が糞
>Rubyに限らずLinux/Unix系の一般的な作法なのかもしれないけど、
>参照する基本的なパスはバイナリに埋め込まれるのかなーって今思ってる。
一般的ではないよ
普通は埋め込むとしても ~/ だから
rbenv が糞
625デフォルトの名無しさん
2018/10/12(金) 17:10:53.96ID:vWnsmRfa >>622
だから、rbenvの仕組みを理解しろって
だいたい、仮想環境とかactivateなんて言葉は使わない。
こっちはわかってるんだよ。お前がPythonの話をしてるのは
なぜ間違いを素直に認められない?
https://memo.sugyan.com/entry/20111128/1322420500
> で、この${RBENV_ROOT}/shims/rubyの中身を見てみると…
>
> #!/usr/bin/env bash
> set -e
> export RBENV_ROOT="/Users/sugyan/.rbenv"
> exec rbenv exec "${0##*/}" "$@"
> とだけ書いてある。これは同ディレクトリにあるgemやirbやrakeなども全部同じ内容。
> 結局このPATHに入っているコマンドを呼ばれた場合はすべて同じように処理される、ということになる。
>>624
お前は何を言ってるんだ?
rbenvの話とrubyの話をごっちゃにするなって
だから、rbenvの仕組みを理解しろって
だいたい、仮想環境とかactivateなんて言葉は使わない。
こっちはわかってるんだよ。お前がPythonの話をしてるのは
なぜ間違いを素直に認められない?
https://memo.sugyan.com/entry/20111128/1322420500
> で、この${RBENV_ROOT}/shims/rubyの中身を見てみると…
>
> #!/usr/bin/env bash
> set -e
> export RBENV_ROOT="/Users/sugyan/.rbenv"
> exec rbenv exec "${0##*/}" "$@"
> とだけ書いてある。これは同ディレクトリにあるgemやirbやrakeなども全部同じ内容。
> 結局このPATHに入っているコマンドを呼ばれた場合はすべて同じように処理される、ということになる。
>>624
お前は何を言ってるんだ?
rbenvの話とrubyの話をごっちゃにするなって
626デフォルトの名無しさん
2018/10/12(金) 17:13:10.29ID:vWnsmRfa Ruby | rbenv | 仕組み
http://tbpgr.hatenablog.com/entry/20131109/1384019022
> rbenvの仕組みについて
>
> shims
> unixのコマンドは$PATHを左から順に探します。
> rbenvインストール前のパスは下記のようになっています。
>
> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
> rbenvはPATHの先頭にshimsを追加することで動作します。
>
> %rbenv_home%/shims
> これによりuser/local/bin等より前に%rbenv_home%/shimsでrubyの各コマンドを
> 発見することになります。
> Ruby versionの決定順序
> 1.RBENV_VERSION環境変数の内容。
> 2.実行中のscrpitファイルから探した「.ruby-version」ファイルの内容。
> 3.現在の作業ディレクトリから探した「.ruby_version」ファイルの内容。
> 4.「%rbenv_home%/version」の内容。
> Rubyのインストールパス
> 各バージョンごとのRubyは下記の用にインストールされます。
>
> %rbenv_home%/versions/1.8.7-p371/
http://tbpgr.hatenablog.com/entry/20131109/1384019022
> rbenvの仕組みについて
>
> shims
> unixのコマンドは$PATHを左から順に探します。
> rbenvインストール前のパスは下記のようになっています。
>
> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
> rbenvはPATHの先頭にshimsを追加することで動作します。
>
> %rbenv_home%/shims
> これによりuser/local/bin等より前に%rbenv_home%/shimsでrubyの各コマンドを
> 発見することになります。
> Ruby versionの決定順序
> 1.RBENV_VERSION環境変数の内容。
> 2.実行中のscrpitファイルから探した「.ruby-version」ファイルの内容。
> 3.現在の作業ディレクトリから探した「.ruby_version」ファイルの内容。
> 4.「%rbenv_home%/version」の内容。
> Rubyのインストールパス
> 各バージョンごとのRubyは下記の用にインストールされます。
>
> %rbenv_home%/versions/1.8.7-p371/
627デフォルトの名無しさん
2018/10/12(金) 17:19:11.25ID:vWnsmRfa とりあえず今度レスする時は、なんかのリンクを引用して
技術的な話をするように。
それができないから罵倒して終わるんだろうけどな。
技術的な話をするように。
それができないから罵倒して終わるんだろうけどな。
628デフォルトの名無しさん
2018/10/12(金) 17:50:23.24ID:vWnsmRfa Pythonの話が出たのでPythonを調べてみたが、やっぱり
デフォルトのパスはバイナリに埋め込まれてるみたいだな
http://hagifoo.hatenablog.com/entry/2013/07/29/132740
> 一番上まで行っても見つからない場合はコンパイル時に
> --prefix オプションで設定されたパスが使われるようです^2。
実際にpyenvを使ってユーザーディレクトリに以下に
インストールしたpythonのバイナリをstringsで調べてみたら
自分の名前が見つかった
デフォルトのパスはバイナリに埋め込まれてるみたいだな
http://hagifoo.hatenablog.com/entry/2013/07/29/132740
> 一番上まで行っても見つからない場合はコンパイル時に
> --prefix オプションで設定されたパスが使われるようです^2。
実際にpyenvを使ってユーザーディレクトリに以下に
インストールしたpythonのバイナリをstringsで調べてみたら
自分の名前が見つかった
629デフォルトの名無しさん
2018/10/12(金) 17:56:17.35ID:vWnsmRfa おっと、今まで「ビルド」で検索していたから見つからなかったのか
上のリンクでふと思いついて「コンパイル」で検索したらあっさり見つかった
https://docs.ruby-lang.org/ja/latest/method/Kernel/v/=2dI.html
普通にRubyのリファレンスでLOAD_PATHを調べていればすぐ答えが見つかっていたのか
予想通りライブラリのロードのパスは(設定ファイルや実行バイナリのパスなどではなく)
Linux/Unixではコンパイル時に決定するものなんだね
> $LOAD_PATH -> [String]
> Kernel.#load や Kernel.#require がファイルをロードする時に検索するディレクトリのリストを含む配列です。
>
> 起動時にはコマンドラインオプション -I で指定したディレクトリ、 環境変数 RUBYLIB の値、
> コンパイル時に指定したデフォルト値 をこの順番で含みます。
Windowsの場合も予想通りで、Rubyのインストールディレクトリから決まる(正確にはruby.dllからの相対パスらしい)
> コンパイル時のデフォルトパスは 多くの UNIX システムでは "/usr/local/lib/ruby" です。
> mswin32、mingw32、Cygwin、 bccwin32、mswince 環境では ruby.dll の位置からの相対で決まります。
> DJGPP と emx (OS/2) では ruby.exe の位置からの相対で決まります。
つーことで自己解決になったな。クソ役に立たない初心者レスばかりだった
上のリンクでふと思いついて「コンパイル」で検索したらあっさり見つかった
https://docs.ruby-lang.org/ja/latest/method/Kernel/v/=2dI.html
普通にRubyのリファレンスでLOAD_PATHを調べていればすぐ答えが見つかっていたのか
予想通りライブラリのロードのパスは(設定ファイルや実行バイナリのパスなどではなく)
Linux/Unixではコンパイル時に決定するものなんだね
> $LOAD_PATH -> [String]
> Kernel.#load や Kernel.#require がファイルをロードする時に検索するディレクトリのリストを含む配列です。
>
> 起動時にはコマンドラインオプション -I で指定したディレクトリ、 環境変数 RUBYLIB の値、
> コンパイル時に指定したデフォルト値 をこの順番で含みます。
Windowsの場合も予想通りで、Rubyのインストールディレクトリから決まる(正確にはruby.dllからの相対パスらしい)
> コンパイル時のデフォルトパスは 多くの UNIX システムでは "/usr/local/lib/ruby" です。
> mswin32、mingw32、Cygwin、 bccwin32、mswince 環境では ruby.dll の位置からの相対で決まります。
> DJGPP と emx (OS/2) では ruby.exe の位置からの相対で決まります。
つーことで自己解決になったな。クソ役に立たない初心者レスばかりだった
■ このスレッドは過去ログ倉庫に格納されています
