Ruby 初心者スレッド Part 67

1デフォルトの名無しさん (ワッチョイ b72c-yePO)
垢版 |
2020/12/25(金) 04:24:27.68ID:aa9Khe9z0
プログラミング言語 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
2デフォルトの名無しさん (ワッチョイ 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
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
2020/12/25(金) 19:37:36.98ID:HoUTdWdQp
祝 ruby3.0.0
2020/12/25(金) 19:42:54.83ID:cyV6b5qO0
めでたくもなんともない
ムダに歳くったロートル
6デフォルトの名無しさん (ワッチョイ 0bab-JtRj)
垢版 |
2020/12/25(金) 22:20:13.76ID:DVzhLIY40
形態素ゲイムRuby松本まじコスロ
by猪瀬色彩空間
2020/12/25(金) 22:53:56.79ID:gC1vp0cV0
速度3倍ってマジ?
2020/12/26(土) 05:22:31.21ID:MLavBbcpr
>>1
3.0おめでとう
2020/12/27(日) 22:23:18.64ID:3h7fei6ma
$ gem install clipboard
$ irb

irb> require 'clipboard'
=> true
irb> puts Clipboard.paste
朝鮮・韓国兵の扱い方(取り扱いマニュアル) 旧日本陸軍・米軍・旧ソ連共産党 | memo
=> nil
2020/12/28(月) 21:08:07.24ID:JL6YsW3y0
Rubyってトップレベル関数はprivateにできないの?
やっぱり、Pythonみたいに__ってしてあげるしかないのかな
2020/12/29(火) 11:46:48.14ID:NZwVboWN0
2.7で作ったアプリを3.0で動かしてみたらエラーでした
2021/01/02(土) 17:25:59.70ID:z1ZKe1zV0
rubyで自分用のCUIアプリを作成しています。質問させて下さい。

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コミッターのソースコード探して見てくれば良い
標準があるとすればそれ
2021/01/04(月) 11:24:34.37ID:oZidFLopa
(u_・y) 質問です。世の中を自分の好きなように動かしたいのですが。
(u_・y) "rubyを使う"という条件に限定した場合、何をするのが最適解でしょうか?
2021/01/04(月) 13:08:51.30ID:VbZo6FxW0
>>12
gemの構成に従うのが一般的
$ bundle gem <project_name> でscaffoldしてくれる

もう少し詳しく知りたければオライリーから出てる
「Build Awesome Command-Line Application in Ruby 2」の9章
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
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
2021/01/04(月) 21:25:31.68ID:yms/N9cK0
ありがとうございます。
いただいた回答を確認させていただきましたが、bundle2.7 gem NAMEで出てくる内容が、私の知りたい回答に近いようです。
参考にさせていただきます。
2021/01/05(火) 19:10:35.24ID:khtEPZ8Z0
CSVファイルの読み込みで下みたいに変換することってできる?
"0123",1
=> ["0123", 1]
2021/01/05(火) 19:30:04.21ID:MfDAyFl4r
>>19
CSV.parse '"0123",1', quote_char: ?' #=> [["\"0123\"", "1"]]
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を増やすほど長く画面が固まります
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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