Ruby 初心者スレッド Part 65

■ このスレッドは過去ログ倉庫に格納されています
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
2018/12/22(土) 04:46:34.41ID:84E3pYZa0
Rubyの絵本、2008
たのしいRuby 第5版、2016

3ステップでしっかり学ぶ Ruby入門、2018

かんたん Ruby (プログラミングの教科書)、2018

プロを目指す人のためのRuby入門、2017

改訂2版 パーフェクトRuby、2017

改訂2版 Ruby逆引きハンドブック、2018 (中級者向け)

Effective Ruby、2015 (中級者向け)

メタプログラミング Ruby 第2版、2015 (中級者向け)

リファクタリング:Rubyエディション、2010 (中級者向け)

RubyでつくるRuby ゼロから学びなおすプログラミング言語入門、2017 (中級者向け)

Rubyのしくみ、2014 (中級者向け)

改訂4版 基礎 Ruby on Rails、2018

パーフェクト Ruby on Rails、2014

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例、2014

オブジェクト指向設計実践ガイド Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方、2016

Seleniumデザインパターン&ベストプラクティス、2015
2018/12/22(土) 04:47:41.34ID:84E3pYZa0
開発環境

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
2018/12/22(土) 14:30:22.80ID:uFQ/hnLUM
>>1
5デフォルトの名無しさん (ワッチョイ cb80-JI52)
垢版 |
2018/12/23(日) 02:23:36.39ID:lfndw29D0
前スレの、>995

>rubyでサイトにアクセスさせてたんだけど、そのrubyが急に動かなくなってしまいまして、どうしたもんかと

selenium-webdriver(SW) を使っているなら、ブラウザが新しくなってエラーが出るとか?
SW, chromedriver を最新にすれば?

最新のchromedriver をダウンロードする
http://chromedriver.chromium.org/home

レポジトリの情報を見る。
gem search -r selenium-webdriver
#=> version 3.141 が最新

グローバルにインストールする。
gem install selenium-webdriver

インストール済みGemを確認する。
gem list selenium-webdriver
2018/12/25(火) 09:31:38.95ID:w87C2v/dM
今年のクリスマスは新しいバージョンないのか
2018/12/25(火) 19:08:55.81ID:+tXPBaqnM
Ruby 2.6.0 キターーーー
8デフォルトの名無しさん (アメ MM59-wUZI)
垢版 |
2018/12/26(水) 20:00:19.74ID:v8erlN15M
> なお、「Ruby」で採用されているJITコンパイラーは、他の言語で採用されている一般的なものとは異なり、
> C言語のソースコードをファイルとしてディスクに書き、通常のCコンパイラーを用いてネイティブコードに変換することでJITコンパイルを行うという手法(MJIT)を採用しているという。
> そのため、「Ruby 2.6」でJITコンパイラーを利用するには「GCC」、「Clang」、あるいは「Microsoft VC++」によってビルドされた「Ruby」実装と、それをビルドしたコンパイラーを実行時に利用できる必要がある。

トッポいなぁwww
2018/12/26(水) 21:07:57.20ID:8V4rShRI0
それは、JITではないな。
2018/12/26(水) 23:00:34.51ID:lC66I3j80
Cみたいに、構造体CPersonを要素とする配列を作りたいんだけど、どうやればいい?
CPerson Struct.new(:name, :age);

persons = [
CPeson.new("Taro Yamda", 25),
CPeson.new("Yuko Suzuki", 20),
CPeson.new("Erika Toda", 30)
];
で定義して、参照は、

k = 要素番号;
name = persons[k].name;
age = persons[k].age;


みたいにするのが標準?
2018/12/26(水) 23:01:21.88ID:lC66I3j80
誤: CPerson Struct.new(:name, :age);
正: CPerson=Struct.new(:name, :age);

orz
2018/12/27(木) 00:05:55.93ID:zcYaa59I0
Effective Ruby の著者のサイトに、本のソースコードが載っている

項目10 : 構造化データの表現には、Hash ではなく、Struct を使おう
https://github.com/pjones/effrb/blob/master/oop/struct_test.rb

ハッシュキーは内部実装の詳細情報なので、
これがユーザーに公開されているのは、良くないから

一方、Struct は、Class Generator。
簡易クラス
2018/12/27(木) 01:03:54.71ID:KLGborwtM
簡単にクラスが作れる!軽い気持ちでじゃんじゃんクラスにしてね!な言語かと思ってたのに簡易クラスとは…
2018/12/27(木) 02:41:44.91ID:zcYaa59I0
Struct は入門書にも書いていないのに、これを使うのは物好きな人だろう。
書き捨てのツール作りとかに使うのかも

でも、Rails のような大規模プログラムでも使っているけど
15デフォルトの名無しさん (アウアウエー Sa02-n9eg)
垢版 |
2018/12/27(木) 07:26:53.72ID:4d8pe2yNa
>>8
お前さんが考えてる「遥かにスマートな方法」って何?
2018/12/27(木) 07:31:41.61ID:+XOHKY4Q0
面倒くさいからコンパイラも内蔵してくれ
2018/12/27(木) 11:44:26.94ID:gNvYWHErr
お前ら詳しすぎ
2018/12/27(木) 11:52:39.98ID:lYmcIHJL0
>>10
CPerson.new(・・・)
の代わりに、Syntax Suger として
CPerson[・・・]
を使えるらしいので、やってみたところ上手くいった:

CPerson = Struct.new(:name, :age);  # CPerson型の型定義

$g_persons = [
 CPerson["Taro Yamda", 25],
 CPerson["Yuko Suzuki", 20],
 CPerson["Erika Toda", 30]
];
for k in 0..2
 name = $g_persons[k].name;
 age  = $g_persons[k].age;
 print name, ", ", age, "\n";
end
2018/12/27(木) 12:38:00.49ID:M6yD45RN0
何がしたいのかよくわからんがRubyでfor文は殆ど使わない

$g_persons.each{|p|puts 'name = %s, age = %s' % p.to_a}
2018/12/27(木) 12:47:26.89ID:xdSwIlO30
forを使わないのは良いが
そこでeachとか使われると萎える
2018/12/27(木) 12:57:10.36ID:xdSwIlO30
これのどちらかだな(%よりはformatの方が推奨される)

puts $g_persons.map { |p| 'name = %s, age = %s' % p.to_a }
puts $g_persons.map { |p| "name = #{p.name}, age = #{p.age}" }
22デフォルトの名無しさん (ワッチョイ 6e8a-ZwQs)
垢版 |
2018/12/27(木) 12:59:00.75ID:fJVcpN3h0
print name, ", ", age, "\n";
ってのはただの例だろうからこの場合eachよりふさわしい方法はないでしょ
代替案も言えない屑は勝手に萎えてろ
2018/12/27(木) 13:01:20.74ID:aB5zW/KI0
>>21
なんでわざわざmap?w
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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