プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 66
https://mevius.5ch.net/test/read.cgi/tech/1578068134/
るりまサーチ (リファレンス検索)
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
探検
Ruby 初心者スレッド Part 67
1デフォルトの名無しさん (ワッチョイ b72c-yePO)
2020/12/25(金) 04:24:27.68ID:aa9Khe9z02デフォルトの名無しさん (ワッチョイ 572c-yePO)
2020/12/25(金) 04:26:07.55ID:aa9Khe9z0 Rubyの絵本、2008
たのしいRuby 第6版、2019
3ステップでしっかり学ぶ Ruby入門、2018
かんたん Ruby (プログラミングの教科書)、2018
プロを目指す人のためのRuby入門、2017
改訂2版 パーフェクトRuby、2017
改訂2版 Ruby逆引きハンドブック、2018 (中級者向け)
Effective Ruby、2015 (中級者向け)
メタプログラミング Ruby 第2版、2015 (中級者向け)
リファクタリング:Rubyエディション(復刻版)、2020(中級者向け)
RubyでつくるRuby ゼロから学びなおすプログラミング言語入門、2017 (中級者向け)
Rubyのしくみ、2014 (中級者向け)
改訂4版 基礎 Ruby on Rails、2018
パーフェクト Ruby on Rails 【増補改訂版】、2020
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例、2014
オブジェクト指向設計実践ガイド Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方、2016
Seleniumデザインパターン&ベストプラクティス、2015
Webで使えるmrubyシステムプログラミング入門、2020
たのしいRuby 第6版、2019
3ステップでしっかり学ぶ Ruby入門、2018
かんたん Ruby (プログラミングの教科書)、2018
プロを目指す人のためのRuby入門、2017
改訂2版 パーフェクトRuby、2017
改訂2版 Ruby逆引きハンドブック、2018 (中級者向け)
Effective Ruby、2015 (中級者向け)
メタプログラミング Ruby 第2版、2015 (中級者向け)
リファクタリング:Rubyエディション(復刻版)、2020(中級者向け)
RubyでつくるRuby ゼロから学びなおすプログラミング言語入門、2017 (中級者向け)
Rubyのしくみ、2014 (中級者向け)
改訂4版 基礎 Ruby on Rails、2018
パーフェクト Ruby on Rails 【増補改訂版】、2020
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例、2014
オブジェクト指向設計実践ガイド Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方、2016
Seleniumデザインパターン&ベストプラクティス、2015
Webで使えるmrubyシステムプログラミング入門、2020
3デフォルトの名無しさん (ワッチョイ 572c-yePO)
2020/12/25(金) 04:27:50.07ID:aa9Khe9z0 開発環境
RDE
Windows用IDE
https://ja.osdn.net/projects/sfnet_rubyde/
以下、RDEの使用説明
http://rubyde.sourceforge.net/hiki/ja/FrontPage.html
RDEのデバッグ機能を使う場合、設定においてデバッグオプションを「-r debug2」から「-r debug」と書き換えて、
ruby付属のdebug.rbを使うようにすること。
RDE付属のdebug2.rbは、ruby1.8用のスクリプトのため、現在のrubyのversionには使えません
サクラエディタ
Windows用高機能エディタ
https://ja.osdn.net/projects/sfnet_sakura-editor/
以下、ruby用設定の説明
http://supportdoc.net/support-sakura/ruby.html
Emacs
GNUの高機能エディタ
Vim
Emacsと同じぐらい有名なCUIベースのエディタ
VSCode
マルチOSに対応したマイクロソフト社製のソースコードエディタ
https://code.visualstudio.com/download
RDE
Windows用IDE
https://ja.osdn.net/projects/sfnet_rubyde/
以下、RDEの使用説明
http://rubyde.sourceforge.net/hiki/ja/FrontPage.html
RDEのデバッグ機能を使う場合、設定においてデバッグオプションを「-r debug2」から「-r debug」と書き換えて、
ruby付属のdebug.rbを使うようにすること。
RDE付属のdebug2.rbは、ruby1.8用のスクリプトのため、現在のrubyのversionには使えません
サクラエディタ
Windows用高機能エディタ
https://ja.osdn.net/projects/sfnet_sakura-editor/
以下、ruby用設定の説明
http://supportdoc.net/support-sakura/ruby.html
Emacs
GNUの高機能エディタ
Vim
Emacsと同じぐらい有名なCUIベースのエディタ
VSCode
マルチOSに対応したマイクロソフト社製のソースコードエディタ
https://code.visualstudio.com/download
4デフォルトの名無しさん (ササクッテロル Sp1f-6DBA)
2020/12/25(金) 19:37:36.98ID:HoUTdWdQp 祝 ruby3.0.0
5デフォルトの名無しさん (ワッチョイ c54e-2ulA)
2020/12/25(金) 19:42:54.83ID:cyV6b5qO0 めでたくもなんともない
ムダに歳くったロートル
ムダに歳くったロートル
6デフォルトの名無しさん (ワッチョイ 0bab-JtRj)
2020/12/25(金) 22:20:13.76ID:DVzhLIY40 形態素ゲイムRuby松本まじコスロ
by猪瀬色彩空間
by猪瀬色彩空間
7デフォルトの名無しさん (ワッチョイ 3be6-91uD)
2020/12/25(金) 22:53:56.79ID:gC1vp0cV0 速度3倍ってマジ?
8デフォルトの名無しさん (オッペケ Srd9-Isz2)
2020/12/26(土) 05:22:31.21ID:MLavBbcpr >>1乙
3.0おめでとう
3.0おめでとう
9デフォルトの名無しさん (アウアウウー Sa71-ZH8k)
2020/12/27(日) 22:23:18.64ID:3h7fei6ma $ gem install clipboard
$ irb
irb> require 'clipboard'
=> true
irb> puts Clipboard.paste
朝鮮・韓国兵の扱い方(取り扱いマニュアル) 旧日本陸軍・米軍・旧ソ連共産党 | memo
=> nil
$ irb
irb> require 'clipboard'
=> true
irb> puts Clipboard.paste
朝鮮・韓国兵の扱い方(取り扱いマニュアル) 旧日本陸軍・米軍・旧ソ連共産党 | memo
=> nil
10デフォルトの名無しさん (ワッチョイ 9bad-yePO)
2020/12/28(月) 21:08:07.24ID:JL6YsW3y0 Rubyってトップレベル関数はprivateにできないの?
やっぱり、Pythonみたいに__ってしてあげるしかないのかな
やっぱり、Pythonみたいに__ってしてあげるしかないのかな
11デフォルトの名無しさん (ワッチョイ 8f5f-yePO)
2020/12/29(火) 11:46:48.14ID:NZwVboWN0 2.7で作ったアプリを3.0で動かしてみたらエラーでした
12デフォルトの名無しさん (ワッチョイ 2e63-YHUb)
2021/01/02(土) 17:25:59.70ID:z1ZKe1zV0 rubyで自分用のCUIアプリを作成しています。質問させて下さい。
rubyではクラスごとにファイルを分けるべきでしょうか?
名前空間ごとにディレクトリを作成すべきでしょうか?
また、とりあえず他のソースコードを何個か見て、以下のディレクトリを作成しています。
bin/
lib/
binの中はコマンドライン解析用のソースコードのみで、他はlibの中に全部入っています。
この配置は一般的でしょうか?
また、テスト用のソースコードやデータはどのように配置すべきでしょうか?
私の作っているソフトウェアの規模は個人用なので小規模で2万行程度です。ただし、最終的にはこの倍はいきそうです。
しかしながら、勉強も兼ねて、なるべくrubyのお作法に従うようにしたいです。
よろしくお願いいたします。
rubyではクラスごとにファイルを分けるべきでしょうか?
名前空間ごとにディレクトリを作成すべきでしょうか?
また、とりあえず他のソースコードを何個か見て、以下のディレクトリを作成しています。
bin/
lib/
binの中はコマンドライン解析用のソースコードのみで、他はlibの中に全部入っています。
この配置は一般的でしょうか?
また、テスト用のソースコードやデータはどのように配置すべきでしょうか?
私の作っているソフトウェアの規模は個人用なので小規模で2万行程度です。ただし、最終的にはこの倍はいきそうです。
しかしながら、勉強も兼ねて、なるべくrubyのお作法に従うようにしたいです。
よろしくお願いいたします。
13(u_・y) (アウアウウー Saa5-Jh9r)
2021/01/04(月) 11:01:26.70ID:oZidFLopa 俺様なら作法とか無視して最低3フォルダは作るけど
0、bin
1、そのアプリのみで使う事が想定されてるファイル群
2、他のアプリでもそのまま使える完全に分離してるmodule/class群
どうしても一般論でやるってところに拘るならrubyコミッターのソースコード探して見てくれば良い
標準があるとすればそれ
0、bin
1、そのアプリのみで使う事が想定されてるファイル群
2、他のアプリでもそのまま使える完全に分離してるmodule/class群
どうしても一般論でやるってところに拘るならrubyコミッターのソースコード探して見てくれば良い
標準があるとすればそれ
14(u_・y) (アウアウウー Saa5-Jh9r)
2021/01/04(月) 11:24:34.37ID:oZidFLopa (u_・y) 質問です。世の中を自分の好きなように動かしたいのですが。
(u_・y) "rubyを使う"という条件に限定した場合、何をするのが最適解でしょうか?
(u_・y) "rubyを使う"という条件に限定した場合、何をするのが最適解でしょうか?
15デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2021/01/04(月) 13:08:51.30ID:VbZo6FxW0 >>12
gemの構成に従うのが一般的
$ bundle gem <project_name> でscaffoldしてくれる
もう少し詳しく知りたければオライリーから出てる
「Build Awesome Command-Line Application in Ruby 2」の9章
gemの構成に従うのが一般的
$ bundle gem <project_name> でscaffoldしてくれる
もう少し詳しく知りたければオライリーから出てる
「Build Awesome Command-Line Application in Ruby 2」の9章
16デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/04(月) 13:22:27.53ID:yec7Hk1C0 Rails のプロジェクト構成に従えば?
プロジェクトルート直下のフォルダは、
ruby -e 'puts Dir.glob( "*" ).select{ |file| File.directory? file }.sort.join( ", " )'
app, bin, config, db, lib, log, node_modules, public, storage, test, tmp, vendor
プロジェクトルート直下のフォルダは、
ruby -e 'puts Dir.glob( "*" ).select{ |file| File.directory? file }.sort.join( ", " )'
app, bin, config, db, lib, log, node_modules, public, storage, test, tmp, vendor
17(u_・y) (アウアウウー Saa5-Jh9r)
2021/01/04(月) 20:10:47.67ID:0ES7puYLa 問 1
以下のソースコードを実行したときに最終的に表示される文字列をこたえよ
※ まずは答えを見ずに考えてね!
def b x
x + " rails"
end
def f(x=<<-TEXT) return p b x ; python最高(*'▽')
on #{print "ruby "}
TEXT
end
f
答え: https://ideone.com/G9U1Ab
以下のソースコードを実行したときに最終的に表示される文字列をこたえよ
※ まずは答えを見ずに考えてね!
def b x
x + " rails"
end
def f(x=<<-TEXT) return p b x ; python最高(*'▽')
on #{print "ruby "}
TEXT
end
f
答え: https://ideone.com/G9U1Ab
18デフォルトの名無しさん (ワッチョイ 2e63-YHUb)
2021/01/04(月) 21:25:31.68ID:yms/N9cK0 ありがとうございます。
いただいた回答を確認させていただきましたが、bundle2.7 gem NAMEで出てくる内容が、私の知りたい回答に近いようです。
参考にさせていただきます。
いただいた回答を確認させていただきましたが、bundle2.7 gem NAMEで出てくる内容が、私の知りたい回答に近いようです。
参考にさせていただきます。
19デフォルトの名無しさん (ワッチョイ 468c-1BNf)
2021/01/05(火) 19:10:35.24ID:khtEPZ8Z0 CSVファイルの読み込みで下みたいに変換することってできる?
"0123",1
=> ["0123", 1]
"0123",1
=> ["0123", 1]
20デフォルトの名無しさん (オッペケ Srf1-hZl1)
2021/01/05(火) 19:30:04.21ID:MfDAyFl4r >>19
CSV.parse '"0123",1', quote_char: ?' #=> [["\"0123\"", "1"]]
CSV.parse '"0123",1', quote_char: ?' #=> [["\"0123\"", "1"]]
21デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/06(水) 00:17:02.38ID:2hpPqzu40 CSV では文字列・数値とか、各列の型を指定できなかったっけ?
各列の変換器
各列の変換器
22デフォルトの名無しさん (ワッチョイ 8205-I5PR)
2021/01/06(水) 02:45:29.91ID:X+T/DkCZ0 プログラミング自体初心者です
ファイバーを全く理解していなかったので勉強してみているのですが
class Test
def initialize
@fiber = Fiber.new {test}
end
def test
p "これがファイバーのブロックで与えた処理だ"
Fiber.yield
p "理解したかな???"
end
def fiber_test(count = 60)
@fiber.resume
p "帰ってきたぞ"
@fiber.resume
p "再び帰ってきたぞ"
count.times do {Fiber.yield}
end
end
このコードを組んで別の場所でTest.new.fiber_testとインスタンスを作成して呼び出してみたのですが
@fiber.resumeでtestメソッドへ移動し
Fiber_yieldでfiber_testメソッドへ戻ることはわかったのですが
testメソッドで@fiber.resumeを実行すると親子関係がおかしくなるからかFiberErrorを起こすのに対し
fiber_testメソッド側でFiber_yieldを実行すると一瞬画面が止まるだけでコンソールにも何も表示されません
これは何が起きているのでしょうか?
引数のcountを増やすほど長く画面が固まります
ファイバーを全く理解していなかったので勉強してみているのですが
class Test
def initialize
@fiber = Fiber.new {test}
end
def test
p "これがファイバーのブロックで与えた処理だ"
Fiber.yield
p "理解したかな???"
end
def fiber_test(count = 60)
@fiber.resume
p "帰ってきたぞ"
@fiber.resume
p "再び帰ってきたぞ"
count.times do {Fiber.yield}
end
end
このコードを組んで別の場所でTest.new.fiber_testとインスタンスを作成して呼び出してみたのですが
@fiber.resumeでtestメソッドへ移動し
Fiber_yieldでfiber_testメソッドへ戻ることはわかったのですが
testメソッドで@fiber.resumeを実行すると親子関係がおかしくなるからかFiberErrorを起こすのに対し
fiber_testメソッド側でFiber_yieldを実行すると一瞬画面が止まるだけでコンソールにも何も表示されません
これは何が起きているのでしょうか?
引数のcountを増やすほど長く画面が固まります
23デフォルトの名無しさん (オッペケ Srf1-hZl1)
2021/01/06(水) 05:27:15.07ID:jWwxeiIUr24デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/06(水) 06:10:07.47ID:2hpPqzu40 Fiber は、coroutine みたいなものか
初心者がやるものじゃない。
10年以上やってから、やるもの
初心者がやるものじゃない。
10年以上やってから、やるもの
25デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/06(水) 06:33:24.80ID:2hpPqzu40 f = Fiber.new do
n = 0
loop do
puts "子の前 : #{ n }"
Fiber.yield( n ) # 親へ
puts "子の後 : #{ n }"
n += 1
end
end
2.times do |idx|
puts "親の前 : #{ idx }"
puts "親の値 : #{ f.resume }" # 子へ
puts "親の後 : #{ idx }"
end
出力
親の前 : 0
子の前 : 0
親の値 : 0
親の後 : 0
親の前 : 1
子の後 : 0 # 要注意!
子の前 : 1
親の値 : 1
親の後 : 1
n = 0
loop do
puts "子の前 : #{ n }"
Fiber.yield( n ) # 親へ
puts "子の後 : #{ n }"
n += 1
end
end
2.times do |idx|
puts "親の前 : #{ idx }"
puts "親の値 : #{ f.resume }" # 子へ
puts "親の後 : #{ idx }"
end
出力
親の前 : 0
子の前 : 0
親の値 : 0
親の後 : 0
親の前 : 1
子の後 : 0 # 要注意!
子の前 : 1
親の値 : 1
親の後 : 1
26デフォルトの名無しさん (ブーイモ MMb6-zmFY)
2021/01/06(水) 11:25:26.71ID:HlI/jGZrM >>22
そのコードはfiber_testメソッドのFiber_yieldしてるところで
can't yield from root fiberのエラーになるよ
エラーにならないならrubyのバージョンと再現可能なコードを書いて
そのコードはfiber_testメソッドのFiber_yieldしてるところで
can't yield from root fiberのエラーになるよ
エラーにならないならrubyのバージョンと再現可能なコードを書いて
27(u_・y) (アウアウウー Saa5-Jh9r)
2021/01/06(水) 12:45:06.84ID:I0SDZM+6a Fiber.yield と @var.resume で処理の投げあいをしてるだけ
で、resumeは変数のメソッドだから変数が参照できればどこからでも呼べるが、
Fiber.yieldっていうのは、Fiber.new{ ここ }の中でしか呼び出せない
なお初心者がFiberを使ったコードを書いても普通にloopで書いたほうがいいもんを煩雑にさせるだけだから今覚えてもすぐ明日から使うぞーってなる機能ではない
で、resumeは変数のメソッドだから変数が参照できればどこからでも呼べるが、
Fiber.yieldっていうのは、Fiber.new{ ここ }の中でしか呼び出せない
なお初心者がFiberを使ったコードを書いても普通にloopで書いたほうがいいもんを煩雑にさせるだけだから今覚えてもすぐ明日から使うぞーってなる機能ではない
28デフォルトの名無しさん (ワッチョイ 42bb-zSX4)
2021/01/06(水) 14:48:29.93ID:eEkuR0nA0 Ruby使った事ない勢です
知人から恐らくruby(のgem ocra)でコンパイルされたexeファイルを修正してほしいと頼まれたのですが
これ逆アセンブルする方法無いですか?
知人から恐らくruby(のgem ocra)でコンパイルされたexeファイルを修正してほしいと頼まれたのですが
これ逆アセンブルする方法無いですか?
29デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2021/01/06(水) 15:07:09.07ID:twxSQNJZ0 >>28
解凍すればいいだけでは?
解凍すればいいだけでは?
レスを投稿する
ニュース
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 東京株式市場 インバウンド関連株が下落 中国政府の渡航自粛要請で [バイト歴50年★]
- 5:55:55.555
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 戦争は無くならないし殺人は起きるし女はレイプされるし子供は餓死するし
- 日経時間外、5万円割れ 垂直落下始まる [402859164]
- 高市さんに土下座してもらったら一発解決なのに何でやらないんだろ??
- 【悲報】男性人気アイドルグループJO1、中国公演中止wwwwwwwwwwwwwwwwwwwwwwwwwww
