Ruby 初心者スレッド Part 52
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2013/06/06(木) 23:50:09.17質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
RoRはスレ違いよ
前スレ
Ruby 初心者スレッド Part 51
http://toro.2ch.net/test/read.cgi/tech/1358636526/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0657デフォルトの名無しさん
2013/10/08(火) 03:06:02.34せめて調べたふりくらいはしましょうよ・・・
0658デフォルトの名無しさん
2013/10/08(火) 03:18:12.182人とも貰えない月というのがあります。集計期間は両者一定であり、仮に12ヶ月とします。
ぬるぽ君のお小遣いのデータは
nulpo = [
{ 'month' => '1', 'money'=> 100 }
{ 'month' => '2', 'money'=> nil }
{ 'month' => '3', 'money'=> 100 }
{ 'month' => '4', 'money'=> nil }
{ 'month' => '5', 'money'=> 150 }
]
こんな感じのハッシュになっています。(厳密に言うと型はHashではなくてActiveRecordの戻り値ですが)
それを↓のような配列にしたいのです。
[
['1', 100, 200, 300]
['2', 0, 200, 200]
['3', 100, 0, 100]
['4', 0, 0, 0]
['5', 150, 0, 150]
]
月 ヌルポ メリポ 計 ※最初の要素が月、次にぬるぽのお小遣い、めりぽのお小遣い、2人の合算が来るということです。
array = []
(1..12).each do |month|
temp_array = []
temp_array[0] = # 月を代入
temp_array[1] = # ヌルポ君のお小遣いを代入
temp_array[2] = # メリポ君のお小遣いを代入
temp_array[3] = # 2人のお小遣いを合算して代入
array << temp_array
end
・・・自分で書いたらこんなコードになりそうなのですが・・・・もう少し良いコードはございますでしょうか?
0659611
2013/10/08(火) 03:22:27.49ぶっちゃけ、
回答や提案を言われてもよくわからないのです。
入門者なので具体的なプログラムを提示してくれないとわかりません。
0660デフォルトの名無しさん
2013/10/08(火) 05:25:27.75結果だけ欲しいなら元のスレで動きませんでしたって報告して
別の人に答えてもらえば良かったんだよ
require 'net/https'
(http=Net::HTTP.new('i.tipness.co.jp',443)).use_ssl=true
(1..3).each{|i|http.get("/pc/schedule/registration/?page=#{i}").body[/^<table class="table2[^>]+>(.*?)<\/table>/m,1].
scan(/^<td>.*$/).each{|td|print(td=='<td>'?"\n":td.gsub(/<\/?td>/,'')+"\t")};sleep 2}
0661デフォルトの名無しさん
2013/10/08(火) 05:30:59.38見習いたいもんだ
0662デフォルトの名無しさん
2013/10/08(火) 07:53:27.77def f(arr)
arr.map { |hash|
money = hash['money']
[hash['month'], if money then money else 0 end]
}
end
f(nulpo).zip(f(melipo)).map { |(month1, money1), (month2, money2)|
raise "month1: #{month1}, month2: #{month2}" if month1 != month2
[month1, money1, money2, money1 + money2]
}
0663662
2013/10/08(火) 08:37:27.25def f(arr)
arr.map { |hash|
money = hash['money']
[hash['month'], if money then money else 0 end]
}
end
f(nulpo).zip(f(melipo)).map { |(month1, money1), (month2, money2)|
raise "month1: #{month1}, month2: #{month2}" if month1 != month2
[month1, money1, money2, money1 + money2]
}
0664デフォルトの名無しさん
2013/10/08(火) 10:29:25.00例えば5列ごとなら[1,2,3,・・・・23]を
[1,2,3,4,5]
[6,7,8,9,10]
....
[16,17,18,19,20]
[21,22,23]にする感じで。
一応その目的は
a=[*1..23]
b=[]
while a[0] do
b << a.shift(5)
end
p b
あたりで達成はできるのですが
0665デフォルトの名無しさん
2013/10/08(火) 10:35:41.060666デフォルトの名無しさん
2013/10/08(火) 10:36:26.70暗記しなくていいから、どんな動作するメソッドがあるかだけでも見ておくといい
必要になったときに頭になんか引っかかるから
ttp://doc.ruby-lang.org/ja/1.9.2/class/Array.html
読みにくいけどな!
i
rb> (1..23).to_a.each_slice(5).each{|a| p a}
[1, 2, 3, 4, 5]
[6, 7, 8, 9, 10]
[11, 12, 13, 14, 15]
[16, 17, 18, 19, 20]
[21, 22, 23]
0667デフォルトの名無しさん
2013/10/08(火) 10:42:52.60(1..23).each_slice(5).to_a
0668デフォルトの名無しさん
2013/10/08(火) 10:51:47.12なるほど
ご親切にありがとうございました。
0669デフォルトの名無しさん
2013/10/08(火) 11:39:41.09今回は「いる」と思う
配列なんとかしたいですという質問なのだから、配列という区切りは例示であったほうがいい
変にirbでワンライナーにするから意図がわかりにくいのだけども
arr = (1..23).to_a
arr.each_slice(5).each{|a| p a}
うむ完璧
0670デフォルトの名無しさん
2013/10/08(火) 11:46:22.37なるべく1行で書いて、残りは結果表示にしたい
0671611
2013/10/08(火) 17:40:43.46ありがとうございます。
しかし、↓こんな感じで、エラーになります
C:\a>ruby t12.rb
C:/Program Files/Ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:918:in `connect': SSL_con
nect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verif
y failed (OpenSSL::SSL::SSLError)
from C:/Program Files/Ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:918:in `bloc
k in connect'
from C:/Program Files/Ruby-2.0.0/lib/ruby/2.0.0/timeout.rb:52:in `timeou
t'
from C:/Program Files/Ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:918:in `conn
ect'
from C:/Program Files/Ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:862:in `do_s
tart'
from C:/Program Files/Ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:851:in `star
t'
from C:/Program Files/Ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:1367:in `req
uest'
from C:/Program Files/Ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:1126:in `get
'
from t12.rb:3:in `block in <main>'
from t12.rb:3:in `each'
from t12.rb:3:in `<main>'
0672デフォルトの名無しさん
2013/10/08(火) 18:25:27.05さすがにもうスレ違いなんじゃないですかね
冗談抜きで、手動でやった方が早いまである
0673デフォルトの名無しさん
2013/10/08(火) 19:27:46.52ありがとうございました!
0674デフォルトの名無しさん
2013/10/08(火) 19:28:50.51エラーメッセージでググれ
0675デフォルトの名無しさん
2013/10/08(火) 19:43:22.16ソースコードの日本語コードがどーたらあーたらとめんどくせえ。
どっかにすっきり分かる解説ってないの?
0676デフォルトの名無しさん
2013/10/08(火) 20:51:08.34if variable
と、
unless variable.nil?
とでは、どちらを使っていますか?
自分のコードを見直した時にまざっていて気持ち悪かったもので…
0677デフォルトの名無しさん
2013/10/08(火) 20:57:22.61unless else が繋がる場合は、分かりづらいので、
真偽か処理内容を逆にして if else にしたり。
0678676
2013/10/08(火) 21:13:52.17なるほど。たしかに、これは自分も感じます。
また「if variable」でtrueが返るのは、
variableがnilでない時とfalseでない時になるので、
厳密にnilでないことだけを判定したい場合や、
nilでない!というニュアンスを強めたい場合に
「unless variable.nil?」と書こうかなと考えました。
ありがとうございました。
0679デフォルトの名無しさん
2013/10/08(火) 21:52:06.93if variable
と、
unless variable.nil?
とでは、どちらを使っていますか?
自分のコードを見直した時にまざっていて気持ち悪かったもので…
0680デフォルトの名無しさん
2013/10/08(火) 21:53:18.210681デフォルトの名無しさん
2013/10/09(水) 01:33:44.51各自でつくります
0682デフォルトの名無しさん
2013/10/09(水) 01:46:31.53ちょっと実験ということで人気のDMMで女優名を取得しようとしてるんですが、
どうにも取得できない名前があります。
具体的には
http://www.dmm.co.jp/digital/videoa/-/actress/=/keyword=ta/
の田村真樹やら田村まほなど。
doc.xpath("//div[@class='act-box']").inner_text
こんな感じに書いて一応は一覧は取得できるんですが、
どういうわけか歯抜けになります。
どう見ても同じ構造に見えるんですが、何か見落としがあるんでしょうか?
0683デフォルトの名無しさん
2013/10/09(水) 01:52:15.36違うURLで試してました…orz
こんなアホなミスで何時間も格闘してしまったw
スレ汚し失礼しました。
0684デフォルトの名無しさん
2013/10/09(水) 10:25:07.47俺はCやC++経験が長いせいか、制御なんかはifで分ける方が好きだなあ。
Rubyって.でどんどん繋げて一行で実現しようとする傾向あるでしょ。
それやりすぎると、パズル的な読解が必要になって面倒になってくるんだよね。
一行当たりの情報量の粒度、インデントとかの「パターン」として見た目で
制御がわかるような書き方の方が、結局あとからメンテしやすいのではないかと。
完結だから、とか日本語と語順が同じだから、とかで1行連続型を勧める
人が多いのは俺にはあわん。
0685デフォルトの名無しさん
2013/10/09(水) 10:31:47.36if variable
と、
unless variable.nil?
とでは、どちらを使っていますか?
自分のコードを見直した時にまざっていて気持ち悪かったもので…
0686デフォルトの名無しさん
2013/10/09(水) 11:53:51.120687デフォルトの名無しさん
2013/10/09(水) 12:06:46.670688デフォルトの名無しさん
2013/10/09(水) 18:07:56.640689デフォルトの名無しさん
2013/10/09(水) 18:23:12.82るびまの記事が参考になるかも。
Ruby M17N の設計と実装
magazine.rubyist.net/?0025-Ruby19_m17n
Ruby 2.0.0 の注意点やその他の新機能
magazine.rubyist.net/?0041-200Special-note#l2
クックパッドを Ruby 2.0.0 に対応させた話 - 文字エンコーディング関係
magazine.rubyist.net/?0042-MigratingARailsApplicationToRuby200#l21
0690デフォルトの名無しさん
2013/10/09(水) 18:28:19.090691デフォルトの名無しさん
2013/10/09(水) 18:34:20.300692デフォルトの名無しさん
2013/10/09(水) 18:35:56.17並行して、C# や Haskell も習得中です
0693デフォルトの名無しさん
2013/10/09(水) 18:43:18.48インデントは別にいいけどselfが嫌だし
1行に詰め込みたい症候群だからなあ
まあPythonも内包表記は好きだけどな、特にfor2つの時の挙動
0694デフォルトの名無しさん
2013/10/09(水) 19:28:08.30Pythonに乗り換えた
一番の理由はRubyはGUIのフレームワークがどれも糞だった
0695デフォルトの名無しさん
2013/10/09(水) 19:40:20.49「GUIでなにかやること」が目的なら他の言語でやればいい
0696デフォルトの名無しさん
2013/10/09(水) 19:41:28.720697デフォルトの名無しさん
2013/10/09(水) 19:44:37.040698デフォルトの名無しさん
2013/10/09(水) 20:20:19.85びじゅあるなんたらとか
0699デフォルトの名無しさん
2013/10/09(水) 21:55:40.290700デフォルトの名無しさん
2013/10/09(水) 22:19:55.68日本生まれだからRubyの方が出来がいい、とかない?
0701デフォルトの名無しさん
2013/10/09(水) 22:25:19.96Rubyにはないんですか?
もしないなら松本先生に作ってもらいたい
0702デフォルトの名無しさん
2013/10/09(水) 22:31:49.52EUC/SJISが主流の時代には日本発のRubyのほうが出来がよかったけど(過去形)、
どのプラットフォームでもUTF-8が普通に使える今の時代では大差無し
残念なことに、現行の1.9ではマジックコメントやら添付ライブラリといった変更で
日本語処理周りに不要な混乱を起こしたことで、逆に弱点となった....と思う
個人的にはRubyの進化(1.6から2.0)の流れを好意的に見ているが、
1.9の日本語対応だけは大失敗だったと見ている
まあ、あと数年もすれば2.x系が主流になるから、それほど気にはしていないが....
0703デフォルトの名無しさん
2013/10/09(水) 22:32:02.850704デフォルトの名無しさん
2013/10/09(水) 22:46:50.221.9.0と1.9.1があったからこそなんとかなった面も多いわけで
0705デフォルトの名無しさん
2013/10/09(水) 22:50:36.75>1.9の日本語対応だけは大失敗だったと見ている
エラー→Webで調べておまじない、みたいなのが多くて疲れた。
日本語でてこない、コメントでしか使ってないようなログ解析のスクリプトが
突然エラーとかで疲れた。
いろいろ嫌な思い出。
もうちょっとなんとかならなかったのかね?
0706デフォルトの名無しさん
2013/10/09(水) 22:52:59.85こういう企画なら昔やってた、今でも多少は参考になるだろう
http://magazine.rubyist.net/?0010-CodeReview
0707デフォルトの名無しさん
2013/10/10(木) 10:10:00.733こ
0708デフォルトの名無しさん
2013/10/10(木) 12:21:40.57入門で出てくるプッツとゲッツがコンビ芸名みたいで可愛かったから
0709デフォルトの名無しさん
2013/10/10(木) 14:58:50.640710デフォルトの名無しさん
2013/10/10(木) 14:59:23.990711デフォルトの名無しさん
2013/10/10(木) 17:30:39.88Web上でp 100のpに関する実装を見たいのでURLください
0712デフォルトの名無しさん
2013/10/10(木) 17:48:42.41https://github.com/ruby/ruby/blob/trunk/io.c
https://raw.github.com/ruby/ruby/trunk/io.c
0713709
2013/10/11(金) 09:31:22.390714デフォルトの名無しさん
2013/10/11(金) 17:04:55.240715デフォルトの名無しさん
2013/10/11(金) 17:06:43.880716デフォルトの名無しさん
2013/10/11(金) 21:13:05.960717デフォルトの名無しさん
2013/10/11(金) 22:03:31.96公開された。PYPLはGoogle検索エンジンにおいてプログラミング
言語のチュートリアルが検索された回数から、対象となるプログラ
ミング言語がどれだけ話題になっているかをインデックス化したもの。
1 Java 26.8%
2 PHP 13.2%
3 Python 9.8%
4 C# 9.5%
5 C++ 9.1%
6 C 8.4%
7 Objective-C 8.1%
8 Javascript 7.6%
9 Visual Basic 3.1%
10 Ruby 2.6% ←がんばれ
0718デフォルトの名無しさん
2013/10/11(金) 22:54:27.700719デフォルトの名無しさん
2013/10/11(金) 23:03:59.71日本では流行っても海外では相手にされない
0720デフォルトの名無しさん
2013/10/12(土) 00:50:20.84これだけがんばれれば十分
0721デフォルトの名無しさん
2013/10/12(土) 01:14:46.640722デフォルトの名無しさん
2013/10/12(土) 01:16:31.72意外とpythonって健闘しとるんやね。
0723デフォルトの名無しさん
2013/10/12(土) 01:49:06.790724デフォルトの名無しさん
2013/10/12(土) 02:51:20.180725611
2013/10/12(土) 03:05:34.48君たちが入門者を冷たくあしらうから、先細りなんだよw
俺もpythonに行っちゃったしw
0726611
2013/10/12(土) 03:20:01.33ほぼ、同じような感じするんだけどw
0727611
2013/10/12(土) 03:21:14.680728デフォルトの名無しさん
2013/10/12(土) 04:16:16.320729611
2013/10/12(土) 05:17:23.36ああ、そうですか。
つまり、パソコンの能力が上がってきたから、何でも出来るって感じなんですかね?
ひょっとして、Cもコンパイルなしで、
コマンドプロンプトで動かせたりして?
0730デフォルトの名無しさん
2013/10/12(土) 05:58:50.260731デフォルトの名無しさん
2013/10/12(土) 08:31:43.87C++インタプリタも存在してるね
まあスレチだし自分で調べるかC関連のスレで聞いてくれ
0732デフォルトの名無しさん
2013/10/12(土) 11:11:36.89image similarity ruby でぐぐったら similie という gem があったけど、
これはハミング距離だから出力範囲がアレだな。
0733デフォルトの名無しさん
2013/10/12(土) 11:12:44.91cint でぐぐれ
0734デフォルトの名無しさん
2013/10/12(土) 15:30:56.38おれもそうおもう
0735デフォルトの名無しさん
2013/10/12(土) 16:17:10.34おれもそうおもう
0736デフォルトの名無しさん
2013/10/12(土) 16:47:15.73おれもそうおもう
0737デフォルトの名無しさん
2013/10/12(土) 16:53:24.790738デフォルトの名無しさん
2013/10/12(土) 17:07:09.860739デフォルトの名無しさん
2013/10/12(土) 17:44:30.68Rubyが気になって気になってしかたないんだねえ....
0740デフォルトの名無しさん
2013/10/12(土) 18:09:38.810741デフォルトの名無しさん
2013/10/12(土) 18:16:42.630742デフォルトの名無しさん
2013/10/12(土) 18:18:14.63ブランチ名はなににしたらいいのかおしえて
バグをみつけたけどこのへんのルールがわからん
0743デフォルトの名無しさん
2013/10/12(土) 19:19:48.360744デフォルトの名無しさん
2013/10/12(土) 20:09:22.340745デフォルトの名無しさん
2013/10/12(土) 21:02:02.070746デフォルトの名無しさん
2013/10/12(土) 21:16:41.09あとiOSやAndroidのアプリが簡単にできるフレームワークっていいのある?
0747デフォルトの名無しさん
2013/10/12(土) 22:02:06.400748デフォルトの名無しさん
2013/10/13(日) 02:57:01.330749デフォルトの名無しさん
2013/10/13(日) 16:40:19.39どっちの本が好きですか
0750デフォルトの名無しさん
2013/10/13(日) 16:45:39.530751デフォルトの名無しさん
2013/10/13(日) 16:48:05.82ロケールで自動的に日本語サイトに飛ばしたり英語サイトに飛ばすのやめてもらいたい
そんなのサーバ側で勝手にやるのはおせっかい
俺は英語でみたいんだよ
0752デフォルトの名無しさん
2013/10/13(日) 17:10:03.68それは公式サイトの管理者へ(メール等で)直接要望を伝えるか、
または公式メーリングリスト(ruby-talk)で物申せばいいのではないかと....
ここ(=2ch)でグダグダと文句を言うだけでは何も始まらないよ
0753デフォルトの名無しさん
2013/10/13(日) 17:14:50.04だって俺はRubyはメインで使ってないから
0754デフォルトの名無しさん
2013/10/13(日) 17:18:24.970755デフォルトの名無しさん
2013/10/13(日) 17:24:34.16要するに愚痴を聞いてもらいたかっただけなんだろ
0756794
2013/10/13(日) 17:40:58.21書店に行くから参考にしたいと思って聞いたのに誰も答えてくれないし
後の書き込みへの罵りばっかりってここけっこう民度ひどくないかな
■ このスレッドは過去ログ倉庫に格納されています