Ruby 初心者スレッド Part 46
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2011/10/05(水) 13:52:00.74質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
前スレ
Ruby 初心者スレッド Part 45
http://hibari.2ch.net/test/read.cgi/tech/1311700060/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0002デフォルトの名無しさん
2011/10/05(水) 13:52:45.050003デフォルトの名無しさん
2011/10/05(水) 15:03:59.61おつ!
0004デフォルトの名無しさん
2011/10/05(水) 15:28:39.77乙
0005デフォルトの名無しさん
2011/10/05(水) 17:38:31.51http://hibari.2ch.net/test/read.cgi/php/1311050686/
Windowsスレ
http://hibari.2ch.net/test/read.cgi/tech/1155031689/
書籍:ほぼ公式
「たのしいRuby 第3版 Rubyではじめる気軽なプログラミング」 (プログラミング自体が初めてでない人向け)
http://www.amazon.co.jp/dp/4797357401/
「初めてのRuby」 (同上)
http://www.amazon.co.jp/dp/4873113679/
書籍:紙のマニュアルに相当
「Rubyレシピブック 第3版 303の技」((脱)初心者向け基礎テクニック集、1.9対応)
http://www.amazon.co.jp/dp/4797359986/
「プログラミングRuby 第2版 言語編」(初心者向け参考書)
http://www.amazon.co.jp/dp/4274066428/
現在、1.8 系列の最新である Ruby 1.8.7 と 1.9 系列の最新である Ruby 1.9.2 の2系統が存在
肝心な部分がわりと違い、プログラムはそのままでは動作せず、予備知識も別個。両対応させるには相応の追加記述が必要
1.9.2 用の教科書があるなら 1.9.2 から始めても構わないが、1.8 用のスクリプトやライブラリは 1.9.2 では動作しないので注意
Windows用Rubyは、Ruby以外のものもあらかた入っているActiveScriptRubyと
http://www.artonx.org/data/asr/
RubyだけインストールされるRubyInstallerの2種類存在
http://rubyinstaller.org/downloads/
何が必要なのかわからない人はとりあえずActiveScriptRuby使っと毛
chm(HTMLヘルプ)式のダウンロードできるマニュアルが便利
http://www.ruby-lang.org/ja/documentation/
0006デフォルトの名無しさん
2011/10/05(水) 17:52:24.43Railsは板違い
と書いておけば目立つだろうか
日常的に使ってる人も少ないし、初心者に教えられるような人も少ないので、
素直に専門でやってる人の集まるWebProg板に行ったほうが吉
0007デフォルトの名無しさん
2011/10/05(水) 18:14:07.95WebProg板のRailsスレは
クソが自分のブックマークをスパム投稿し続けてて機能していないんだよ
【RoR】Ruby on Rails Part12
http://hibari.2ch.net/test/read.cgi/php/1311050686/
0008デフォルトの名無しさん
2011/10/05(水) 18:43:05.06むしろ最近超絶教えて君が毎日やって来るのが超絶ウザい
Railsボットお断りスレとRails初心者スレが必要だな
0009デフォルトの名無しさん
2011/10/05(水) 18:56:26.94誘導先の板のスレがどうなってるかは、そりゃ、その板とそのスレの自治だろう
0010デフォルトの名無しさん
2011/10/05(水) 19:12:26.520011デフォルトの名無しさん
2011/10/05(水) 22:15:03.84[1,2,3,4,5,6]を[[1,2],[3,4],[5,6]]みたいにしたい
0012デフォルトの名無しさん
2011/10/05(水) 22:23:21.81こんな感じ?
[1, 2, 3, 4, 5, 6].enum_slice(2).to_a
0013デフォルトの名無しさん
2011/10/05(水) 23:05:12.29まさしくそれ!ありがとう
そうかArrayだけじゃなくてEnumerableも探さなきゃいけないんだな
0014デフォルトの名無しさん
2011/10/06(木) 18:22:15.44puts "a,$b,c".split(",").map{|i| "#{i}=#{eval i}"}.join(",")
# ==> a=1,$b=2,c=3
このデバッグプリント関数なんとかラップできないですか
0015デフォルトの名無しさん
2011/10/06(木) 18:34:22.63def dbputs(s)
puts s.split(',').map{|i| "#{i}=#{yield i}"}.join(',')
end
dbputs("a,$b,c"){|i| eval i}
0016デフォルトの名無しさん
2011/10/06(木) 18:46:41.62本来は>>1に書いてあったんだよ
0017デフォルトの名無しさん
2011/10/06(木) 19:23:19.74so = TCPSocket.open(ip,port)
s.print "文字列"
s.each("\0") do |line|
p line
end
3行目のs.each("\n") do |line|がよくわかりません
eachのカッコ内の\nは何の意味がありこれを書くことによってどのようなことが行われるのでしょうか?
0018デフォルトの名無しさん
2011/10/06(木) 19:35:19.72puts blk[].split(",").map{|i| "#{i}=#{blk.binding.eval(i)}"}.join(",")
end
a,$b,c=1,2,3
dbputs{ "a,$b,c" }
見た目違和感あるけどこんな感じなら
0019デフォルトの名無しさん
2011/10/06(木) 20:20:47.020020デフォルトの名無しさん
2011/10/06(木) 21:29:38.35class Binding
def dbputs(s)
puts s.split(",").map{|i| "#{i}=#{self.eval(i)}"}.join(",")
end
end
binding.dbputs("a,$b,c")
なんちゃって
JRubyで実装しにくいから却下されたという
Binding.of_callerが必要になるやつだねぇ
もしあればdbputs("a,$b,c") ですませられるのだろうけど
現状だと、何らかの方法でbindingを渡さないとならん
0021デフォルトの名無しさん
2011/10/07(金) 19:49:55.26if s[s.split(//u).length] == "/"
s= s.split(//u)[0..-2].join
end
上記でやっても上手く処理されません。
文字列は2バイト文字で、中に記号なども含まれます。
文字コードはUTF-8です。
0022デフォルトの名無しさん
2011/10/07(金) 19:56:00.17ねこ
0023デフォルトの名無しさん
2011/10/07(金) 20:00:06.70検索しながら1時間以上悩んでたのが馬鹿みたいでした。
どうもありがとうございます。
0024デフォルトの名無しさん
2011/10/07(金) 20:08:29.11"こ"を改行とみなして取り除くって
0025デフォルトの名無しさん
2011/10/07(金) 20:11:17.26こ
0026デフォルトの名無しさん
2011/10/07(金) 20:22:30.74違う
String#chomp は引数文字列を末尾から取り除いて新しい文字列を返す(末尾が該当しなければ、なにもしない)というメソッド
引数が無かった場合、$/ を取り除こうとする
さらに、$/ がデフォルトの $/ と同様だった場合には、特別に \n と \r と \r\n の3種類を対象とする
perl の chomp とはコンセプトからして既に別物
0027デフォルトの名無しさん
2011/10/07(金) 20:37:25.370028デフォルトの名無しさん
2011/10/07(金) 21:03:53.86そうなのか
またるりまに騙されたぜ
0029デフォルトの名無しさん
2011/10/07(金) 21:07:44.330030デフォルトの名無しさん
2011/10/08(土) 03:51:46.56chopもあるよ
0031デフォルトの名無しさん
2011/10/08(土) 10:43:49.08実際に使われている用法がどう、という話ではない
メソッドの定義と記憶法の話
「chompは文字列末尾に改行があれば取り除く」と覚えていた場合、5分で>>22はまず出てこない
これは明らかに「String#chompは引数文字列(がなければ改行)を末尾から取り除く」と記憶していたということだろう
そして、たぶん、そのほんのちょっとの手間で大幅に融通がきく
String#subと正規表現使うほうが汎用的でなおかつ生まれて初めて見るchompの引数つき動作なんかより一般に一発で理解されるんじゃねーかとかいう話は
めんどくさい比較になるので今回はしないw
0032デフォルトの名無しさん
2011/10/08(土) 10:53:45.65いわゆる chomp の動作にするためだけにすっごい頑張った形跡がありありと見える
引数なしの時に $/ が関わっているということを知ってる人がどれだけいるのやら
0033デフォルトの名無しさん
2011/10/08(土) 11:13:19.550034デフォルトの名無しさん
2011/10/08(土) 11:41:58.50You have requested to uninstall the gem:
rake-0.8.7
RedCloth-4.2.8 depends on [rake (~> 0.8.7)]
jk-ferret-0.11.8.3 depends on [rake (>= 0)]
rack-1.3.4 depends on [rake (>= 0)]
rack-mount-0.8.3 depends on [rake (>= 0)]
railties-3.1.1 depends on [rake (>= 0.8.7)]
sprockets-2.0.2 depends on [rake (>= 0)]
thor-0.14.6 depends on [rake (>= 0.8)]
treetop-1.4.10 depends on [rake (>= 0)]
といわれます。
インストールされているのはrake (0.9.2, 0.8.7, 0.8.3)なので、
RedCloth等の依存を0.9.2にしたいのですが、その方法を教えてください。
gem updateを試したのですが、変化ありませんでした。
ちなみに(~> 0.8.7)とか(>= 0.8)の意味は?必要とされるバージョンだと思っているのですが?
環境は
- RUBYGEMS VERSION: 1.8.11
- RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
0035デフォルトの名無しさん
2011/10/08(土) 12:28:05.76バージョン番号さえ書き換えれば動くということがわかっているのならredcloth.gemspecのバージョン番号を書き換えればいい
でもたぶん動かないと思う
0036デフォルトの名無しさん
2011/10/08(土) 12:33:48.49依存してるのなら残しておいたらいいじゃまいか
>= 0.8.7は0.8.7以上
~> 0.8.7は0.8.7以上0.9未満
0037デフォルトの名無しさん
2011/10/11(火) 09:47:48.57print "こんにちは世界!"
にしたとして、これを実行するにはどうすればよいのでしょうか?
とりあえずrbをC:\Ruby192\bin\Ruby.exeに関連付けて実行すると
一瞬だけcmd.exeが立ちあがって消えてしまいます。
とりあえずbatを作って、そこに
ruby test.rb
pause
と書いて、これを実行するとcmd.exeは立ち上がるのですが
test.rbがuft-8だと文字化けしていて、Shift-JISだとエラー文がでます。
エラー文の方が対応できると思い表示された
rb:1: invalid multbyte char (US-ASCII) これから検索して1行目に
# -*- coding: utf-8 -*- を挿入すると今度は
rb2: invalid multbyte char (UFT-8)
と出てきて、よしそれならと文字コードをUFT-8に変更してみたのですが
やっぱり文字化けしています。
質問内容は1段落目になります。win7を使っています。
どうかよろしくお願いします。
0038デフォルトの名無しさん
2011/10/11(火) 10:55:42.94まず、どうでもいいレベルだが、Rubyでは文字列の出力はprintよりはputsを使う
出力末尾の改行を精密に制御しなければならない場合にのみ、printを使う
(だから、Rubyユーザーはprintがあるとその文字列の改行の処遇に注目する)
WindowsでRuby1.9.2を使ってるようなので、コマンドプロンプトへ出力される日本語文字列のEncodingはWindows-31Jでなければならない
まあ、Shift_JIS名義でも困ることは少ないんだけど(ないわけではない)
スクリプトファイルに記述される日本語そのものは、マジックコメントと合致さえしていればなんでもよい
# -*- coding: Windows-31J -*- とマジックコメントして日本語を Windows-31J で書こうが、
# -*- coding: Shift_JIS -*- とマジックコメントして日本語を Shift_JIS の範囲だけで書こうが、
# -*- coding: utf-8 -*- とマジックコメントして日本語を UTF-8 で書こうが、実行に問題はない
ということで、必要なのは、出力する文字列オブジェクト(Stringオブジェクト)のEncodingをWindows-31Jに変換する手段
これには String クラスの encode メソッドを使う
# -*- coding: utf-8 -*-
puts 'こんにちは世界!'.encode('Windows-31J')
んで、ダブルクリックしても黒い画面が一瞬出るだけ問題は結構根深いんだけど、
ふつうは、コマンドプロンプトを開いておいて、ruby aaa.rb と打ち込んで実行して、次回からは↑キーで履歴呼び出してそのままEnterしたりする
実行のたびにマウス持って aaa.rb をダブルクリックなんて普通はしない
0039デフォルトの名無しさん
2011/10/11(火) 11:03:35.880040デフォルトの名無しさん
2011/10/11(火) 11:13:40.000041デフォルトの名無しさん
2011/10/11(火) 11:21:25.710042デフォルトの名無しさん
2011/10/11(火) 11:23:39.00http://www.nicovideo.jp/watch/sm15813976
0043デフォルトの名無しさん
2011/10/11(火) 11:25:52.900044デフォルトの名無しさん
2011/10/11(火) 12:23:18.93文字コードのそれぞれの対応文字も理解していないと厳しいのですね。
なぜかUTF-8では殆どの日本語が使えるイメージでしたが
'.encode('Windows-31J')をしないと駄目という事で、なるべく日本語は使わない方向で頑張ってみます。
また、UTF-8でもアルファベットと半角記号だけできちんと処理できない場合があったので
おとなしくShift-JISを使っていこうと思います。
ただ、これでないと駄目っていう文字コードが無い事をしれて良かったです。
ゆっくりになりますが、少しずつ文字コードを学んでいきたいと思います。
ご丁寧にありがとうございました。
0045デフォルトの名無しさん
2011/10/11(火) 12:31:19.78ruby1.9.2(+windows)での使用感などの情報がまとまってるとこ知りませんか
0046デフォルトの名無しさん
2011/10/11(火) 12:33:41.89ファイルが「Shift_JISで保存」されるならマジックコメントはWindows-31Jで、コマンドプロンプト出力時の変換は不要
ファイルが「UTF-8で保存」されるならマジックコメントはUTF-8で、コマンドプロンプト出力時の変換は全ての文字列に対して .encode('Windows-31J')
いちいち .encode('Windows-31J') って書くのめんどくさい場合はファイルの保存自体をWindows-31J(一般的なエディタではShift_JIS)にしておくのが常道
めんどくさくない変換には別な方法もあるけど、ぶっちゃけ理解を先伸ばしにして負債になるだけなので今はおすすめしない
0047デフォルトの名無しさん
2011/10/11(火) 12:44:37.11わざわざありがとうございます。そのようにしていこうと思います。
0048デフォルトの名無しさん
2011/10/11(火) 12:52:25.050049デフォルトの名無しさん
2011/10/11(火) 13:24:48.87nanocとかには興味はあるんだけど、日本語リソースは見たことがないな
自分で使うしかあるまい
0050デフォルトの名無しさん
2011/10/11(火) 15:34:51.87すべてcp932で書いてるんですが
WindowsでRubyのお仕事してる人はどうしてるんでしょうか?
コマンドプロンプトでUTF-8の入出力するのは面倒そうだなぁ
使ったこと無いけど
EmacsとかVimとかEclipseとかだと大丈夫なんでしょうか
0051デフォルトの名無しさん
2011/10/11(火) 16:52:04.740052デフォルトの名無しさん
2011/10/11(火) 17:13:00.24個人ブログで数件だけですねnanoc
Getting Startedしかやってないけどよさげではある
1.9.2だとなぜかcompile遅いのが気になるけど
他のドキュメント読みつつやってみます
0053デフォルトの名無しさん
2011/10/11(火) 17:27:46.80波ダッシュとかあるしねえ
0054デフォルトの名無しさん
2011/10/11(火) 21:07:34.00これでwindowsでもおkじゃん
0055デフォルトの名無しさん
2011/10/11(火) 22:27:30.85とでるんですが、どういう意味でしょうか?
0056デフォルトの名無しさん
2011/10/11(火) 22:37:27.32StringやIOには定義されてるので
"abc\ndef\nghi".each_line{|line| puts line }
とか
open(FILENAME){|f|
f.each_line{|line| ... }
}
ならOK
0057デフォルトの名無しさん
2011/10/11(火) 22:38:07.73Arrayには each_lineメソッドが定義されてません
(にもかかわらずArrayオブジェクトのeach_lineメソッドを呼び出そうとしていますエラー)
Array.new.each_line や [].each_line
などとすれば同じエラーが出ます
エラーの出た行にある hogehoge.each_line みたいな記述があり
その hogehoge にArrayが入っています
hogehogeの中身がどこからやってきたのかチェックしましょう
0058デフォルトの名無しさん
2011/10/11(火) 22:52:35.94ありがとうございます
では配列にeach_line的なこと(C#のforeach?)をするにはどうするんでしょう?
コピペしたソースが
header_list.each do |header|
ってなってたんですが、配列にメソッド追加とかできるんですかね?Rubyって
0059デフォルトの名無しさん
2011/10/11(火) 23:08:04.37include WEBrick
req = HTTPRequest.new(@config)
req.parse(sock)<=====================ここ
ははは、お手上げです
0060デフォルトの名無しさん
2011/10/11(火) 23:10:54.26帰れ
0061デフォルトの名無しさん
2011/10/11(火) 23:51:44.18@header = ....
とインスタンス変数?に代入されてて、
その関数から戻ったら @headerがnil になってるんですが、原因として何が考えられますか?
0062デフォルトの名無しさん
2011/10/12(水) 00:00:02.480063デフォルトの名無しさん
2011/10/12(水) 00:25:05.55=>
0064デフォルトの名無しさん
2011/10/12(水) 00:34:38.140065デフォルトの名無しさん
2011/10/12(水) 01:55:23.550067デフォルトの名無しさん
2011/10/12(水) 05:37:23.01知らんよ
そう表現した人に直接聞け
素の文法レベルならともかく、第三者ライブラリ挟んだ時点で直感的もなんもないと思うけどな
0068uy
2011/10/12(水) 06:26:41.63変数に$ついてる言語触ってるって事だよね
いちいちSHIFT+4キーおして $ 打ちまくってる感触はどう?",
"これ ; デリミタっていうんだけどさ、これをつけなきゃエラーになるような
そんな言語使ってる奴ってどうみてもゴミだと思うんだけど
もしかして「;」これ打ち忘れてコンパイルエラー出すのが楽しいの?
そうか、二度と話かけんなよ",
0069デフォルトの名無しさん
2011/10/12(水) 09:33:21.34undefined method `Pathname' for main:Object (NoMethodError)
解決方法を教えてください。
OSはWinXPsp3
rubyバージョンはruby 1.8.4 (2005-12-24) [i386-mingw32]
0070デフォルトの名無しさん
2011/10/12(水) 09:36:04.200071デフォルトの名無しさん
2011/10/12(水) 10:07:12.94require 'pathname'
0072デフォルトの名無しさん
2011/10/12(水) 10:14:41.59これって釣り?なんかバージョンがすげーピンポイントなんだけど
釣りじゃないならPathnameをPathname.newに書き換えるか
rubyのバージョンを上げる
0073デフォルトの名無しさん
2011/10/12(水) 14:25:20.58の%r!と末尾の!の意味がわかりません
教えてください
0074デフォルトの名無しさん
2011/10/12(水) 14:59:31.71http://rubyforge.org/frs/?group_id=3959
0075デフォルトの名無しさん
2011/10/12(水) 15:11:43.18これ検索しにくいんだよな
正規表現リテラルのパーセント記法と呼ぶ
ttp://doc.ruby-lang.org/ja/1.9.2/doc/spec=2fliteral.html#percent
0076デフォルトの名無しさん
2011/10/12(水) 15:42:39.24記号関係はここから探すと見つかることがあるよ
Rubyで使われる記号の意味 - Rubyリファレンスマニュアル
http://www.ruby-lang.org/ja/old-man/html/Ruby_A4C7BBC8A4EFA4ECA4EBB5ADB9E6A4CEB0D5CCA3.html
0077デフォルトの名無しさん
2011/10/12(水) 16:25:40.18ありがとうございました
>>74
どこに入れればいいんでしょう?
表示されませんでしたorz
0078デフォルトの名無しさん
2011/10/12(水) 16:57:50.45最低が同点のときはすべて求める場合、以下のプログラムでOKでしょうか
もう少しスマートな方法がありますか?
※playersの各要素は、得点を扱うインスタンス変数@scoreを持つオブジェクト
score_min = 1000
result = []
players.each{ |player|
score = player.score
next if score > score_min
if score < score_min
score_min = score
result.clear
end
result.push(player)
}
return result
0079デフォルトの名無しさん
2011/10/12(水) 17:16:38.07そんな面倒なことはrubyでは普通しない
確認はしてないから動くか分からんけど
score_min = players.map{|i| i.score}.min
return players.select{|i| i.score == score_min}
0080デフォルトの名無しさん
2011/10/12(水) 18:15:06.73ファイル右クリック=>プロパティ=>ブロックの解除
かな
0081デフォルトの名無しさん
2011/10/12(水) 18:33:59.66Ruby ではおおむね find_all のほうを使う
select と reject と detect と collect と inject がすべて同じ言語のコレクションオブジェクトにあって
使い分けしなければならないというのは初心者には酷だ
0082デフォルトの名無しさん
2011/10/12(水) 18:36:45.560083デフォルトの名無しさん
2011/10/12(水) 18:48:27.720084デフォルトの名無しさん
2011/10/12(水) 19:02:04.81ん、別にいらないよ
p ['ccc','bb','a'].min_by{|x| x.size} #=> "a"
0085デフォルトの名無しさん
2011/10/12(水) 19:07:49.61mixとmax自体はEnumerable汎用なのに。
0086デフォルトの名無しさん
2011/10/12(水) 19:11:21.17たぶん↓みたいにも出来る
players.group_by{|i| i.score}.min.last
0087デフォルトの名無しさん
2011/10/12(水) 19:16:47.23group_by{|i| i.score} の返す値は i.score がキーの Hash だと思うんだけど、
そのばあいの min ってどういう挙動になるの?
008887
2011/10/12(水) 19:23:48.66実質的には i.score 最小のものが選ばれる、ということかな。
0089デフォルトの名無しさん
2011/10/12(水) 19:28:27.41気づいたみたいだけど、単にキーと値の配列で比較されるはず
0090デフォルトの名無しさん
2011/10/12(水) 19:30:05.10{'k1' => 'v1'}.each{|e| p e} は ['k1', 'v1'] を表示するので、Hash の min はこの要素2の配列に対して <=> を試した結果だね
009187
2011/10/12(水) 19:38:33.100092デフォルトの名無しさん
2011/10/12(水) 20:47:23.52ありがとうございます、見れました
009378
2011/10/12(水) 23:19:00.56group_byはおもしろいと思いました
最近のバージョンで搭載されたヤツですね
直感的にはselectかfind_allを使うほうがわかりやすいのかな
0094uy
2011/10/13(木) 08:40:59.38の in ってさ、必要だったの?
for 0..3 じゃだめだったの?
これrubyらしくかくならこうじゃn
for 0..3 do | i |
それとも今後
for i or 0..3
とか
for i and 0..3
とかでてくるわけなの?
0095デフォルトの名無しさん
2011/10/13(木) 13:30:08.68これがRubyらしいとか笑えるw
0096デフォルトの名無しさん
2011/10/13(木) 14:00:48.600097デフォルトの名無しさん
2011/10/13(木) 14:10:38.870098デフォルトの名無しさん
2011/10/13(木) 19:15:12.58(0 ... 3).each do |i|
でいいだろ
0099デフォルトの名無しさん
2011/10/13(木) 23:20:09.500101デフォルトの名無しさん
2011/10/14(金) 00:00:27.730102デフォルトの名無しさん
2011/10/14(金) 03:51:34.120103デフォルトの名無しさん
2011/10/14(金) 03:58:52.13たぶんgemのライブラリに入ってるやつだと思うんだけど
基本的には、テキストファイルとしてそのまま人力で読む
MarkDown形式と呼ばれる記述法で、記号類は適度に読んだり読まなかったり
gemのインストールでドキュメントのインストールを有効にしている場合はdoc/というサブディレクトリが作られているはずなので、
その中にreadme.mdをrdocとかyardとかで変換した結果のreadme.htmlがあるはずだからそれをWebブラウザで表示させてもいい
0104デフォルトの名無しさん
2011/10/14(金) 13:45:29.42RDoc?の適切な書き方の例はないものでしょうか?
検索してみたんですが、各人好き勝手というか、これといった規則がないようで参考にならず
せめて引数と戻り値ぐらいはJavadocのようにカッチリ書いておきたいのですが
…Netbeans上でRubyスクリプトを書いてますが
補完時にRDocも表示してくれるものの、レイアウトが整っておらず読みづらくて便利さも半減で
おそらく規則に従って書けば、と思うものの、その規則・書き方の例が見つからず…
それとも今は yard とやらで書くほうがトレンドなんですかね?
0105デフォルトの名無しさん
2011/10/14(金) 14:14:51.33ttp://developers.slashdot.jp/story/11/10/13/0224245/
Google+ で Rob Pike 氏が語ったところによると、C 言語の開発者、K&R の R であるところの Dennis Ritchie 博士が亡くなられた。
70 歳 (Rob Pike 氏による Google+ への投稿) 。
長らく闘病中だったとのことで、先週末に自宅で息を引き取ったそうだ。
0106デフォルトの名無しさん
2011/10/14(金) 14:19:56.82何のために分かれてるんだ
0107デフォルトの名無しさん
2011/10/15(土) 00:25:57.78PHPのマニュアルみたいにサンプル付きで書かれていればわかりやすいのですが
Rubyで逆引きサンプル本みたいなのございませんか?
0108デフォルトの名無しさん
2011/10/15(土) 00:28:02.680109デフォルトの名無しさん
2011/10/15(土) 00:46:04.82初心者向け記述をなくすことで効率上げてるんだけど、初心者向け記述がないので初心者は読めない
プログラミング言語マニュアルとして正しい方向性のひとつではあるが
0110デフォルトの名無しさん
2011/10/15(土) 11:04:19.80netstatコマンドのような情報を取ってくる事ができるとベストなのですが
いい方法はありますでしょうか?
0111デフォルトの名無しさん
2011/10/15(土) 11:24:44.560112110
2011/10/15(土) 12:12:30.48クロスプラットフォームなライブラリがあったらなぁと思ったのですが
やっぱ無いのかな
0113デフォルトの名無しさん
2011/10/15(土) 12:58:02.17https://github.com/agoddard/ruby-netstat
0114110
2011/10/15(土) 19:15:29.73自分で適当にごまかすことにしました。
0115デフォルトの名無しさん
2011/10/15(土) 23:27:35.98for(var i =10; i>0; i--)に相当する書き方を伝授してください
0116デフォルトの名無しさん
2011/10/15(土) 23:43:05.6510.downto(1){|n| puts n }
(10...0).eachのように書けたらしっくりきそうだけど
0117デフォルトの名無しさん
2011/10/16(日) 00:25:30.00何でforeachとforを実装してくれなかったんでしょうか
0118デフォルトの名無しさん
2011/10/16(日) 00:31:05.38print i*2, "\n"
end
0119デフォルトの名無しさん
2011/10/16(日) 00:37:17.38資料を確認したりirbで動かしたりしてみないと書けない。
0120デフォルトの名無しさん
2011/10/16(日) 00:39:45.020121デフォルトの名無しさん
2011/10/16(日) 04:27:13.19いや、いわゆる従来のforやforeachも充分に独特すぎて難しいと思うぞ(特にfor)
Rubyの場合、枚挙はオブジェクト単位で考える
配列やHashなどの複数データのカタマリがあったのなら、それを全部順に取り出す場合、
arr.each do |e|
puts e
end
のように書く
そりゃまあ確かに、0から配列サイズsizeまでの整数を考えて、
arr[0]見てインクリメントさせてarr[1]見てインクリメントさせてarr[2]見てインクリメントさせてarr[size]までやるという考え方もあるが、
((xを0からsizeまで1ずつ増やしてarr[x]でアクセスできるようにするなんらかの機構)){
puts arr[x]
}
配列やHashなどが持つeachメソッドに枚挙機能が必ずついているRubyではそんな二重に手の込んだ面倒なことはしない
eachに聞けばそれで済むからだ
枚挙するデータのカタマリが存在せず、単になにかを10回繰り返したいような場合は
10.times do |x|
puts x
end
とか
0.upto(10) do |x|
puts x
end
とか書く
0122デフォルトの名無しさん
2011/10/16(日) 04:29:16.850123デフォルトの名無しさん
2011/10/16(日) 04:34:37.100124デフォルトの名無しさん
2011/10/16(日) 04:35:25.10横レスだが、iterateを枚挙でenumurateを列挙と訳すのは普通じゃないのかと....
じゃあ>>122はiterateを「自分の言葉」でどう訳す?
# 予想されるレス:iterateはイテレート、馬鹿じゃねーのww
0125デフォルトの名無しさん
2011/10/16(日) 06:06:51.780126デフォルトの名無しさん
2011/10/16(日) 06:20:02.44& > < "だけならunescapseHTMLでできたが
0127デフォルトの名無しさん
2011/10/16(日) 06:26:43.69&times;ね
0128デフォルトの名無しさん
2011/10/16(日) 07:28:25.56puts Nokogiri::HTML.parse('×').inner_text
×
0129デフォルトの名無しさん
2011/10/16(日) 07:40:04.80nokogiriでできたのか
open-uriしか使ったこと無かったサンクス
0130デフォルトの名無しさん
2011/10/16(日) 09:31:56.95誰も使ってない・書いてないの?
いくらなんでも「○○のソースが参考になる」ぐらいのアドバイスは貰えるかしらと期待したのに
Rubyはドキュメント不足が問題視されてたようですが、遠因がここにもありそうですね
ドキュメントを書かない人ばかりでコミュニティが形成されてるから、関連ツールを使ったことがなく、話題を振っても分からないので無視されるんでしょうか?
この手のフォーマットなんて、「これに従って書いといてね」ぐらいで済む話なのに、それすら無いとは…
こういうところの整備・ルール作りは、地味だけどボディブローのようにじわじわ効いてくるのに
所詮Rubyは、
・使い捨てスクリプトを書くのが関の山
・大規模開発では実用にならない
・玩具レベル、趣味で使う言語
なのですかね…
まあ、そういうのも嫌いじゃないけど…
013148
2011/10/16(日) 09:49:25.390132デフォルトの名無しさん
2011/10/16(日) 09:52:05.77>結局、RDocの書き方については何のレスも貰えず
そんなものがあったら代替議論なんて出ずにRDocが今も使われていただろうね
なかったからこそ、プログラマブルなドキュメントとしてのRDocは終焉を迎えている
あと、レスが無かったのは自分で答書いてるからに過ぎない
0133デフォルトの名無しさん
2011/10/16(日) 09:53:04.93開発するだけなら使えるよ。その後はいろいろ地獄だけど。
0134デフォルトの名無しさん
2011/10/16(日) 09:56:22.42うむ
>>104書いておきながらまさかそれで止めるとは思わなんだ
0135デフォルトの名無しさん
2011/10/16(日) 09:56:30.88NetBeans上でそれっぽく表示されるRDocの書き方を色々試した結果を一応書いときます。下のような感じ
# メソッドの説明文
#
# == Args:
# x,y:: 座標値
# == Returns:
# trueならヒット,falseならヒットしてない
def check_atari(x, y)
とにかく色々な書き方を試したけど、「#」と「==」の間には1つ空白を入れないと反映されない
あと、「::」の前は1つも空白をいれちゃダメで、「::」の後ろには1つ空白を入れないとダメ。インデントがおかしくなる
もちろんこの書き方が正しいかどうかは分からない。補完時にそれっぽく表示されたのはこういう書き方だった、というだけの話。Netbeans特有の書き方なのかもしれない
やはり正解というか、本来の書き方・規定・フォーマットが知りたい。でも、存在してないようですね…Rubyはフリーダム過ぎる
0136デフォルトの名無しさん
2011/10/16(日) 10:03:00.42yardがトレンドなら「そうだよ。yard使えや」と一言レスつけてくれれば済む話じゃないですか…
誰も書かない=誰も知らないし分からないのだな、としか捉えようがないですよ…
でもまあ何にせよ、RDocだけじゃ厳しいという共通認識だったのですね
納得できました
あとは…Netbeans上でyardと連携できるかどうかを今後調べてみます
助言ありがとうございます
0137デフォルトの名無しさん
2011/10/16(日) 10:05:19.34実質上の唯一解であるというだけで、特段勧めるものでもない
おなたが求めるものはおそらくJavaで、それはおそらくJavaにしかない
0138デフォルトの名無しさん
2011/10/16(日) 10:08:25.72連携が当たり前のようにどうこう言われてもわりと困る
0139デフォルトの名無しさん
2011/10/16(日) 10:14:09.01マジレスすると、Rubyドキュメンテーションに標準の規則/規約は無い。
おそらく>>130はJava経験者で(JavaDocのような)明解な指針を期待していると思うけど、
残念ながらRubyコミュニティにそんな空気は無い。(少なくとも自分の知る限りでは....)
とりあえず注釈(annotation)を書けば、それをHTML化して読めるから嬉しいよね、というのがRDoc。
それでも、RDocは必要最低限の文書化に必要な要素は(それなりに)用意されている。
あとはプログラマ自身の文書化に対する意志にゆだねられている、というのがRuby文化。
もしも(JavaDocのような)RDoc注釈規約が必要としているなら、たとえば以下が参考になるかもしれない。
・Ruby × TPJ|高額合算システム(松江市様)
http://www.tpj.co.jp/ruby/case001_01.html
ここからダウンロードできる開発規約の中には、RDoc注釈に関するガイドラインが含まれている。
ただしあくまでこれは参考だ。(個人的には部分的に異論があったりする...)
あとは>>130が責任を持つプロジェクトで、どこまで「文書化を重視」するかにかかっている、と思う
0140デフォルトの名無しさん
2011/10/16(日) 10:22:45.91ありがとうございます
自分も今ちょうどググってて、yardもフルボッコであることを今頃知りました…
Rubyについて Part 36
http://logsoku.com/thread/pc12.2ch.net/tech/1246174168/181-
Rubyという言語の特性を鑑みれば、たしかにこれは整備しづらいですねえ…
納得できたと同時に、皆様のおかげでRubyについてもさらに理解を深めることができたように思えます
面白いというか、興味深い言語だなあ…>Ruby
0141デフォルトの名無しさん
2011/10/16(日) 10:57:15.03このウィンドウタイトルを設定する方法はございませんか?
ttp://www.texcell.co.jp/ruby/winconsole/winconsole.htmlで配布されているライブラリのsetConsoleTitleでできそうな気もしますが
ライブラリを使わないで設定する方法はございませんか?
0142デフォルトの名無しさん
2011/10/16(日) 11:32:05.74そのスレのは2年くらい前の認識で、
それから2年経って今は自力でコメント部分にタグ書いてHTMLマニュアルとしてきれいに出力することまではできてる
あと2年くらい経てばメソッド定義の引数とかから遡ってある程度テンプレートコメントが自動で作成されるようになるかもしれないし、
さらに2年くらい経てば他のプログラムとの連携もどうにかなるかもしれない
どっすか開発参加
0143デフォルトの名無しさん
2011/10/16(日) 14:29:56.77たぶんそのライブラリも同じことしてるんだろうと思うけど
require 'Win32API'
Win32API.new('kernel32','SetConsoleTitle','P','I').call('hogehoge')
で、変えられるみたいですな
でもRubyが終了してもタイトルがそのままになりますね
別のアプリを起動したりして次にタイトルが書き換わるまでは
自分で元に戻す必要があるのかも
require 'Win32API'
Win32API.new('kernel32','SetConsoleTitle','P','I').call('hogehoge')
0144デフォルトの名無しさん
2011/10/16(日) 14:39:09.89module WindowsConsole
module_function
def setConsoleTitle(title)
_SetConsoleTitle = Win32API.new('kernel32','SetConsoleTitle','P','I')
_SetConsoleTitle.call(title)
end
def getConsoleTitle()
_GetConsoleTitle = Win32API.new('kernel32','GetConsoleTitle','PI','I')
buff = "\0"*(32*1024)
_GetConsoleTitle.call(buff,buff.size)
buff.chomp("\0")
end
ORIGINAL_CONSOLE_TITLE = getConsoleTitle
end
END{WindowsConsole.setConsoleTitle(WindowsConsole::ORIGINAL_CONSOLE_TITLE)}
WindowsConsole.setConsoleTitle('こんな感じかな')
sleep 5
0145デフォルトの名無しさん
2011/10/16(日) 15:29:45.71chompは改行コードしか削れないんですね
chomp("\0")じゃ何も起こりませんので
sub(/\0*\z/,'')に変えてください
0146デフォルトの名無しさん
2011/10/16(日) 15:47:45.46>>chompは改行コードしか削れないんですね
嘘を書くな嘘を
0147デフォルトの名無しさん
2011/10/16(日) 16:17:32.24chompは普通は一文字分しか削れないんですね
末尾の32キロバイトほどの\x0に大してchomp("\x0")してたので
ぱっと見でなにも削れてないのかと思ってしまいました
どっちにしろ末尾の \x0 の連続を削りたいのでchompでは駄目なわけですが
rstripだと\x00だけじゃなく空白文字も削れてしまうし
(というかそもそも空白を削るメソッドなので)
やはり置換するしかないのでしょう
るりまの説明で勘違いしてしまった
>self の末尾から rs で指定する改行コードを取り除いた文字列を生成し返します。ただし、rs が "\n" ($/ のデフォルト値) のときは、実行環境によらず "\r", "\r\n", "\n" のすべてを改行コードとみなして取り除きます。
「rs で指定する改行コード」ってので
chompは無引数でしか使ったことがなかったので詳しい動作を解ってなかったよ
せめて「rsで指定する文字列を」って説明ならなぁ
0148デフォルトの名無しさん
2011/10/16(日) 16:38:59.86引数で指定さえすれば何文字でも削れる
ただし、「1回」しか削らない
末尾に連続してる不定個の文字を削りたいなら、やっぱsubするしかない
0149デフォルトの名無しさん
2011/10/16(日) 16:39:31.23横からすまん
コード試したけど動かなかった
1.9.2
>>143
横からすまん
俺の環境では処理が終了したらタイトルも自動的に戻った
0150デフォルトの名無しさん
2011/10/16(日) 16:44:28.86でいいんでね
0151デフォルトの名無しさん
2011/10/16(日) 17:09:59.35それだ!
WindowsAPIなんて使わなくてもよかったんだな
とほほ
>>149
1.9.2だと文字コードエラーか
先頭にマジックコメント
#coding:cp932
とかを追加すると動くはず
0152デフォルトの名無しさん
2011/10/16(日) 17:16:07.24とcp932って違いますか?
0153uy
2011/10/16(日) 17:28:45.85ハァ????????????wwwwww
お前Rubyのyieldすら理解していないの????????????????????????????????????????????
> for 0..3 do | i |
これを丁寧に書くと
for(0..3) do | i |
end
こうなるわけなんだけど 読める? ねえ これ読める????ヨメルノー??????wwwwwwはああああ????
何でこの程度で話しかけてくるんだろ
>>98
>(0 ... 3).each do |i|
それはない
Rubyつかってて誰もが経験したストレスがここにあるよ
0...3.each do |i|
これで動かないという・・・
いっそ
0..3 each do |i|
こうだと思う
0154デフォルトの名無しさん
2011/10/16(日) 17:29:18.72> ENC_ALIAS("CP932", "Windows-31J")
同じ。
0155デフォルトの名無しさん
2011/10/16(日) 17:35:21.45now = DateTime.now # tより古い日時
p t - now
tとnowを指定したフォーマットで表示する方法と
tとnowの引き算の結果をタイムスタンプとして表示する方法を教えてください
0156デフォルトの名無しさん
2011/10/16(日) 18:01:49.52>>155
DateTime#strftime
0157デフォルトの名無しさん
2011/10/16(日) 18:21:17.55長さ不定の年や月をどう勘定するのかよくわからんが。
0158デフォルトの名無しさん
2011/10/16(日) 18:30:57.56うまくやってるライブラリもあまり知らない
ActiveSupportにはあったはずなんだが
0159デフォルトの名無しさん
2011/10/16(日) 18:32:47.83while 1
sleep 1
end
ループ中にsleep 1を入れており、ctrl+zで終了すると
C:/rubytest/test243.rb:3:in `sleep': Interrupt
from C:/rubytest/test243.rb:20:3:in `<main>'
ってエラーになりました
ctrl+zを押して終了させたときにエラーが出ないようにする方法はございますか?
0160149
2011/10/16(日) 18:36:43.45'title hello'これすげえ
でも実行したら管理者: helloって表示された
Win32APIからだと管理者が表示されなかったから使い分けるのがいいのかな?
>>151
追加したら動いた
素晴らしい
0161デフォルトの名無しさん
2011/10/16(日) 18:48:25.98それエラーじゃないよ
0162デフォルトの名無しさん
2011/10/16(日) 18:51:03.25>> (1.year / 1.day).days
=> 365.25 days
その端数をキープするなら 365.2422 くらいまで追求しろ、と思ってしまう。
0163デフォルトの名無しさん
2011/10/16(日) 18:52:00.84これがでないようにするにはどうしたらよいですか?
0164デフォルトの名無しさん
2011/10/16(日) 19:08:52.180165デフォルトの名無しさん
2011/10/16(日) 19:11:21.79>>159
begin
while 1; sleep 1; end
rescue Interrupt => e
$stderr.puts "caught Exception: "
# p e
end
0166デフォルトの名無しさん
2011/10/16(日) 20:21:27.64すごいありがとうがいます!
0167デフォルトの名無しさん
2011/10/16(日) 20:32:11.85どんな利点があるんですか?
0168デフォルトの名無しさん
2011/10/16(日) 20:44:59.11明確な利点はないので、とりあえず気持ちいいとかわかりやすいか直感的とか言っとけばよい。
0169デフォルトの名無しさん
2011/10/16(日) 21:01:28.58やりたいこととしてはJavaScriptのMath.floorで小数点を削った値が欲しいので勝手に削ってくれるのは嬉しいのですが
Rubyのバージョンによってこの挙動が違ったりしますか?
0170デフォルトの名無しさん
2011/10/16(日) 21:08:57.52整数オブジェクトのメソッドは整数を返すという以上の深い意味はないです
0171デフォルトの名無しさん
2011/10/16(日) 21:09:52.330172デフォルトの名無しさん
2011/10/16(日) 21:13:20.24直感的ってそれだけの理由だったのか・・・orz
他言語触ってた俺からしたら気持ち悪さ満点やわ
0173デフォルトの名無しさん
2011/10/16(日) 21:20:26.40while 1
sleep 0.1
system "cls"
end
これで定期的に画面をクリアしているのですが画面がちらつくことがあります
ちらつかないようにする事は難しいですか?
0174デフォルトの名無しさん
2011/10/16(日) 21:22:10.65一般的にめんどくさくなるけどcursesを使って画面制御するという方法もある
0175デフォルトの名無しさん
2011/10/16(日) 21:37:30.470176デフォルトの名無しさん
2011/10/16(日) 21:39:16.43一行だけクリアすればいいのなら
loop { print Time.now; sleep 1; print "\r" }
とかできるけど、数行とかそれ以上のことがしたいなら
Ruby向けのライブラリを探すかWindowsのコンソール用のAPIを
使うはめになるんじゃないだろうか
0177デフォルトの名無しさん
2011/10/16(日) 21:50:45.20\rって改行なのにこれで消えるなんて不思議ですね
>>174さんと175さんのも知識として調べてみます
0178デフォルトの名無しさん
2011/10/16(日) 22:07:00.87Smalltalkで |a| は(Rubyにはない)テンポラリ変数宣言だから関係ないでしょ。
ブロック引数も [:a | a+3](Rubyの { |a| a+3 } に相当) みたいに縦棒は使うけどかなり違うし。
それとも、MatzがSmalltalkをよく知らずに勘違いして猿まねしたとか?
0179デフォルトの名無しさん
2011/10/16(日) 22:17:13.030180デフォルトの名無しさん
2011/10/16(日) 22:18:18.850181デフォルトの名無しさん
2011/10/16(日) 23:00:22.40LFは、改行(タイプライターの紙ロールを1行分送る)
なので、行を改めて左端にタイプ位置を持っていくという意味にするには
LFのみやCRのみよりDOS式のCR+LFが一番自然なんだよな…
0182デフォルトの名無しさん
2011/10/16(日) 23:24:12.88LFはLinuxの改行で
CR+LFはWinの改行を表すって覚えてました
CRがそういう機能を持っていたのはためになりました
system("cls")とsystem("clear")を使い分けずともCRで消せばクロスプラットフォームにコードが書け便利だと思えました
0183デフォルトの名無しさん
2011/10/16(日) 23:48:10.27だから、CRで行頭に戻るのはDOS(windows)だけだ
残念ながらクロスプラットフォームにはならない
CRがそういう”機能”を持っているんではなく
本来はそういう意味というだけ
0184デフォルトの名無しさん
2011/10/16(日) 23:53:17.24そんなんでいいのか
Signal.trap(:INT){$stderr.puts "Interrupt!";exit(1)}
sleep 10
などと
シグナルトラップしないと駄目だと思ってた
0185デフォルトの名無しさん
2011/10/16(日) 23:58:54.94CR キャリッジリターン(carriage return) 行頭に復帰
LF ラインフィード(line feed) 行送り
だからなぁ
> CRで行頭に戻るのはDOS(windows)だけだ
そうだったのか
UNIX系だと
10.downto(0) do |i|
print "\r%02d"%i
sleep 1
end
puts
とかできないの?
0186デフォルトの名無しさん
2011/10/17(月) 00:02:30.7010.downto(0) do |i|
print "\b\b%02d"%i
sleep 1
end
puts
0187デフォルトの名無しさん
2011/10/17(月) 00:06:58.35散々説明されてるけどCRは行頭に戻るの意味。消すって意味じゃないよ
>>176はTime.nowの返り値で上書きしてるだけ
消すなら空白を出力するなど工夫が必要になる
>>185
Linuxでもできるよ
0188デフォルトの名無しさん
2011/10/17(月) 00:46:03.330189デフォルトの名無しさん
2011/10/17(月) 00:48:48.38画面のクリア|cursesの基本的な関数
http://www.fireproject.jp/feature/c-language/curses/basic.html
0190デフォルトの名無しさん
2011/10/17(月) 00:55:14.220191デフォルトの名無しさん
2011/10/17(月) 01:10:33.35の画面を制御するための curses ライブラリ(以下、C curses)を利用して、端
末に依存しない形式でテキストユーザインタフェースを構築するためのライブ
ラリです。
http://doc.okkez.net/static/192/library/curses.html
0192デフォルトの名無しさん
2011/10/17(月) 01:45:47.48Windowsなんか使ってる馬鹿のことなんて考慮する必要はない
0193デフォルトの名無しさん
2011/10/17(月) 07:39:56.640194デフォルトの名無しさん
2011/10/17(月) 17:15:00.36>マジレスすると、Rubyドキュメンテーションに標準の規則/規約は無い。
>おそらく>>130はJava経験者で(JavaDocのような)明解な指針を期待していると思うけど、
>残念ながらRubyコミュニティにそんな空気は無い。(少なくとも自分の知る限りでは....)
えー?本気で言ってる?
昔はいざ知らず、今はRubyでもドキュメントをきちんと書いてる
プロジェクトのほうが多いよ。有名プロジェクトは特にね。
RDocの書き方がわからない人は、とりいそぎ
Ruby on Railsのソースを見ればいいんじゃないかな。
丁寧にドキュメントが書かれてあるよ。
0195デフォルトの名無しさん
2011/10/17(月) 18:01:03.96君がJavaやってないのはよくわかった
0196デフォルトの名無しさん
2011/10/17(月) 18:12:18.09特にプロパティの部分がつらい
その代わり、ちゃんとしたドキュメントを提供してくれるわけだが
0197デフォルトの名無しさん
2011/10/17(月) 18:20:11.95どうせJavaのDocument書くコメントの略だろくらいにしか思ってないんだろうけど
0198デフォルトの名無しさん
2011/10/17(月) 18:56:17.80読むやつなんて少数派だろうけど
0199デフォルトの名無しさん
2011/10/17(月) 19:39:14.310200デフォルトの名無しさん
2011/10/17(月) 20:08:28.32だから、メソッドやクラスの使い方を文章で書いてあることを求めてるんじゃないんだよ
0201デフォルトの名無しさん
2011/10/17(月) 20:19:40.75ある種の病気だよ
0202デフォルトの名無しさん
2011/10/17(月) 20:23:36.590203デフォルトの名無しさん
2011/10/17(月) 22:49:08.84この正規表現名は何を表しているのでしょうか?
0204デフォルトの名無しさん
2011/10/17(月) 22:59:15.76sjis?
0205デフォルトの名無しさん
2011/10/17(月) 23:07:31.47正規表現はhttp://webcache.googleusercontent.com/search?q=cache:EhT76SyFDiIJ:maruo.dyndns.org:81/hidesoft/hidesoft_2/x25803.html+encodingshiftjis&cd=1&hl=ja&ct=clnk&gl=jp&inlang=jaでみつけました
0206デフォルトの名無しさん
2011/10/17(月) 23:51:46.01マッチするんだっけ?
0207デフォルトの名無しさん
2011/10/18(火) 01:10:53.40文字集合の中で八進数または十六進数表現の連続は、多バイト符合で表現された
一個の文字と解釈される
(例. [\xa1\xa2], [\xa1\xa7-\xa4\xa1])
0208デフォルトの名無しさん
2011/10/19(水) 09:27:50.14ディレクトリ指定をどこにするのがいいんでしょうか? そもそもなにで設定させるべきですか?
0209デフォルトの名無しさん
2011/10/19(水) 09:37:31.71現状、特にはないので、ユーザーの指定がなければ動作しないようにするべき(またはTEMPに作っておく)
ホームやカレントに .ライブラリ名/ とか勝手に掘ってそのままにするライブラリがたまにあるんだけど、超迷惑
>そもそもなにで設定させるべきですか?
メソッド引数でファイルパスを指定
メソッド引数で設定ファイルのファイルパスを指定
またはコマンド引数で上記と同じようなことを制御
のどれか
これまたたまーに、~/.ライブラリ名rc の存在を仮定したり勝手に作ったりするライブラリがあるんだけど、果てしなく迷惑
0210デフォルトの名無しさん
2011/10/19(水) 13:08:28.28ライブラリでどうしても必要なら
Hoge.dir = '/hoge/hoge'
とかクラスのメソッドで指定した場合だけそこに書くようにすればいいんじゃね
設定ファイルを置いたりはアプリケーション側のことだと思うし
0211デフォルトの名無しさん
2011/10/19(水) 14:08:24.01gemのディレクトリにdataディレクトリ作ったら怒られるよねやっぱ
0212デフォルトの名無しさん
2011/10/19(水) 14:21:05.180213uy
2011/10/19(水) 14:24:53.47トップディレクトリにすげー数のゴミフォルダが作られてるのな
a とか b とかだよ c d f temp tmp ttt xxxxdf ggrinjeaftwau3ft4uehugekzvdxgomihasinererwhgbvv
ゴミみたいな奴が作ったライブラリなんだと思う
0214デフォルトの名無しさん
2011/10/19(水) 15:09:10.54そこはパッケージ管理システムの責務ではなくて、個々のライブラリがなんとかする問題じゃないかな
0215uy
2011/10/19(水) 18:31:36.632chに対策されてMechanizeからの書き込みが出来なくなりました
ちょっとあるスレで特定人物のとあるゴミッカス野朗を晒し続けたいのにですが
Mechanizeからの自動書き込みが出来ないとちょっとWin32OLEでIE起動してーとかいうかっこ悪いことになってしまうんですが
書き込めないのは僕だけでしょうか?
みなさんは無事書き込めますか?
考えうる原因は3つありますが面倒なので、まだ試していません
0216デフォルトの名無しさん
2011/10/19(水) 18:37:36.08そらそうよ
0217デフォルトの名無しさん
2011/10/19(水) 18:44:21.52はじめましてマ板、ム板、vipにて、uy( うゆ )というコテハンをやっている者です
13〜18歳のおにゃのこ(新品)にだったら手取り足取りRubyとかlambdaとか、世界の真理についても教えれるけど?
何作りたい? CGI? ゲーム? それともプログラミングだけおぼえたい?
2chでは漏れの事、バカにする奴多いけど、マジで技術高いよ?あと運動も得意です。昼でも、夜でも。
ちなみに両利き、好きなアニメは禁書目録、10万3000冊の技術書を読んでスペルインターセプトできるようになるのが夢
好きな語尾は「 ――だよ? 」 と 「 ――みさかはみさかは 」 です
[email protected]
22♂です
メールまってます
あと、部屋こんなんばっかりなので
こういうの大丈夫な子歓迎
http://www.geocities.jp/c_zelos/soto/heya0.jpg
自分でコスプレしようかなぁ・・・なんて本気で考えてた頃もあったんだけど、女装mixiコミュとかみたら、「やべぇwwwww」って思って
一線は越えない事にした、なのでイベントとかで何でもいいのでコスプレして一緒に周ってくれる人も、すごくすごく募集中です
ここ2年くらい実は、技術高めるべく超研究者モードだったのでイベント関係殆どいってないから今年はいっぱいいきたなぁ(**^^)キミと
スレ汚し、失礼しました
0218uy
2011/10/19(水) 18:45:31.57FOXはゴミッカス野朗ですね
正直イマドキ2chなんてなくても困らないんで別にいいんで
時期がきたら潰しますよ
まあしいていうならニュー速VIPがなくなるのは残念なんですけどね
ああいう場というのはなかなかネット上に出現しないカテゴリーです
けれど解除しないつもりならいたし方ありません
ぼくは2chの敵になるしかありません
0219uy
2011/10/19(水) 18:47:50.68何それ?? 気に入っちゃってんの??
その程度の書き込みに芸術性を見てしまう程なの?
こいつヴィオラすら弾けないんだろうな・・・・・
0220デフォルトの名無しさん
2011/10/19(水) 19:06:37.030221デフォルトの名無しさん
2011/10/19(水) 19:11:47.870222デフォルトの名無しさん
2011/10/19(水) 20:40:24.610223デフォルトの名無しさん
2011/10/19(水) 21:32:38.38おまえみたいなクソのせいでVPS置いてるネットワークごと規制されたりするんだぞ
やめろ
0224デフォルトの名無しさん
2011/10/20(木) 01:40:39.89お願いだから
心の底からお願いだから
0225デフォルトの名無しさん
2011/10/20(木) 06:59:45.090226デフォルトの名無しさん
2011/10/20(木) 07:04:28.060227デフォルトの名無しさん
2011/10/20(木) 09:14:10.24参照しないこと
参照する限りGCの対象にならない
0228デフォルトの名無しさん
2011/10/20(木) 09:18:40.280229sage
2011/10/20(木) 10:57:07.36http://localhost/test.erb?str=hello
Webrickサーバー側で以下メッセージが出て止まってしまい困っているのですが
offline mode: enter name=value pairs on standard input
■test.erbのコード
<%
require "cgi"
cgi = CGI.new
str = cgi["str"]
return str
%>
そもそもこういった事は出来ないのでしょうかアドバイスお願いします
0230uy
2011/10/20(木) 11:55:20.92<%
require "cgi"
ARGV.replace(["str=sine"])
cgi = CGI.new
str = cgi["str"]
%>
<%= str %>
<%= "gomi ha sine" %>
0231デフォルトの名無しさん
2011/10/20(木) 14:55:26.62ARGV << "" # 空文字列を追加
require 'cgi'
cgi = CGI.new
...
でどうでしょうか。
0232uy
2011/10/20(木) 17:32:01.34ハァ?????????
どう考えてもセキュリティホール
>["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","",
"","","","","","","","","","","","","","","","","","","","","","","",
]
0233229
2011/10/20(木) 17:36:57.95ありがとうございます。
試してみましたが、offline modeで止まる事はなくなりました。
ただクエリパラメータとして取得できない状態です。
str = cgi.params["str"]
でも
str = cgi["str"]
でもダメです。
0234uy
2011/10/20(木) 18:04:07.87出来ない事はないはずだが、少しググったところ誰もやっていない
それがやりたいなら普通に.cgiでクエリパラメータは受け取って、erbは出力専用にする
erbは所詮evalらしいから、そのevalの中でCGI.newという動作を
そもそも想定してないんじゃないか?
ただ、自力で自分のURLからパラメータ解釈しようとすれば可能だろう
erbはhtmlメタ出力をするものだと考えたほうが良いと思う
0235デフォルトの名無しさん
2011/10/20(木) 20:21:17.18みたいなデータを正規表現でマッチさせて中身の数字だけを取り出そうとしているのですが
pattern_mesh = Regexp.new("(?:(?:\\()(\\d+\\s\\d+\\s\\d+)(?:\\))\s*){n}","x")
でうまくマッチさせることができません。nはカッコの数
しかし{n}を使わずに(?:(?:\\()(\\d+\\s\\d+\\s\\d+)(?:\\))\s*)を並べるとマッチしてくれるのですが
{n}を使って繰り返す方法を教えて下さい。
お願いします
0236デフォルトの名無しさん
2011/10/20(木) 21:37:08.44/(.){3}/ =~ '0123456789'
を試してみたけど、$1 は '2' になるんだな。
0237デフォルトの名無しさん
2011/10/20(木) 22:14:24.47CGI 関係はばっさりカットして
str = query['str']
>>235
()や空白を削除してからじゃあかんの?
0238デフォルトの名無しさん
2011/10/20(木) 22:35:56.37素敵な回答がついてたでござる
>>229
もはや蛇足だけど.erb側のコード
<%= query %>
<%= meta_vars %>
<%= query['str'] %>
0239238
2011/10/20(木) 22:43:10.910240デフォルトの名無しさん
2011/10/20(木) 23:23:21.73ひょっとしてn じゃなくて#{n}だったとかいう話だろうか?
でもグルーピングを繰り返すと繰り返しマッチした最後の結果しか得られないぞ
ごちゃごちゃした文字列から ひとまず (1 2 3) (2 3 4) (3 4 5) ・・・を抜き出す
ってことならいいだろうけど
s = '(1 2 3) (2 3 4) (3 4 5)'
s.scan(/\((\d+)\s(\d+)\s(\d+)\)/) # => [["1", "2", "3"], ["2", "3", "4"], ["3", "4", "5"]]
0241デフォルトの名無しさん
2011/10/21(金) 13:37:03.52Enumerable#reduceに渡すときに、do - endだと
`reduce': no block given (LocalJumpError)
といったエラーが出て、{}だと実行できることがあります。
これってどういった違いなんでしょう?
0242デフォルトの名無しさん
2011/10/21(金) 14:20:16.09結合強度が違います
メソッド呼び出し括弧を省略したときに影響が出ます
http://doc.ruby-lang.org/ja/1.9.2/doc/spec=2fcall.html#block
0243229
2011/10/21(金) 18:06:01.41str = query['str'] で出来ました!
ありがとうございます。エスケープもするようにします!
0244デフォルトの名無しさん
2011/10/22(土) 01:03:11.90puts (0...n).reduce do|sum, i|
とか書いてたから、ブロックがputsの引数になってしまってたのかも
0245デフォルトの名無しさん
2011/10/22(土) 06:23:03.920246デフォルトの名無しさん
2011/10/22(土) 09:00:12.43現在の接続してる人(見てる人)は何人って表示されますよね。
あれってどうやってつくるんですか?できればサンプルを載せてほしいです
環境はcentos+apache+railsでのサーバーです
0247デフォルトの名無しさん
2011/10/22(土) 09:27:32.35Railsも関係あるかどうか怪しい
いろいろ方法はあるんだが、基本的には、数分に1度程度、全ページに組み込んだJavaScriptで通信をさせるのが簡易
・通信がクライアントから送られているうちはそのページを読んでいるとみなす
・通信がクライアントから送られてこなくなったらそのページから移動した(または、ブラウザウィンドウを閉じた)とみなす
こんな感じ
過去3分のうちにAというページから6回通信があったら、Aというページの現在の閲覧者数は6人ですと表示
過去5分のうちにサイトの全ページから送られてきた通信の総数をリモホでuniqした結果が13だったら、このサイトの現在の滞在者数は13人
あれはそもそもかなり適当で、厳密にカウントする方法というのはない
0248デフォルトの名無しさん
2011/10/22(土) 11:53:08.430249uy
2011/10/22(土) 14:04:58.81>あれはそもそもかなり適当で、厳密にカウントする方法というのはない
ハァ???
お前がWeb技術の何を知ってんの?????
ページクローズ時に何かアクション起こさせればカウント出来るだろ
あとは数十分でタイムアウト
何でその程度でレスが出来るの?
0250デフォルトの名無しさん
2011/10/22(土) 15:17:12.89HTMLにRubyのコードを埋め込んでクライアント側で
Rubyを実行してHTMLを生成するような技術ってないんですか。
0251デフォルトの名無しさん
2011/10/22(土) 15:23:56.42そもそもクライアントでRubyを実行するには、クライアント側の環境にRubyがセットアップされていることが前提になってしまう
0252デフォルトの名無しさん
2011/10/22(土) 15:33:28.07簡単じゃん
0253デフォルトの名無しさん
2011/10/22(土) 15:35:33.540254デフォルトの名無しさん
2011/10/22(土) 15:37:07.700255デフォルトの名無しさん
2011/10/22(土) 15:39:16.18きっと、1つのファイルにRuby実装と、それを使ったコードをまるごと書くんだよ
…重いだろうけどなw
0256デフォルトの名無しさん
2011/10/22(土) 15:42:34.65http://jashkenas.github.com/coffee-script/#scripts
ということもできる。
RubyをJavaScriptで書ける奴がいればきっとなんとかなるね(棒)
0257デフォルトの名無しさん
2011/10/22(土) 15:43:27.260258uy
2011/10/22(土) 18:36:44.79ハァ??????????????
とっくにあるっていう
IronRubyと一緒にリリースされてるだろうカスが ゴミカスが 情弱が
0259uy
2011/10/22(土) 18:41:26.24はあああ???
Ruby実装だけ別ファイルにしてクライアントのキャッシュに入れとくに決まってんだろ
マ ジ で ア レ な の か ?
重いことにはかわりないけれど
1つのファイルにかかなきゃいけないって発想がどこからきたんだ?
JabaSkriputのかわりぬRubyつかおうってながれだってあるのに それすらしないのか??
0260uy
2011/10/22(土) 18:43:55.74はっあああああ???
ググレカス
http://www.moongift.jp/2011/01/20110107/
0261uy
2011/10/22(土) 18:48:16.60なんでたかがDLさせる程度の作業に「セットアップ」なんていう
キリッ!!っとした単語使うの?
こういうなんでもないところで使われると、別のもっと使うべき箇所で混乱の元になるんだけど?
はあ??
>>257
お前もだよ
機械語を生成しない実装を、コンパイラとか呼ばれると情報探そうとしたときにすげー困るんだけど????
っはっぁ???
0262デフォルトの名無しさん
2011/10/22(土) 19:22:15.420263デフォルトの名無しさん
2011/10/22(土) 21:49:40.28つまり、拡張子なしの偽装Rubyプログラムだ。
そう言えば、Rubyで作る人工無能ってあったな。
0264デフォルトの名無しさん
2011/10/23(日) 00:13:08.33homeのユーザーディレクトリの中ではなく、どのユーザーも共通して利用する場合の保存先を教えてください
マクロは手動で動かすのと自動的に動くやつの2種類あります
linuxです
0265264
2011/10/23(日) 00:14:47.9264bit OS(win.unix問わず)にrubyは対応してますか?
0266デフォルトの名無しさん
2011/10/23(日) 00:25:21.53マクロって何を意味している?
定型処理を自動化したスクリプトってことならPATHのどこに置いてもいいけど。
/usr/local/bin とか。
>>265
うちのRubyはこんなのだよ。
ruby 2.0.0dev (2011-10-19 trunk 33483) [x86_64-darwin11.2.0]
0267デフォルトの名無しさん
2011/10/23(日) 00:41:12.210268uy
2011/10/23(日) 21:41:22.44俺は触ったことのないものでもある程度はレスが出来る
CGI.newは普通のオブジェクトnewとは少し違う可能性が高く
eval内で動作させるのは厳しいものと考えた
なので今回のはRuby側がerbの時にCGI.new以外で、クエリパラメータ情報を
どこかにちゃんと保持してるかが問題だった
ちゃんと作られているようで安心した
0269デフォルトの名無しさん
2011/10/23(日) 21:59:16.96得たいのですが簡単な方法があったら教えてください
よろしくお願いします
0270デフォルトの名無しさん
2011/10/23(日) 22:23:06.81あえて一言だけね
上のはWebrickのErbHandlerの問題
0271デフォルトの名無しさん
2011/10/23(日) 23:06:39.37あれはExcelの計算用の値だから、欲しいなら自分で計算するしかない
通常はそれに類するものを必要とすることはないはず
使用法が間違ってる可能性が大なので、そもそも何をしたいかを言うとなんとかなるかも
0272デフォルトの名無しさん
2011/10/23(日) 23:12:35.95Excelでシリアル値意識するといったら時間間隔計算くらいしかねえ
0273デフォルトの名無しさん
2011/10/24(月) 00:11:17.81こういう感じ?
class Time
def serial(float = false)
require 'date'
ret = DateTime.parse(to_s) - DateTime.new(1900, 1, 1) + 1
if float then ret.to_f else ret.to_i end
end
end
p Time.now.serial
0274uy
2011/10/24(月) 01:11:35.82実装上の問題を指摘してんの?
ちゃんと作る気があるならできるとは思うが
面倒な事になるのが分かるから、別に妥協していいんじゃねと思ってる
cgiは.cgiでやれって感じだし
0276デフォルトの名無しさん
2011/10/24(月) 08:53:15.500277デフォルトの名無しさん
2011/10/24(月) 14:33:23.220278デフォルトの名無しさん
2011/10/24(月) 15:57:30.39buff = NKF::nkf("-Sw --number-input", File.open(FILENAME, "rb").read)
のように読んで,buffを使っているのですが
ArgumentError: invalid byte sequence in UTF-8
が出ることがあります.
ファイルの中身をUTF-8として扱いたいだけで,不正な文字があるならその部分は消えてもいいのですが,どうするのがいいですか?
0279デフォルトの名無しさん
2011/10/24(月) 17:10:24.32もっとスマートに書くことはできますか?
ary1 = [1,2,3,4,5,6,7]
ary2 = [1,2,4,5,8,9]
del = []
add = []
ary1.each do |x|
flag = 0
ary2.each do |y|
flag = 1 if x == y
end
del << x if flag == 0
end
ary2.each do |x|
flag = 0
ary1.each do |y|
flag = 1 if x == y
end
add << x if flag == 0
end
puts "deleted:#{del}" #=> deleted:[3, 6, 7]
puts "added:#{add}" #=> added:[8, 9]
0280デフォルトの名無しさん
2011/10/24(月) 17:24:23.23ary2 - ary1
があるよ
0281デフォルトの名無しさん
2011/10/24(月) 17:27:33.100282デフォルトの名無しさん
2011/10/24(月) 17:35:44.63> diff 1,2,3,4,5,6,7 1,2,4,5,8,9
InputObject SideIndicator
----------- -------------
8 =>
9 =>
3 <=
6 <=
7 <=
さっさとArray#diff(arr){|i,s| }実装しろやぁ〜〜〜〜〜〜
0283デフォルトの名無しさん
2011/10/24(月) 18:47:40.750284デフォルトの名無しさん
2011/10/24(月) 20:42:54.44nkfの--number-inputオプションってなんだっけ。
"¥x82¥xA0¥xF8¥x9F¥x82¥xA2¥x82¥xA4¥x82¥xA6¥x82¥xA8".
encode('UTF-8', 'Shift_JIS', invalid: :replace, undef: :replace, replace: '')
=> "あいうえお"
0285デフォルトの名無しさん
2011/10/24(月) 21:28:13.76test unit?
minitest?
rspec?
0286277
2011/10/24(月) 21:35:01.010287デフォルトの名無しさん
2011/10/24(月) 21:47:02.04標準のTimeはUTCと実行環境の地方時しか扱えない。
#utc_offsetでUTCとの秒差が出るので、時差分の秒数を増減して換算する。
タイムゾーン属性は変更できないので、あくまで意味的には元の地方時のまま
になるけど。
0288277
2011/10/25(火) 00:18:28.13やってみます
0289デフォルトの名無しさん
2011/10/25(火) 09:17:27.64みたいなのを戻すらしいです
これをしてないとファイルにHTML実体参照が混じっているときに
あとでHTMLをデコードするとshift-jisの文字コードが混ざって
invalid byte sequence in UTF-8
が出ていたので入れてます
今回はこれじゃなくて普通に変なコードが入っているようなので
ちょっとダサいですが
s = NKF::nkf("-Sw --numchar-input", s)
s.encode("UTF-16BE", :invalid => :replace, :undef => :replace, :replace => '?').encode("UTF-8")
としてよくなりました
0290デフォルトの名無しさん
2011/10/25(火) 09:18:56.04ሴみたいなの
0291デフォルトの名無しさん
2011/10/25(火) 12:13:38.530292デフォルトの名無しさん
2011/10/25(火) 12:34:10.750293デフォルトの名無しさん
2011/10/25(火) 12:42:16.440294デフォルトの名無しさん
2011/10/25(火) 12:46:30.89見やすさという点では、ずっとよかった。
今のマニュアルだと、もはやメソッドを探せないよ。
メソッド名は元から知ってて、細かい挙動を知りたい人向けだと思う。
0295デフォルトの名無しさん
2011/10/25(火) 13:34:27.77アルファベット順に並べられても全く嬉しくない。
0296デフォルトの名無しさん
2011/10/25(火) 18:40:04.79クラス使用初心者向けの情報はゼロだ
ただ、幸か不幸かあれを使いやすいものだと思ってる人はいない
たとえ使いやすいものであっても内容がまったく更新されず
「ふた昔前の今は動かないようなバージョンに機能追加 (new feature!!)」
とか平気で書いたままになってる手動記述マニュアルよりはマシだ
ということで、ああいうふうになってる
最小の手間でなるべく最新の内容に保ち続ける算段があるのなら言ってもらえれば嬉しがる人が増えるかと思う
0297デフォルトの名無しさん
2011/10/25(火) 18:54:49.97あのマニュアルってどっかのデータから生成してるの?
0298デフォルトの名無しさん
2011/10/25(火) 20:13:33.30ruby-doc.org はソースのコメントから生成じゃねーの?
0299デフォルトの名無しさん
2011/10/25(火) 22:10:32.45アフィリエイトとか踏みますのでお願いします
0300デフォルトの名無しさん
2011/10/25(火) 23:18:07.59RailsのPlug-in開発中に出会った問題ですが聞いてください
Objext.extendで標準ライブラリを拡張するために、以下の様にコードを書きました
module MyPlugin::RubyExtensions::OpenStruct
def to_hash
# 宣言した 値を取得
keys=(self.methods - OpenStruct.new.methods)
# 以下ロジック...
end
end
st = OpenStruct.new({ foo: 1, bar: 2 }).extend(MyPlugin::RubyExtensions::OpenStruct).to_hash
to_hashメソッドの中で呼んでいるOpenStructが、モジュール名と衝突して使えない状態になりました
それならC++みたいに次の様に記述すれば、モジュール名と衝突しないだろうと書いてみたのですが
::OpenStruct.new
これでもダメでした
現在はモジュール名を変えてしまって回避していますが「::モジュール名」で
globalなクラス名が呼べていないのはなんだか気持ち悪いのですが…
こういう挙動になっている理由&globalなモジュールの呼び出し方ご存知でしたら
何方か教えてください
環境は ruby1.9.2、CentOSでrvmでインストールです
0301デフォルトの名無しさん
2011/10/26(水) 00:54:59.97モジュールやクラスを定義する時に
module MyPlugin::RubyExtensions::OpenStruct
でなくて
module MyPlugin
module RubyExtensions
module OpenStruct
のやうに記述する
0302uy
2011/10/26(水) 02:44:42.04マジで同意
つうか目次がゴミッカスなだけで、検索結果の表示部分はギリギリ許せる
けどせめてサンプルのソースコードくらい背景色と文字色は変えたほうがいい
Ruby関連の情報は、白・黒・青しか使ってないものがたまにあるけど、色のチョイスがおかしいよ。それ。
あとは目次をさっさと、アルファベット順じゃなくて
機能別順にツリーで並べて一行で縦長にしとけと
アルファベット順で調べたいと思うことなんて早々ねえんだよks
0303デフォルトの名無しさん
2011/10/26(水) 08:32:37.16それじゃサファイアじゃん
0304デフォルトの名無しさん
2011/10/26(水) 08:35:52.600305デフォルトの名無しさん
2011/10/26(水) 08:51:01.50ごめんなさい
0306デフォルトの名無しさん
2011/10/26(水) 08:51:38.32>>304
ごめんなさい
0307デフォルトの名無しさん
2011/10/26(水) 10:32:21.14あれは何で?
Kernel の中で定義されている?
0308デフォルトの名無しさん
2011/10/26(水) 10:54:36.07以前、どこにいったのかと探したなそういえば
そんなとこにあったのか…道理で見つからんワケだ
0309デフォルトの名無しさん
2011/10/26(水) 11:11:03.22「変数と定数」の「組み込み変数」のところに Kernel へのリンクがあるので
一応辿れないことはないんですが、わかりにくいですよね。
というか、「これらを組み込み変数と呼びます」と書いたそばから、
「詳細は Kernel の特殊変数を参照してください」と書いてあって、
「組み込み変数」なのか「特殊変数」なのかどっちやねん、って感じです。
0310デフォルトの名無しさん
2011/10/26(水) 14:05:06.05pythonでいうとhttp://people.csail.mit.edu/pgbovine/python/tutor.html#mode=editみたいのです
0311デフォルトの名無しさん
2011/10/26(水) 14:21:43.00http://codepad.org/
http://colabv6.dan.co.jp/lleval.html
このへん?
たぶん他にもあると思う。
0312デフォルトの名無しさん
2011/10/26(水) 14:53:50.93codepadやideoneのようにコードをサーバに投稿するものではなくオンラインで実行できるだけのものを探しております
3番目のようなものでこれのコードの結果だけを返してくれるものございませんか?
0313デフォルトの名無しさん
2011/10/26(水) 18:16:40.29具体的に何をしたいのか言え
$SAFEがもうちょっとマシならもしかしたら何年かあとにはあるかもしれないが、
どちらにしてもできることは極めて限られるだろう
0314デフォルトの名無しさん
2011/10/26(水) 18:27:47.070315デフォルトの名無しさん
2011/10/26(水) 19:15:00.89こういうのはふつうは「企画倒れ」とかなんとか呼ぶ
0316デフォルトの名無しさん
2011/10/26(水) 20:12:51.390317デフォルトの名無しさん
2011/10/26(水) 20:43:19.69Sinatraのbeforeフィルタ内でrequest.path_infoを書き換えると
ルーティングを変更出来るのですが、Padrinoでは変化しませんでした。
Padrinoのbeforeフィルタ内でルーティングを変更する方法があれば教えてください。
/hoge/へのアクセスは get '/' 、/book/hoge/ は get '/book/'
といった感じに割り当てたいです。
Sinatraでは
before do
@hoge = true if request.path_info =~ %r[/hoge/]
request.path_info.sub!("hoge/", '')
end
get '/' { @hoge ? "hoge" : "fuga" }
としていました。
0318デフォルトの名無しさん
2011/10/26(水) 20:46:42.64まぁ、irbになっちゃうけど。
0319デフォルトの名無しさん
2011/10/26(水) 21:41:34.65本当のRubyをブラウザで実行するわけではありません
googleのplaygroundみたいにブラウザでコード張って実行したら結果が出るのがいいのです
javascriptでそういうのを実装したものが合ったんですがブックマークをけしてしま
0320デフォルトの名無しさん
2011/10/26(水) 21:45:13.92> 5.times { puts "hello" }
=> "hellohellohellohellohello"
>>319
上であがってるリンクではどこが不足なのかを説明したほうがいいよ
0321デフォルトの名無しさん
2011/10/26(水) 22:04:43.53もしかして、クライアントサイドでRubyScript動かしたいってこと?
それとも、サーバ上でコンソール向けスクリプト実行して
結果を返して欲しいの?
0322デフォルトの名無しさん
2011/10/26(水) 22:42:48.410323デフォルトの名無しさん
2011/10/26(水) 22:57:50.89もしかして自分が借りてるサーバなどで動かしたいということ?
0324デフォルトの名無しさん
2011/10/26(水) 23:33:56.090325デフォルトの名無しさん
2011/10/26(水) 23:41:24.570326uy
2011/10/27(木) 01:52:46.71お前ら理解力なさすぎ
俺なんて1レスでわかったわ
質問者がブラウザーを理解してないってことが。
あのな質問者
お前の言ってることは、ブラウザーのウェブアプリケーションデザインの問題
ブラウザーにコードかいて実行押したときに、別ページにとんでブラウザーに実行結果が出るのと
同じページに実行結果が出るのは、ブラウザーに表示されたHTMLの外観の作り方の問題なだけであって、中身(ブラウザーの外)は同じ
こいつらはブラウザーのオフライン環境では動かない。サーバーと通信してる サーバー側にあるruby.exeが実行されてその結果が出るだけ(ブラウザーではない)
セキュリティ何も考えなくていいなら、君でも作れるよ
こいつらは例外なくブラウザーではなくCGIで動いてる。ブラウザーのJavaScriptで動かすと、たとえば無限ループのプログラムをRunさせちゃったときに
ブラウザごとフリーズするからな。サーバー側では基本、N秒以上経ってもプログラムが終わっていなければそのプロセスをkillするようになってる(ブラウザーとはちがう)
つまり、何が言いたいかというと、codepadで我慢しろ
0327デフォルトの名無しさん
2011/10/27(木) 03:27:27.87「オンラインで」は「サーバーと通信して」と理解するのがたぶん適切だと思うんだけど、
質問者は単に「ブラウザ上で」という意味で使ってる?
だとしたら>>321の「クライアントサイドでRubyScript動かしたい」が正解だよな。
ちなみに>>310や>>311の三番目もサーバーにスクリプトを送信して実行結果を受け取って表示してる。
JavaScriptで実装したRubyは適当にググっただけでもいくつか見つかるけど
どれも数年前に開発が止まってた。
jslinuxでruby 1.8を動かした人もいたと思う。
lleval(>>311の三番目)はサーバーと通信するタイプだがAPIも公開してる。
0328デフォルトの名無しさん
2011/10/27(木) 10:37:54.59もういいです
0329デフォルトの名無しさん
2011/10/27(木) 10:39:47.47見つかりました
http://repl.it/
0330デフォルトの名無しさん
2011/10/27(木) 11:29:30.33一番重要な情報を最後に出すなボケカス。
それを改めない限り二度とネット掲示板で質問するな。言語の種類関係なく。
0331デフォルトの名無しさん
2011/10/27(木) 11:35:04.87別に一番重要な情報じゃないだろw
0332uy
2011/10/27(木) 12:34:34.440333デフォルトの名無しさん
2011/10/27(木) 12:41:07.710334デフォルトの名無しさん
2011/10/27(木) 12:57:14.520335デフォルトの名無しさん
2011/10/27(木) 13:05:06.04言葉もあいまいで不正確だから誤解を招く
0336デフォルトの名無しさん
2011/10/27(木) 15:01:20.92>なにからなにまで知ってるぜ。
"なに" - "なに" = ゼロ
0337デフォルトの名無しさん
2011/10/27(木) 15:09:12.14なに・・・x1
なに・・・x2
と考える方が妥当では
0338デフォルトの名無しさん
2011/10/27(木) 15:12:38.900339デフォルトの名無しさん
2011/10/27(木) 15:18:12.580340デフォルトの名無しさん
2011/10/27(木) 15:38:07.720341デフォルトの名無しさん
2011/10/27(木) 19:39:14.700342uy
2011/10/27(木) 23:46:05.22ActivXってそれをインストールすると
ページにアクセスした時点でクライアント側のexeを実行させたりする事も可能になってるようなんですけど(ハンゲームとか)
これは、仮に正規のページ以外から任意のexe実行させたりされる可能性があると思うんですけどどうなの?
そこら辺ってURLか、何らかのパスワード的なものでチェックかけてんだと思うけど、偽装される可能性は?
cmd起動出来るならなんでもやられちゃうと思うんだけど?
0343300
2011/10/29(土) 09:55:01.08報告遅れてすいません
うまく動きました!
0344デフォルトの名無しさん
2011/10/29(土) 13:42:41.78たまにしょぼい回答者もちらほらみかけるが全体的に回答者(ほとんど数名の方が回答しまくってるのかもしれないが)の質が高いよここ
0345デフォルトの名無しさん
2011/10/29(土) 13:55:12.73ちょっとググったぐらいじゃ答えられない質問になると答えてる
いつもほんの数行だし記名性のない文章だから気付きにくいけど
0346デフォルトの名無しさん
2011/10/29(土) 16:29:35.740347デフォルトの名無しさん
2011/10/29(土) 16:45:56.960348デフォルトの名無しさん
2011/10/29(土) 19:15:31.220349デフォルトの名無しさん
2011/10/29(土) 20:53:40.140350デフォルトの名無しさん
2011/10/29(土) 23:08:01.81押されたか知る方法はございませんか?
0351uy
2011/10/30(日) 01:54:57.76開発者気取りの成りすましレスなら見たことある
2chにしてはマシってだけで、まだ全然低いだろ 贅沢? 俺は贅沢だ
確かに少しググった程度じゃ「今は」見つからない情報っていうのはあるけど、
それは1年前や3年前のGoogleだったら検索に引っかかりやすかった可能性はあるのでなんとも
あとは英語版Googleとか Google SorceCodeSearchだな
あと、スレ盛り上げる為か何か知らないけど
自分で質問して自分で回答してる奴がいるのもわかってるからね?
あえてスルーしてあげてるだけだからね?
uyのネット匿名カテゴリにおけるinsightをあまりなめてはいけない
0352デフォルトの名無しさん
2011/10/30(日) 06:48:02.960353デフォルトの名無しさん
2011/10/30(日) 06:59:24.88通常Ctrl+Z(とEnter)を押してもRubyに渡る前に
コマンドプロンプトがCtrl+Zを処理してしまうからRubyにまでは届かない
ただファイル末端に到達したことを検知するだけなら
begin
loop { puts readline }
rescue EOFError => e
$stderr.puts "stream reached EOF"
end
処理を途中で終了したいとかならCtrl+ZでなくCtrl+Cにして>>165のようにする
これで足りなきゃCtrl+Zを検知したい理由や押すときの状況なんかを詳しく書くといいかも
0354デフォルトの名無しさん
2011/10/30(日) 07:52:03.21require 'Win32API'
def getch
_getch = Win32API.new('msvcrt','_getch','V','I')
kc = _getch.call
if kc == 0 or kc == 0xE0
kc = _getch.call | 0x100
end
kc
end
def kbhit?
!Win32API.new('msvcrt','_kbhit','V','I').call.zero?
end
def sleep_or_keywait(t, keycode=nil)
start = Time.now.to_f
while Time.now.to_f - start < t
if kbhit?
kc = getch
return kc if !keycode or kc == keycode
end
sleep 0.01
end
nil
end
100.times do |i|
puts i
break if sleep_or_keywait(0.5, 26)
end
0355デフォルトの名無しさん
2011/10/30(日) 08:41:06.48n == 1 ? n : n * fact(n - 1)
end
p fact(8188)
rubyってどこまでデカイ数扱えるのかなと思って試してみた
8188までいけた、これよりデカイ数を求めたくなった場合はどうしたらいいの?
0356デフォルトの名無しさん
2011/10/30(日) 08:42:10.590357デフォルトの名無しさん
2011/10/30(日) 09:36:08.85再帰だとスタック食い潰しちゃうから再帰を使わずに書く
0358デフォルトの名無しさん
2011/10/30(日) 09:46:24.36SystemStackError: stack level too deep
で落ちてるな
デカイ数を試すテストになってねぇじゃねぇかw
0359デフォルトの名無しさん
2011/10/30(日) 10:10:13.69ひどい言い草だな。Steve Jobsの前で行ったらその場でクビになるレヴェル。
0360デフォルトの名無しさん
2011/10/30(日) 10:13:28.11クビになるのはてめぇだぞ。それを実行するユーザーに無限のメモリ増設を
要求するプログラムを作った、という罪で。
0361デフォルトの名無しさん
2011/10/30(日) 10:31:50.721.8ならuname -s (Linux/bash) でいけるらしいけど
0362デフォルトの名無しさん
2011/10/30(日) 10:35:01.12のこぎりとか使わないとだめですか?
0363デフォルトの名無しさん
2011/10/30(日) 10:43:32.60PHP は ibcurl サポートがデフォルトで組み込まれてたりなんかするんか
>PHP を cURL サポート機能付きでコンパイルすると、 curl 関数を使用可能となります。
うへぇマジだ
>>362
HTTP の送信メソッドを操作する基礎的なライブラリ Net::HTTP と、GET だけするライブラリ open-URI はあるが、
Web ブラウザやダウンローダとしてヘッダやデータを扱う複雑なライブラリは標準では存在しない
gem では Mechanize が、libcurl を呼ぶ gem としては curb なんかがある
0364デフォルトの名無しさん
2011/10/30(日) 10:55:22.40日本語情報が多いMechanize使って見たいと思います
ちょっとずつPHPのコードをRubyに移植しながら勉強していきたいと思います
0365デフォルトの名無しさん
2011/10/30(日) 10:58:28.97Rubyが標準で持ってない機能なんてたくさんありそうだな
0366デフォルトの名無しさん
2011/10/30(日) 11:09:08.17> コンパイル済みのRubyのスタックサイズを増やす
MS-DOS の EXE ファイルじゃあるまいしw
ていうかunameじゃなくてulimitかな? それはプロセスの属性であって、
実行可能バイナリの属性じゃない。
>>365
Rubyの「標準添付ライブラリ」に相当するものが、なんでもかんでも組み込みで
グローバル名前空間に存在してることを自慢する人たちだから、競争したらダメw
0367デフォルトの名無しさん
2011/10/30(日) 11:10:11.19/* each thread has this size stack : 128KB */
#define RUBY_VM_THREAD_STACK_SIZE (128 * 1024)
などとハードコーディングされてるっぽいよ
0368デフォルトの名無しさん
2011/10/30(日) 11:17:06.27Rubyも組み込みライブラリが結構デカいと思うから
そこは別に言われても気にしないな
問題はライブラリじゃなくて言語本体の微妙な感じ
0369デフォルトの名無しさん
2011/10/30(日) 11:37:53.22> ていうかunameじゃなくてulimitかな?
どもども。単純にボケた
>>367
ソース眺めた感じではあとから変更はできなそうだね
(自分が読み間違えしてなければ)
どうもありがとう
0370デフォルトの名無しさん
2011/10/30(日) 11:47:02.09↓こういうやり方もあるね。
http://d.hatena.ne.jp/athos/20110119/p1
0371デフォルトの名無しさん
2011/10/30(日) 11:59:45.52自分で試すの面倒だから誰か試して
0372デフォルトの名無しさん
2011/10/30(日) 12:14:04.71require 'benchmark'
Benchmark.bm(10) do |x|
list = (1 ... 1000000).to_a
x.report("while_test:") {
len = list.length
sum = 0
i = 0
while i < len
sum += list[i]
i += 1
end
puts sum
}
x.report("inject_test:") {
puts list.inject(0, &:+)
}
end
ruby 1.9.2p180 (2011-02-18) [i386-mingw32]
user system total real
while_test:499999500000
0.625000 0.000000 0.625000 ( 0.625000)
inject_test:499999500000
0.719000 0.000000 0.719000 ( 0.718750)
0373デフォルトの名無しさん
2011/10/30(日) 12:22:42.19こういうのですhttp://php.net/manual/ja/function.memory-get-usage.php
0374デフォルトの名無しさん
2011/10/30(日) 12:24:17.19それはないです
少なくとも一般に知られている妥当動作のものはない
あるべきだと思うんだけども
0375デフォルトの名無しさん
2011/10/30(日) 12:26:40.05単純なものならwhileのほうが絶対的に速い
ただし、実際に処理をループ内にいろいろ詰め込んだ場合は不定
というか、whileやeachで平易に書けるならinject使う理由がねえ
0376デフォルトの名無しさん
2011/10/30(日) 12:27:56.360377デフォルトの名無しさん
2011/10/30(日) 12:29:11.39マニュアルを作るさいのライセンスは何を使えば良いのですか?
0378デフォルトの名無しさん
2011/10/30(日) 12:41:59.50まったく別の権利体系にすることももちろん可能だが(電子書籍で売ったっていい)、
こんなとこでこんなこと聞いてる時点でそのへんは不可能だろう
0379デフォルトの名無しさん
2011/10/30(日) 12:46:50.680380デフォルトの名無しさん
2011/10/30(日) 12:50:21.95無理無理
今本当に必要なのはマニュアル内容よりもマニュアル分類だもの
全ての添付ライブラリの分野に精通してるなんて現実的ではないし(Cのソケット通信やSSLのコードを理解できますか?)、
既存のマニュアルを分類し直すのが一番安心確実高利回り
それに手をつけないってことは、つまり、モヤモヤ妄想しているだけで、本当は何も考えてないってことだ
0381デフォルトの名無しさん
2011/10/30(日) 12:55:36.72別に今のマニュアルでも不便はない
0382デフォルトの名無しさん
2011/10/30(日) 13:01:45.93それは現在の悪い状態に慣れてしまった結果ではある
上にもあったが、普段の作業の大部分が自動化されることが大前提なので(手作業は文章の差分程度)、
そのへんがどうにかされないなら(HTMLを毎回手書きとか!)るりま以下が確定なので誰も参加しないし誰も利用しないだろう
http://redmine.ruby-lang.org/projects/rurema/activity
0383デフォルトの名無しさん
2011/10/30(日) 13:07:06.260384デフォルトの名無しさん
2011/10/30(日) 13:18:35.34初心者は1冊本を買えばいい
0385デフォルトの名無しさん
2011/10/30(日) 13:20:15.700386デフォルトの名無しさん
2011/10/30(日) 13:52:33.110387デフォルトの名無しさん
2011/10/30(日) 14:07:11.62それは思う
緊急的にどうにかなんないもんかしら
0388デフォルトの名無しさん
2011/10/30(日) 14:10:43.63まったく変化に弱い連中だなw
0389デフォルトの名無しさん
2011/10/30(日) 18:12:55.92>>358
なるほどスタック領域とやらを食いつぶして死んでただけなのか勉強になるなあ
でもこれ以外のメモリの使い方がよく分からん
例えば配列をドカッと確保したらそれはスタックではないから大容量使えるって事なのか?
0390デフォルトの名無しさん
2011/10/30(日) 18:23:39.28…説明めんどくさいな、いわゆる一般的に言われるメモリ領域とは違…うん、まあ、違う
瞬間的な処理予約数っていうのがシステムの制限由来で決まってて、再帰は再帰ループが終わるまでその予約数を1つずつ使用する
再帰のようなものや無限ループでなければ、スタックを食い潰すようなことはない
もちろんシステムのメモリの制限があるが、その制限しかないとも言える
配列の要素数や文字列の長さは、システムのメモリの制限しか受けない
0391デフォルトの名無しさん
2011/10/30(日) 19:59:17.71GC.malloc_allocated_size
GC.malloc_allocations
ってのがソースには存在するけど
デフォルトでは無効化されてる
有効にして再コンパイルすると使えるのかな?
でも有効にすると性能低下があるのかもしれない
どういう機能なのかはわからんけど
0392デフォルトの名無しさん
2011/10/31(月) 00:59:27.720393デフォルトの名無しさん
2011/10/31(月) 01:33:08.34require "foo"
と
require 'foo'
のように、○○の部分を''で囲むのと""で囲むのとの違いは何でしょうか。
入門書では""で囲っているのですが、web上には''で囲っているサンプルコードもあり、よくわからなくなりました。
どちらで囲うのが正しいのでしょうか、或いは場合によって使い分けるのでしょうか。
0394デフォルトの名無しさん
2011/10/31(月) 01:36:17.98>>393の
>のように、○○の部分を''で囲むのと""で囲むのとの違いは何でしょうか。
という行の「○○」の部分はfooと書くつもりでした。
0395デフォルトの名無しさん
2011/10/31(月) 02:16:25.02どちらも文字列リテラル
ttp://doc.ruby-lang.org/ja/1.9.2/doc/spec=2fliteral.html#string
ここの文字列リテラルの所とリンクされてるバックスラッシュ記法、式展開を読んで
どう使い分けるかを考えよう
0396uy
2011/10/31(月) 03:50:53.22個人的にはreuireだけ''で他は大体""でやっている
ひとつだけ言えば、全部''でやったら死ねって思うけど
全部""だったら別に有り
基本""でやって''でやったほうが良い箇所を見つけたら''使えば良いレベル
0397デフォルトの名無しさん
2011/10/31(月) 04:27:57.02最近知ったんだが便利すぎデザインに気合入りすぎでワロタ
るびまもこんな感じのギラギラしたデザインにしようぜ
0398デフォルトの名無しさん
2011/10/31(月) 06:25:02.970399デフォルトの名無しさん
2011/10/31(月) 07:19:32.67ありがとうございます。
>>395
式展開が使えるので""で囲んだほうが柔軟、という表現が正しいのかはわかりませんが
そんな感じなんだなという風に理解しました。
>>396
思いは書かれているのですが理由がなく・・・すいません、よくわかりません。
0400デフォルトの名無しさん
2011/10/31(月) 07:33:05.26サポートしたら絶対流行る
0401デフォルトの名無しさん
2011/10/31(月) 07:38:10.19…そう読めるなあ
式展開 #{うめこみ} を使用しないなら、使用しないという意図がわかるように、誤爆が起こり得ないように 'シングルクォート' で囲む
というのが一般的
「式展開しないならダブルクォート使ってんじゃねーよ!」「うっせーアスペ!」とかいうケンカが稀にある程度
実際にはまあどうでもいいので(Rubyの式展開自体、どんなエディタでも目立って存在がわかる)、好きにするといい
なんでもダブルクォートで囲むのはPerlの人かなとも思う
0402デフォルトの名無しさん
2011/10/31(月) 08:10:46.45ありがとうございます、''には誤爆防止という事もあるんですね
0403デフォルトの名無しさん
2011/10/31(月) 08:22:50.72シングルクォートだとバッククォートと見分けがつきにくいという理由から。
Perlを踏襲してるRubyでも同じことが言えるかもしれないけど。
0404デフォルトの名無しさん
2011/10/31(月) 08:28:09.77シングルっていうルールでやってるが、
まあよく考えたら逆でも問題ない気がする
0405デフォルトの名無しさん
2011/10/31(月) 13:20:30.880406uy
2011/10/31(月) 17:51:25.58誤爆したことあんの? っていう
0407デフォルトの名無しさん
2011/10/31(月) 21:05:56.47Windows環境で使うと自然とシングルになると思うw
0408デフォルトの名無しさん
2011/10/31(月) 21:14:44.24エスケープの無い文字列リテラル希望
0409デフォルトの名無しさん
2011/10/31(月) 23:34:09.81rubyはじめたころは:hogehogeで文字列リテラル書けるかーと勘違いしていた
0410デフォルトの名無しさん
2011/11/01(火) 00:07:16.830411デフォルトの名無しさん
2011/11/01(火) 00:17:13.640412デフォルトの名無しさん
2011/11/01(火) 00:56:12.64中身が(私の頭では)理解できないライブラリ hoge.rb がありまして
スクリプト中で
require 'hoge'
Hoge.operation
としてメソッド実行すると、動的にクラスFugaが定義されます。
このFugaクラスのインスタンスを生成した後で Marshal.dump の
結果を外部ファイルに保存し、後で別のスクリプトからそれを Marshal.load
して使うということを考えていたのですが
... undefined class/module ...
ということで、どうもFugaクラスの定義がないとダメなようでして。
0413デフォルトの名無しさん
2011/11/01(火) 05:13:59.55その別のスクリプトで
require 'hoge'
Hoge.operation
をやればいいだけだと思うんだけど、それが出来ない理由が有るの?
0414デフォルトの名無しさん
2011/11/01(火) 07:29:03.78その別のスクリプトには、Fugaの定義が書かれていないんだから、
定義がないよと言われるのは当然の事なのです。
>>413のように別スクリプトで改めて、require 'hoge'して
Fugaの定義を読み込むのが解決策です。
0415412
2011/11/01(火) 09:25:09.89具体的には gem databasedotcom の Databasedotcom::Client#query なんですが。
0416デフォルトの名無しさん
2011/11/01(火) 09:38:03.98インスタンスを復元したいだけなら undefined class/module が出たクラスを
class Fuga ; end
class Hoge ; end
class Hage ; end
class Page ; end
みたいに空の定義を書けば復元できる(かもしれない)
ただし復元出来ても元で定義されてたメソッドとかは当然使えない
観念してソース読んだ方がいいよ
0417デフォルトの名無しさん
2011/11/01(火) 10:37:37.94こんながあるけど、コードリーディングに何か役立つかな?
http://www.h6.dion.ne.jp/~machan/tmdoc/example/databasedotcom/html/
0418デフォルトの名無しさん
2011/11/01(火) 17:50:22.49メソッドを定義せずにワンライナー的に処理を行う方法はありますか?
0419デフォルトの名無しさん
2011/11/01(火) 18:37:36.00ありません
0420デフォルトの名無しさん
2011/11/01(火) 18:38:28.44そうですか。ありがとうございました
0421デフォルトの名無しさん
2011/11/01(火) 18:43:03.68ださいけど
0422デフォルトの名無しさん
2011/11/01(火) 18:51:09.76ブロックとメソッドの違いとか面倒だし、おすすめできない。
0423デフォルトの名無しさん
2011/11/01(火) 19:00:26.12そういうようなものは、残念ながらない
複雑でめんどい概念のもので再現可能だとしても、それはきっと要件を満たさないはず
0424デフォルトの名無しさん
2011/11/01(火) 20:44:21.820425デフォルトの名無しさん
2011/11/01(火) 21:50:40.49fib = lambda{|n| (n==0 || n == 1) ? 1 : fib.call(n-1) + fib.call(n-2)}
fib.call(10) # => 89
ローカル変数も禁止だとすると
今のRubyには存在しない__callee__みたいな感じでラムダ自身を返すものでもないと無理だろうけど
あらかじめこんなメソッドを作っておいてもいいのなら
定義と実行はワンライナーで書ける
def foo(*a)
innerblock = proc{|*b| yield innerblock,*b}
yield innerblock,*a
end
foo(10){|f,n| (n==0 || n == 1) ? 1 : f.call(n-1) + f.call(n-2)} # => 89
0426デフォルトの名無しさん
2011/11/01(火) 22:05:32.02->(f){->(g){f[->(x){ g[g][x]}]}[->(h){ f[->(y){h[h][y]}]}]}[
->(f){->(n){ n==0 ? 1 : n*f[n-1] } }
][10]
0427412
2011/11/01(火) 22:22:39.90ソースを眺めたところ Class.new + α して動的にクラス定義するメソッドがあったので、
これを使って必要なクラスを用意してから Marshal.load したらできました。
0428デフォルトの名無しさん
2011/11/01(火) 22:53:52.951.9.3がでたのでコンパイルするついでに
CALC_EXACT_MALLOC_SIZEを有効にしたのもコンパイルしてみた
GC.malloc_allocated_sizeで
Rubyが確保したメモリサイズがわかるのかな
でっかい文字列とかを作るとその分増えて
そいつの参照を切ってGC.startすると
文字列がゴミ回収されて
GC.malloc_allocated_sizeが減る
0429デフォルトの名無しさん
2011/11/01(火) 22:54:23.35書ける気がする。。ちょっと無理があるか。
class Alambda
def initialize(b); @proc = b; end
class << self
def alambda(&b)
obj = Alambda.new(b)
lambda{|*args| obj.instance_exec(*args, &b)}
end
end
def method_missing(action, *args)
instance_exec(*args, &@proc) if action == :this
end
end
fact = Alambda.alambda do |i|
i == 0 ? 1 : i * this(i - 1)
end
puts fact[5] #=> 120
0430429
2011/11/01(火) 23:03:57.36class Alambda
def initialize(&b); @proc = b; end
def [](*args)
instance_exec(*args, &@proc)
end
def method_missing(action, *args)
instance_exec(*args, &@proc) if action == :this
end
end
fact = Alambda.new do |i|
i == 0 ? 1 : i * this(i - 1)
end
puts fact[5] #=> 120
0431デフォルトの名無しさん
2011/11/01(火) 23:29:11.60引数が増えるのが難点だけど
0432デフォルトの名無しさん
2011/11/02(水) 07:25:44.67ruby1.9系の勉強をしたいと思っていますが、ネットでお勧めのページはありますか?
基本的な文法からMix-in、例外処理、ネットワーク処理、ファイル入出力など細かいところまで一通り解説があると助かります。
よろしくお願いいたします。
0433デフォルトの名無しさん
2011/11/02(水) 17:26:55.959割くらいは1.8系列と一緒なので、適当な1.8解説サイト読め
0434デフォルトの名無しさん
2011/11/02(水) 18:40:24.850435デフォルトの名無しさん
2011/11/02(水) 22:01:30.260436デフォルトの名無しさん
2011/11/02(水) 22:10:34.48>>433-434
実は、プログラミングRuby第二版を持っているんですよね
1.8系列について書かれた本ですが、読んで損はないですかね
それとも、ケチらずに1.9系の本買った方がいいかな?
0437デフォルトの名無しさん
2011/11/02(水) 22:42:15.97持ってるならそれ使って1.8で勉強して
その後変更点や新機能をググればいいかも
0438デフォルトの名無しさん
2011/11/03(木) 03:12:13.570439uy
2011/11/03(木) 09:52:22.94以前俺が簡単な実装かいたじゃん
Rubyの機能として無いんだからやたら複雑な事をやんないで
今はこれで良いと思う
def sss *h
@@sss_vvv = lambda do |*h| yield *h end if iterator?
@@sss_vvv.call *h
end
n=sss 4 do | n |
if n == 0
1
else
n * sss(n - 1)
end
end
p n
sss 9 do | n |
sss(n - 1) if n > 0
sss 9,n do | n , m |
sss(n - 1 , m) if n > 0
printf "%3d" , n*m
end
puts
end
2重再帰も可能
0440デフォルトの名無しさん
2011/11/03(木) 10:27:47.260441片山博文MZ
2011/11/03(木) 21:30:15.710442デフォルトの名無しさん
2011/11/04(金) 01:07:33.37eval.c: In function ‘rb_eval_string_wrap’:
eval.c:1744: 警告: assignment discards qualifiers from pointer target type
のようなwarningが出たんですが問題ないのでしょうか・・・
0443デフォルトの名無しさん
2011/11/04(金) 03:45:18.370444デフォルトの名無しさん
2011/11/04(金) 04:30:46.37稀にコンパイルできない人がいるんだが
0445デフォルトの名無しさん
2011/11/04(金) 09:30:01.550447デフォルトの名無しさん
2011/11/04(金) 11:38:23.38ワンライナー的に使うなら430にto_procも入れればいいんですかね。
ブロックで書いてる感があるかも。
class Alambda
def initialize(&b); @proc = b; end
def [](*args); instance_exec(*args, &@proc) end
def to_proc; Proc.new{|*args| instance_exec(*args, &@proc)} end
def method_missing(action, *args); instance_exec(*args, &@proc) if action == :this end
end
p [1, 2, 3, 4, 5].map &Alambda.new{|i|
if i == 0
1
else
i * this(i - 1)
end
}
#=>[1, 2, 6, 24, 120]
0448片山博文MZ
2011/11/04(金) 18:15:43.400449デフォルトの名無しさん
2011/11/04(金) 19:14:48.53まる一日ググってもわかりませんでした。
どうやったらインストールできるか教えてください。
環境:windows7 64bit、ruby 1.9.3p0、gem 1.8.11
以下エラーメッセージ-----------------------------------------------------------
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
C:/Ruby193/bin/ruby.exe extconf.rb
checking for re.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby193/bin/ruby
C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to genera
te an executable file. (RuntimeError)
You have to install development tools first.
0450デフォルトの名無しさん
2011/11/04(金) 19:41:41.79っていうかなんでわざわざ初心者がRubyInstaller使うかね
0451デフォルトの名無しさん
2011/11/04(金) 19:44:30.880452デフォルトの名無しさん
2011/11/04(金) 19:58:31.30本当に丸一日ぐぐって解法に辿りつけなかったんだったらプログラミングやめたほうがいいかもと親切心で思う
RubyInstaller(MInGW)でインストールしたなら、DevKitが要る
おそらく、どっかの誰かがうっかり間違ってパッケージングしてるってだけで、
DevKitが要らない解決法もあるのだと思うのだが、
こんなことが起こるたびにどっかの誰かの修正リアクションを待ってなんていられないので、
自前でDevKitをインストールしてコンパイル可能にしておいてしまうのが簡便な解決法
DevKitはRubyInstallerのサイトからダウンロードできる
0453デフォルトの名無しさん
2011/11/04(金) 20:05:37.92Makefile作る時点でコケてる
0454デフォルトの名無しさん
2011/11/04(金) 20:21:24.37どっちにしても Ruby 1.9.2 ならあっさり成功するよかん
0455449
2011/11/04(金) 20:40:02.05>>450
One-Click Installerは1.9対応していないみたいなので。
>>451
説明不足でした。
jsonを入れたいわけではなくrailsをインストールするときjsonで落ちていて困っているのです。
>>452
DevKitはインストール済みです。
>>453
Makefile作る時にこけるとすればどのような解決策があるかご存知ですか?
0456デフォルトの名無しさん
2011/11/04(金) 20:44:41.420457デフォルトの名無しさん
2011/11/04(金) 20:45:47.130458デフォルトの名無しさん
2011/11/04(金) 20:54:39.990459デフォルトの名無しさん
2011/11/04(金) 20:57:05.180460449
2011/11/04(金) 21:01:13.941.9.2の再インストールで解決しました。
ありがとうございました!
0461デフォルトの名無しさん
2011/11/04(金) 21:01:37.520462デフォルトの名無しさん
2011/11/04(金) 22:14:20.79切り替えて欲しいな。
0463デフォルトの名無しさん
2011/11/05(土) 07:38:53.51エロイ人教えてください
0464デフォルトの名無しさん
2011/11/05(土) 08:29:26.45いわゆるトップレベル。
class Foo
end
module Bar
class Foo
end
p Foo # => Bar::Foo
p ::Foo # => Foo
end
0465デフォルトの名無しさん
2011/11/05(土) 09:32:57.60よくわかりました。
ありがとうございます
0466デフォルトの名無しさん
2011/11/05(土) 13:06:06.61ぐぐってもわかりやすい説明がでてこないし。
$: に「.」が含まれなくなったことと関係しているらしいことまではわかったけど、
「.」が含まれなくなったことと、require_relativeがどう関係しているのかわからん。
0467デフォルトの名無しさん
2011/11/05(土) 13:51:38.46require_relative 'hoge'
と
$:.push "."
require 'hoge'
が同じこと、って意味じゃない。
0468デフォルトの名無しさん
2011/11/05(土) 14:00:28.87結果として、require_relative 'hoge' は require File.expand_path('hoge') にかなり等しい
require_relative は $LOAD_PATH を読まず、カレントディレクトリ(からファイルパス計算した位置)に hoge.rb/.so がなければ LoadError
require_relative 'uri' はカレントディレクトリに uri.rb がないと動かない
1.9.2 以降の require 'uri' は Ruby ロードパスに uri.rb がないと動かない
1.9.1 以前の require 'uri' はカレントディレクトリに uri.rb があればそれを読み、それが無いときにのみ Ruby ロードパスを探す
(そもそも $LOAD_PATH 自体にカレントディレクトリが含まれていたので、この説明は正確ではない)
0469デフォルトの名無しさん
2011/11/05(土) 14:00:38.030470デフォルトの名無しさん
2011/11/05(土) 14:02:20.17スレ汚しすまそ
0471デフォルトの名無しさん
2011/11/05(土) 15:20:54.53失敗or何もしなかった時にnilを返すようになってるね
詳しく知らんけどSmalltalkのカスケード式みたいなのがあればと、たまに思う
または、
(tmp = foo.hoge1) && (tmp = tmp.hoge2) && (tmp = tmp.hoge3)
みたいなやつ
失敗しない限りメソッドチェーンを続けるようなもの
foo ||= bar は foo || foo = bar
からの類推で
foo &&. bar を foo && foo.bar にするみたいなのがほしい
実際は (tmp = foo) && (tmp.bar)と同等で
0472デフォルトの名無しさん
2011/11/05(土) 18:44:39.98有名どころではactive_supportのtryを使えば良いかな
require 'active_support/core_ext'
foo.try(:bar)
0473デフォルトの名無しさん
2011/11/05(土) 19:23:41.62失敗する寸前のオブジェクトが欲しいときは他の手段が必要だな。
CoffeeScriptの ?. はどんなのだったかな…
0474デフォルトの名無しさん
2011/11/05(土) 21:28:24.89/a*c/ =~ "abc" #=> マッチする
/a*c/ =~ "abcccccc" #=> マッチする
上はマッチする文字列はcの直前の文字がaである必要があるが、bが含まれる
下は繰り返される文字は*の直前のaである必要があるが、cが繰り返されている
それでもマッチするのはどうしてなんでしょうか?
初歩的な質問ですみません。
0475デフォルトの名無しさん
2011/11/05(土) 21:38:15.440476デフォルトの名無しさん
2011/11/05(土) 21:41:56.48とてもわかりやすいレスありがとうございます!
0477デフォルトの名無しさん
2011/11/05(土) 21:42:37.44*は欲張りマッチなのでa*cとするとabcccccccと来て、ここで最後のcがマッチして検索終了となる。
*?で非欲張りマッチにするか、cにマッチしたくなかったら肯定先読みとか使う
0478デフォルトの名無しさん
2011/11/05(土) 21:43:22.03/a*c/という正規表現リテラルは
"abc"というマッチ対象文字列の"c"にマッチし
"abcccccc"というマッチ対象文字列の"abc"にマッチするということ
0479474
2011/11/05(土) 21:45:06.89"abcccccc"というマッチ対象文字列の"c"にマッチする、の誤り
0480デフォルトの名無しさん
2011/11/05(土) 21:54:39.040481デフォルトの名無しさん
2011/11/06(日) 05:07:32.11$:.unshift "."
ではなくて
$:push "."
なの?
>>468
そこでいう「カレントディレクトリ」って、プロセスの?
それとも「require 'hoge'」が書かれてあるファイルが置かれているディレクトリのこと?
前者なら、require_relative 'hoge' した場合、プロセスのカレントディレクトリが変わると、読み込まれる hoge.rb の位置も変わる。
後者なら、プロセスのカレントディレクトリの位置によらず、読み込まれるhoge.rbの位置は一定。
どっちでしょう?
0482デフォルトの名無しさん
2011/11/06(日) 11:19:40.07enter{
fooに入った直後に実行
}
exit{
fooから抜ける直前に実行
}
メインのコード
end
みたいに書く技って無いですか
0483デフォルトの名無しさん
2011/11/06(日) 11:47:11.58def foo_setup; end
def foo_main; end
def foo_teardown; end
def foo
foo_setup
foo_main
foo_teardown
end
main で例外が起きても実行したい処理があるなら適当に例外キャッチとかしろ
0484デフォルトの名無しさん
2011/11/06(日) 11:50:37.68いちおう ensure があるにはあるんだけど
0485デフォルトの名無しさん
2011/11/06(日) 11:55:35.040486デフォルトの名無しさん
2011/11/06(日) 12:16:58.30膨大なデータつくるのめんどくさいし…
0487デフォルトの名無しさん
2011/11/06(日) 13:01:25.76chesen,kakasi,mecabどれがいいのか悩みます
kakasiは辞書ファイルが薄い
mecabはchesenの改良版
chesenは除外してkakasiとmecabを選ぶならmecabだろうけど
インストールサイズが小さいkakasi
0488デフォルトの名無しさん
2011/11/06(日) 14:05:51.51def foo
begin
fooに入った直後に実行
yield
ensure
fooに入った直後に実行
end
end
foo do
メインのコード
end
0489デフォルトの名無しさん
2011/11/06(日) 14:49:15.39def foo
__daemon__ do
メインのコード
end
end
def __daemon__
# >>488と同じなので省略
end
private :__daemon__
0490デフォルトの名無しさん
2011/11/06(日) 15:58:37.220491デフォルトの名無しさん
2011/11/06(日) 17:26:22.85Ruby 1.9 is not supported yet. You have to use Ruby 1.8.x as stated above.
http://www.redmine.org/projects/redmine/wiki/RedmineInstall#Compatibility-notes
ChiliProject (Redmineのfork) も部分的にしか対応終わってないらしいから先は長そうだな。
周囲ではgithub issuesとかpivotal trackerとかいう声が勢いを増しておる。
0492デフォルトの名無しさん
2011/11/06(日) 17:56:23.06間違えた
def foo
begin
fooに入った直後に実行
yield
ensure
fooから抜ける直前に実行
end
end
foo do
メインのコード
end
0493デフォルトの名無しさん
2011/11/06(日) 19:45:46.55ありがとうございます
プロジェクト管理はredmineっていうぐらい聞くのでredmineが使えないのはきついですね
ご紹介してくださった2つも検討してみます
0494デフォルトの名無しさん
2011/11/06(日) 19:58:07.32def foo
fooに入った直後に実行
yield
ensure
fooから抜ける直前に実行
end
でいい。begin-endは不要
0495490
2011/11/06(日) 19:59:58.95本家redmine比べて足りない機能とかありますか?
ttp://my.candycane.jp/
サンドボックスはこれですttp://my.candycane.jp/projects/show/hoge
0496デフォルトの名無しさん
2011/11/06(日) 20:29:22.55お勧めを教えてください。
0497デフォルトの名無しさん
2011/11/06(日) 20:47:19.66GCCコンパイラがきちんと利用できるのなら自力コンパイルには問題はない
パッケージとして安楽に利用可能なディストリビューションというのは現時点では存在しない
ぜんぶ自力でコンパイルとパッケージ非依存でインストールするのが早道
0498デフォルトの名無しさん
2011/11/06(日) 21:23:14.90まだ文句言いながらrvm使うしかないのか
0499デフォルトの名無しさん
2011/11/07(月) 07:28:19.56今あなたが使っているディストリかな
Linuxならだいたい問題ないかと
最悪ソース落としてコンパイルすりゃいいし
…今使ってるディストリなんてねーよ!ってんなら
Linux板で聞いてくればいいんじゃね
0500デフォルトの名無しさん
2011/11/07(月) 07:31:03.930501デフォルトの名無しさん
2011/11/07(月) 07:44:47.66君がなにも使ってないのはよくわかった
0502デフォルトの名無しさん
2011/11/07(月) 08:11:15.22・ Ruby本体が動作確認に使用している
と
・ ディストリビューションがRubyをサポートしパッケージが最新に追従している
・ 標準追加ライブラリシステムのRubygemsが適切に使用・更新される
・ Rubygemsのライブラリのインストールと管理が平易
・ 外部ライブラリ(に必要なファイル)の導入や自力コンパイルや更新が容易
の間には関連性がない
ぶっちゃけいちばん簡単なのはWindowsのActiveScriptRubyだぞw
0503デフォルトの名無しさん
2011/11/07(月) 08:17:34.21現状でWindowsしか無いというならASRいいよね
個人的にはRuby-mswin32のzipのやつを使ってるが、PATHの通し方知らん人間には流石にすすめないし
0504デフォルトの名無しさん
2011/11/07(月) 08:35:59.12むしろLinuxでなければいけないのかというところから
っていうか、普段からLinux使ってないのならやめとけとしか
0505デフォルトの名無しさん
2011/11/07(月) 08:47:54.990506デフォルトの名無しさん
2011/11/07(月) 11:02:15.60zipのをダウンロードして実行フォルダにパスを通すだけでいいですか?
0507デフォルトの名無しさん
2011/11/07(月) 11:03:13.99フォルダ名をrubyにしてフォルダ名を変更するだけでバージョンを切り替えられるようにしたいのです
0508デフォルトの名無しさん
2011/11/07(月) 11:04:21.990509デフォルトの名無しさん
2011/11/07(月) 11:14:01.72ruby1.8用のパスを読み込むバッチファイルとruby1.9用のパスを読み込むバッチファイルを併用するのがよさげ
0510デフォルトの名無しさん
2011/11/07(月) 11:16:45.14移行期間中は一方をzip展開する奴にして
↓とかやって呼び出すのがいいんじゃね
call setrubyenv19.bat
ruby -x "%~f0"
goto :eof
#!ruby
puts "hello ruby 1.9.x"
0511デフォルトの名無しさん
2011/11/07(月) 11:50:23.24昔はjunction.exeで切替えたりしてたな
0512デフォルトの名無しさん
2011/11/07(月) 11:59:30.91> そこでいう「カレントディレクトリ」って、プロセスの?
> それとも「require 'hoge'」が書かれてあるファイルが置かれているディレクトリのこと?
後者。
468の説明はおかしいと思う。
require_relative "hoge" は、require File.expand_path("hoge", Flie.dirname(__FILE__))
と実質等価、のはず。
0513509と510
2011/11/07(月) 13:58:33.840514デフォルトの名無しさん
2011/11/07(月) 18:40:03.66rvm default # システムのデフォルトに(たぶん1.8.7)
rvm 1.9.2 # 1.9.2に
って感じで簡単に切り替えられるぞ
0515デフォルトの名無しさん
2011/11/07(月) 19:04:08.82だからWindowsだっつってんだろ
0516デフォルトの名無しさん
2011/11/07(月) 19:22:08.14さんくす。
ということは、require_relative()は何に対してrelativeかというと、
require_relativeを呼び出しているファイルを起点にしてrelativeである、
ということですね。
たとえば、今までなら
require(File.dirname(File.dirname(File.dirname(__FILE__))) + "/test_helper")
とか書いていたのが
require_relative("../../test_helper")
と書けるようになるわけか。
これは便利だなあ。
0517デフォルトの名無しさん
2011/11/08(火) 00:24:08.51これをrubyで簡易サーバとして動かす機能ってありませんか?
localhost:8888/test.rbにアクセスできて表示できると楽なんです
0518デフォルトの名無しさん
2011/11/08(火) 00:34:34.850519デフォルトの名無しさん
2011/11/08(火) 00:34:35.700520デフォルトの名無しさん
2011/11/08(火) 01:15:19.67どうすればいいのでしょうか?
<?xml version='1.0' encoding='UTF-8'?>
<A>
<C>2</C>
<U>2011/11/08 01:09:02</U>
<H>
<V>192.168.1.2</V>
<V>192.168.1.2</V></H>
</A>
要素Hに子要素Vを入れて出力した結果が上です。ちゃんとVを整形した形
でだしたいのですが、うまくいきません。どのようにすればいいのでしょうか・
0521デフォルトの名無しさん
2011/11/08(火) 01:30:14.690522デフォルトの名無しさん
2011/11/08(火) 01:34:57.64どーせ、わかんないでしょ
タグでインデントするプログラムなら組めるけど、
そんなプログラムで読み込んで整形なんてやらないと思うから聞いてるだがね。。
0523デフォルトの名無しさん
2011/11/08(火) 01:36:36.280524デフォルトの名無しさん
2011/11/08(火) 01:45:03.050525デフォルトの名無しさん
2011/11/08(火) 01:50:45.81初めてきたの意味わかんない
>>524
やっぱりそうなの?
さっきあきらめてxmlindentをインストールして
cat in.xml | xmlindent -i 4 > out.xml
で強引にやったんだけど、うーん
非効率だね。出力の段階でどうにかしたい。
とりあえず、ありがとう。
0526デフォルトの名無しさん
2011/11/08(火) 02:04:14.800527デフォルトの名無しさん
2011/11/08(火) 02:07:22.80明日ためしてみます。
ちなみに
REXML::Formatters::Prettyでできた^^
0528デフォルトの名無しさん
2011/11/08(火) 19:01:11.41http://example.com/#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
の#aaaaaaaaaaaaaaaaaaaaaaaaのハッシュ部分はクライアントからサーバに転送されるのでしょうか?
0529デフォルトの名無しさん
2011/11/08(火) 22:38:04.920530デフォルトの名無しさん
2011/11/08(火) 22:49:50.57たのしいrubyの2版は現行のrubyを学ぶのには不足、時代遅れなところがあったりするでしょうか
0531デフォルトの名無しさん
2011/11/08(火) 22:55:42.420532デフォルトの名無しさん
2011/11/08(火) 23:44:45.500533デフォルトの名無しさん
2011/11/09(水) 01:22:36.57rubyでは通常はreturnを省略する、ってマッツの本に書いてあった
けどマジ?
0534デフォルトの名無しさん
2011/11/09(水) 01:30:09.97処理途中で戻る時以外はreturn書かないことが多いな。
LISPの影響かも。
0535デフォルトの名無しさん
2011/11/09(水) 01:47:22.22そこでCGIが真っ先に出てくるのなら、あなたが書いてレンタルサーバ上で動かすようなスクリプトはおそらくCGIのはず
0536デフォルトの名無しさん
2011/11/09(水) 02:26:05.56別に書いてもいいけど、決して速い処理じゃないから、
あらゆる自作メソッドに全部律儀にreturnつけてたら全体的に遅くなるよ
「メソッドの最後の処理の値が戻り値(返り値)として自動で返る」で充分な場合は、returnは書かないほうが好ましい
ただ、稀になにがなんでも書かない(returnを書かなくても動作する不自然な構造で作ろうとする)人がいるんだけど、
returnを書いたほうが明快なジャンプ構造になる場合はちゃんと書いて欲しい
遅いったって、そんな目に見えて遅くなるわけじゃない
0537デフォルトの名無しさん
2011/11/09(水) 03:02:06.320538デフォルトの名無しさん
2011/11/09(水) 03:26:39.830539デフォルトの名無しさん
2011/11/09(水) 03:41:50.41えー
0540デフォルトの名無しさん
2011/11/09(水) 04:08:35.30DOS窓だと基本UTF-8は文字化けするけど、netbeansはutf-8の方が都合が良いし
その他のコンソールの場合も考えて対応している文字コードに合わせて出力する文字コード切り替えたいんだけど
どうやったらいいんだ?
0541デフォルトの名無しさん
2011/11/09(水) 05:07:35.100542デフォルトの名無しさん
2011/11/09(水) 05:12:57.940543デフォルトの名無しさん
2011/11/09(水) 05:15:39.111.9.3からはwindowsでもutf-8のまま出力して大丈夫なようになってる
0544uy
2011/11/09(水) 06:41:47.720545デフォルトの名無しさん
2011/11/09(水) 07:20:17.39ダブルクォーテションで囲ってるにも関わらずバックスラッシュnとかtが改行やタブにならずそのまま表示されてしまいます
何が原因でしょうか?
バージョンは1.8.7です。よろしくお願いします
0546デフォルトの名無しさん
2011/11/09(水) 07:37:15.98p "hoge\nfuga" とかしてるとそうなる
p はデバッグ用なのでprintやputsを使う
次からソースも貼ってね
0547デフォルトの名無しさん
2011/11/09(水) 07:42:43.09>>541みたいな人は実際にはWindows持ってないことが多い
0548デフォルトの名無しさん
2011/11/09(水) 07:49:15.00ありがとうございます
ちょっと今手元にPCないので後で試してダメならソース貼ってみます
0549デフォルトの名無しさん
2011/11/09(水) 08:08:19.21強がろうが俺をバカにしようが
このゴミRubyが大失敗超不人気のPerl以下の汚物
だって事実は変わらないの
わかった?負けず嫌いの小学生みたいな負け惜しみ見てると滑稽だよwwww
可哀想になってくるわほんとに
まあお前らも最初は被害者だったんだよな、妄想と大風呂敷に踊らされてよ
でもな、もっと早くに気づいたたゆらはいっぱいいるだろ?
いまでもこんな酔っ払いが吐き戻したゲロみたいな言語を一生懸命庇ってさ
本当の事を指摘している俺がおかしいみたいな感覚になってるんだぞお前ら?www
粋がっちゃったけど結果大失敗でものすごい負け犬感味わってるんだろうから気持ちは解るけどよ
いいかげん現実見つめろや?wwwwな?wwww
実際、今どうなのか言ってみろよ?wwwおい?wwwwww
このゲロみたいなくっせえゴミRubyは使われてるの?
流行ってるの?ヒットしてるの?日本だけだろwww
発表時みたいな状況になってんのかよ?wwwwwwwww
俺Rubyやってるんだぜ!って人前で言えんのお前ら?wwwwああん?wwwwwwwww
ゴミ言語すぎてそんなの人前で言えるわけないよなwww
0550デフォルトの名無しさん
2011/11/09(水) 08:11:40.580551デフォルトの名無しさん
2011/11/09(水) 08:15:18.69前からずっと思ってたんだけど、それ意味ないよね
こちらが知りたいのは試してどうだったかであって、あなたがレスをいつ読んだかどうかじゃないよね
0552デフォルトの名無しさん
2011/11/09(水) 08:24:04.320553デフォルトの名無しさん
2011/11/09(水) 08:30:14.35こればっかりは仕方ないわ
0554デフォルトの名無しさん
2011/11/09(水) 08:38:46.040555デフォルトの名無しさん
2011/11/09(水) 10:31:28.260556デフォルトの名無しさん
2011/11/09(水) 13:58:55.93しよう
0557デフォルトの名無しさん
2011/11/09(水) 14:21:03.630558デフォルトの名無しさん
2011/11/09(水) 15:40:34.58ダメでした
ソースは
#/usr/bin/ruby
print("b\n")
だけです。文字コードの問題でしょうか?
0559デフォルトの名無しさん
2011/11/09(水) 15:43:58.640560デフォルトの名無しさん
2011/11/09(水) 15:44:31.86環境 emachines E729Z
window7
環境を作ろうと、http://www.kkaneko.com/rinkou/ruby/rubyinstaller.htmlを、見つけた
で、ダウンロードした。
で、インストールした。
そしたら、どうしたらいいでしょうか?
0561デフォルトの名無しさん
2011/11/09(水) 15:49:39.03ターミナルとエディタを別画面で操作したかったのでX11でEmacsを起動、編集してたのですが、ここでバックスラッシュを押しても\になるのがダメだったみたいです。試しにターミナル中ででEmacsを起動してみるとバックスラッシュが\になりうまく行きました。
原因がわからず気持ち悪いのですが、ありがとうございました
0562560
2011/11/09(水) 16:16:27.76http://rubyinstaller.org/から、Ruby 1.9.3-p0をダウンロードして、インストールしました。
コマンドプロンプトで、ruby -vをしたら、ruby 1.9.3p0 (2011-10-30) [i386-mingw32]と、でます。
から、インストールを、できたと思います。
次に、helloworld.rbファイルを作って、
ruby helloworld.rbをしましたが、
ruby: No such file or directory -- helloworld.rd (LoadError)に、なります。
どうしたらよいでしょうか?
0563560
2011/11/09(水) 16:29:33.83拡張子の表示を、表示しない設定のため、ファイルの最後に.txtが入っていました。
失礼しました。
0564デフォルトの名無しさん
2011/11/09(水) 16:29:41.64emacs-gtkはなにも設定しない場合、「へ」の隣あたりの、日本語キーボードで円記号が印字されてるキーを押すと \ を入力する
これはもろちんバックスラッシュではなく、YEN SIGN だ
基本的には「ろ」の \ を使え
0565デフォルトの名無しさん
2011/11/09(水) 16:32:48.74キーボード右上あたりの円記号印字キーを押すと ¥ になるので「ろ」を使うかEmacsの設定しとけ
0566デフォルトの名無しさん
2011/11/09(水) 16:33:33.440567デフォルトの名無しさん
2011/11/09(水) 16:38:27.491.9.3がでたようなんですが1.9.2と1.9.3って違いありますか?
アップグレードして1.9.3で書くのに慣れるべきでしょうか?
0568デフォルトの名無しさん
2011/11/09(水) 16:40:46.69初心者スレ的な違いはないと思ってくれていい
1.9.3-p0のpが増えたリリースが出たら1.9.2から移行する予定
0569デフォルトの名無しさん
2011/11/09(水) 16:42:38.68了解しました
0570デフォルトの名無しさん
2011/11/09(水) 17:14:04.511.8.6-p0のトラウマかなんかか
0571デフォルトの名無しさん
2011/11/09(水) 17:30:37.310572デフォルトの名無しさん
2011/11/09(水) 17:55:23.97そんなに心配することはない
0573デフォルトの名無しさん
2011/11/09(水) 18:04:12.120574デフォルトの名無しさん
2011/11/09(水) 18:09:48.00$ gem search json -r
0575デフォルトの名無しさん
2011/11/09(水) 21:22:41.010576デフォルトの名無しさん
2011/11/09(水) 21:35:15.90整形って、うまいことインデントしてくれるモノ?
0577デフォルトの名無しさん
2011/11/09(水) 22:36:37.840578デフォルトの名無しさん
2011/11/09(水) 22:44:43.04インデント付きの文字列表現が欲しいだけなら
標準添付ライブラリのpp(pretty print)を使えばいいのでは?
0579デフォルトの名無しさん
2011/11/09(水) 22:48:24.25テキストモードのIO書き込みがLF改行になっちゃうので
もうちょっと待ったほうがいいかもね
あと、-dオプションつけると
Exception `LoadError' at 省略/lib/ruby/1.9.1/rubygems.rb:1243 - cannot load such file -- rubygems/defaults/operating_system
Exception `LoadError' at 省略/lib/ruby/1.9.1/rubygems.rb:1252 - cannot load such file -- rubygems/defaults/ruby
ってでるのがうざい
実害は無いけどバグなのかな?
0580デフォルトの名無しさん
2011/11/09(水) 22:54:19.010581デフォルトの名無しさん
2011/11/09(水) 23:30:24.10cygwin入れましょうぜ
0582デフォルトの名無しさん
2011/11/10(木) 10:48:28.13puts "こんにちは"で表示されなくなったりするバグとか出ても対処できない
0583デフォルトの名無しさん
2011/11/10(木) 13:15:17.92で
nokogiri使えるの?1.5.0でエラーが出るんだけど
0584デフォルトの名無しさん
2011/11/10(木) 18:30:10.55ありがとうございます
ppというのをマニュアルで読んでみましたがマニュアルの見かたが分らずどのように使えばよいのか分かりません
http://www.ruby-lang.org/ja/old-man/html/prettyprint.html
整形前
{"a":"aaaaaaaa","b":"bbbbbbbbb"}
整形後
{
"a": "aaaaaaaa",
"b": "bbbbbbbbb"
}
みたいに読みやすくできればいいのです
0585デフォルトの名無しさん
2011/11/10(木) 19:07:55.15astyleは?
0586デフォルトの名無しさん
2011/11/10(木) 19:26:40.12require 'json'
data = JSON.parse('{"a":"aaaaaaaa","b":"bbbbbbbbb"}')
print JSON.pretty_generate(data)
0587デフォルトの名無しさん
2011/11/10(木) 20:07:47.33ruby astyleでぐぐってみたのですがrubyに関する情報が見当たりませんでした
わたしの検索の仕方がまずいのかもしれません
>>586
これで思う結果になりました
>>584で書いたマニュアルURLにparseとpretty_generateっていうのが載ってなかったのでやっぱRubyはマニュアル難しいです
0588デフォルトの名無しさん
2011/11/10(木) 20:37:06.69JSON表現はただのStringになってしまう。
それをまた構造をパースしつつインデントを付けて回るより、
pp(to_jsonを呼ぶ前のオブジェクト)
でいいんじゃないの? という話。
0589デフォルトの名無しさん
2011/11/10(木) 21:04:43.050590583
2011/11/10(木) 22:10:26.010591デフォルトの名無しさん
2011/11/11(金) 00:29:46.95を作るspecファイル頂戴
0592デフォルトの名無しさん
2011/11/11(金) 06:29:17.30どうしようと思ってるんだろ?
0593デフォルトの名無しさん
2011/11/11(金) 08:37:02.63下位互換を考えないからこんなことになったのだ
0594デフォルトの名無しさん
2011/11/11(金) 08:41:10.591.9.x=Vista
0595デフォルトの名無しさん
2011/11/11(金) 23:25:12.65あまやかすからバカが湧いてくる。
0596デフォルトの名無しさん
2011/11/12(土) 02:39:08.71書き直さないといけなくてクソだるいだろ
railsで実用的になったのがダメだったのか
0597デフォルトの名無しさん
2011/11/12(土) 10:09:17.94@rubyist_bot←迷惑メール級にいらない
0598デフォルトの名無しさん
2011/11/12(土) 11:14:33.41report for spamしたらRTされなくなるよ
0599583
2011/11/12(土) 13:51:19.15Dir.openで開いて読み込むとその時点でファイル名がwindows-31jになってるんですが
ruby1.9.2です
0600デフォルトの名無しさん
2011/11/12(土) 13:51:53.710601デフォルトの名無しさん
2011/11/12(土) 15:41:23.15一瞬Ruby製のbotかと思った
Rubyに限らずRTとかリプライとかしてくるbotはいっぱいある
ああいうの、RTするならするで@つけない非公式RTにしてくれたらいいのに
0602デフォルトの名無しさん
2011/11/12(土) 18:12:59.97見せかけだけでもいいのですが
新Twitter(http://twitter.com/#!/***)を、open-uriで取得しようとすると
Javascriptが有効である必要がある
と表示されてユーザー情報が表示されません
もし、Open-uriで不可能であれば何を用いれば利用できますか?
0603デフォルトの名無しさん
2011/11/12(土) 18:38:34.99openするときにエンコーディングが指定できるようになってる
open('hogehoge','r:UTF-8')
あとで変更することも出来る
f = open('hogehoge','r')
f.set_encoding('UTF-8')
いきなりファイルから読み込むIO.readなんかだとハッシュオプションで指定する
IO.read('hogehoge',encoding:'UTF-8')
Ruby リファレンスマニュアル
http://doc.ruby-lang.org/ja/1.9.2/class/IO.html
0604デフォルトの名無しさん
2011/11/12(土) 18:55:08.50Dirは、内部ではユニコードで取得してるんだけど、その後filesystemのエンコーディングに変換して返しちゃってるみたいだな。
文句言えば修正してもらえる可能性もあるが、当分無理だろうな
0605デフォルトの名無しさん
2011/11/12(土) 19:54:40.270606デフォルトの名無しさん
2011/11/12(土) 20:35:22.51Dir.open('/', encoding:'UTF-8')
でも、Dir.glob は問答無用でWindows-31Jに変換されちゃうな
0607デフォルトの名無しさん
2011/11/12(土) 20:44:31.600608デフォルトの名無しさん
2011/11/12(土) 20:46:30.410609599
2011/11/12(土) 21:27:40.61詳しい回答ありがとうございます。IOに「ファイル名のエンコーディング」の項目がありました。
読んでいませんでした。すみません。IO.readでエンコードを指定するのにはハッシュを使うのは初めて知りました。
>>606
試してみたらうまくいきました。ありがとうございます。リファレンスには書いてないんですよね。
ハッシュでのオプションの指定というのが今までよく知らなかったので勉強になりました。
ありがとうございました。
0610デフォルトの名無しさん
2011/11/12(土) 21:49:32.70そのためにTwitterでAPIが用意されてるでしょ
0611デフォルトの名無しさん
2011/11/12(土) 22:22:17.31なるほど
引数のエンコーディングと同じエンコーディングで返ってくるのか
0612デフォルトの名無しさん
2011/11/13(日) 08:10:53.22たしかtwitterのスクレイピングは規約違反
API使え
ってか、gem twitter を使えばいいのでは
0613デフォルトの名無しさん
2011/11/13(日) 13:15:36.68書かれているのに、サンプルコードは
h = Hash.new {|hash, key| hash[key] = "foo"}
となっていて気持ち悪いです。
h = Hash.new {|hash, key| "foo"}
ではダメな理由があるのでしょうか?
0614デフォルトの名無しさん
2011/11/13(日) 13:20:40.110615デフォルトの名無しさん
2011/11/13(日) 13:30:53.030616デフォルトの名無しさん
2011/11/13(日) 13:49:27.48privateは随分意味が違うな
0617デフォルトの名無しさん
2011/11/13(日) 14:00:24.330618デフォルトの名無しさん
2011/11/13(日) 16:19:08.630619デフォルトの名無しさん
2011/11/13(日) 17:25:02.80たぶん
h = Hash.new{|hash,key| "foo"}
p h['bar'] # "foo"が返ってくる
p h # だがハッシュはそのまま
p h['bar'] # 何度でもデフォルトブロックが呼ばれる
h = Hash.new{|hash,key| hash[key]="foo"}
p h['bar'] # "foo"が返ってくる
p h # ハッシュも更新されている
p h['bar'] # 二回目以降はデフォルトブロックが呼ばれることはない
0620デフォルトの名無しさん
2011/11/13(日) 17:43:15.930621デフォルトの名無しさん
2011/11/13(日) 18:02:13.37・国産の言語だから
・PythonスレよりRubyスレの住民のほうが親切に回答してくれる人が多いから
・PHPしかできないとバカにされるから
0622デフォルトの名無しさん
2011/11/13(日) 18:04:28.12同じような動作をするものはない
名前は同じだが動作は全く違う
言語構造が違うからそもそも同じ動作になるはずないじゃん、というのが一応の答
実際にいちばん近いのは>>618
「JavaやC++にあるやつをRubyで作ってみようシリーズ」の負の遺産は他にも attr_accessor とかがある
0623デフォルトの名無しさん
2011/11/13(日) 23:48:08.97Class.newではクラス名を指定するときに
ClassName=Class.new do
# 初期化コード
end
とかしないといけないとあるけど
第1引数にシンボルか文字列が来たら、クラス名にする
foo = Class.new :Foo
とか実装予定無いかな…
0624デフォルトの名無しさん
2011/11/14(月) 06:00:27.58foo = Foo = Class.new
これ↓は分かりにくいかな。
foo = class Foo; self end
0625デフォルトの名無しさん
2011/11/14(月) 06:43:03.340626デフォルトの名無しさん
2011/11/14(月) 08:39:42.21:Fooを動的に変更したいならこんなんで
klass = Class.new do ... end
Object.const_set(:Foo,klass) # klassの所にClass.newを埋め込んでも可
0627デフォルトの名無しさん
2011/11/14(月) 09:22:25.03Perl,Python,PHPを置いてRubyを選んだのは何故ですか?
0628デフォルトの名無しさん
2011/11/14(月) 10:49:56.51日本語の部分を英語にすると動きます
ファイルはUTF-8 BOMなしです
どうやって日本語を書いても500エラーが出ないようにできますか?
#!C:\\Ruby193\bin\ruby.exe
print "Content-type: text/html\n\n";
print "あ"
0629デフォルトの名無しさん
2011/11/14(月) 11:23:51.16何故Rubyを学ぼうと思わないのですか?
Perl,Python,PHPを置いてRubyを選ばないのは何故ですか?
0630627
2011/11/14(月) 11:24:54.990631デフォルトの名無しさん
2011/11/14(月) 11:24:57.64-Ku
0632デフォルトの名無しさん
2011/11/14(月) 11:32:20.08俺はPythonやPerlよりも先に学んだからかな
そのお陰でメソッドチェーンしにくいのはどうも使いにくい
PHPはそもそも用途が違うじゃん
0633デフォルトの名無しさん
2011/11/14(月) 11:38:10.45PerlはCPANがあるから使っていたけど言語には不満があった
Rubyは言語的にはPerlよりもずっといいし
gemも充実したからRubyを使うようになった
PHPはテンプレートエンジンだし論外
0634デフォルトの名無しさん
2011/11/14(月) 11:43:12.03#!D:\Programs\Ruby193\bin\ruby.exe -Ku
って書いたら日本語で表示できました!
これっておまじないとして書いておかないとだめみたいなルールなんでしょうかね
これからは-Kuを書くようにします
0635デフォルトの名無しさん
2011/11/14(月) 11:49:46.79入れてないだけだったりして
0636デフォルトの名無しさん
2011/11/14(月) 11:53:22.96コマンドラインで練習してたときは書いてましたがCGIのときはHTMLでmetaのcharsetで文字コード指定するから書かなくていいと思ってました
0637デフォルトの名無しさん
2011/11/14(月) 11:59:07.300638デフォルトの名無しさん
2011/11/14(月) 12:04:48.26別にshebang(#!なんちゃらかんちゃら)書いても2行目に書けるから書いとけ
HTMLのmetaで指定しようがRubyには関係ない
1.9のマジックコメントは必須
-K オプションはあくまで1.8からの以降用だからマジックコメント使っとけな
0639デフォルトの名無しさん
2011/11/14(月) 12:42:19.330640デフォルトの名無しさん
2011/11/14(月) 12:57:37.28Emacsのためにあるとか聞いたような気がするんですが
0641デフォルトの名無しさん
2011/11/14(月) 13:06:11.46すいませんブラウザで表示したときにファイルをUTF-8にしてmetaで文字コードを指定しておけば大丈夫だと思ってました
>>638
これからは2行目に書くようにします
念のため- Kuも書いておいたほうが完璧ですよね
0642628
2011/11/14(月) 13:08:17.71http://jp.rubyist.net/magazine/?0023-Cgirb
を見るとRubyはCGIに向いてないとかかれてました
まつもと先生はcgi.rb に代わるライブラリを公募するって行ってましたが
これは2008年の記事なんですが1.9.3ではもう解決されている話題でしょうか?
0643デフォルトの名無しさん
2011/11/14(月) 13:13:17.740644デフォルトの名無しさん
2011/11/14(月) 13:29:11.92「ファイルをUTF-8にしてmetaで文字コードを指定しておけば大丈夫」だとどこに書いてあった?
0645デフォルトの名無しさん
2011/11/14(月) 13:30:14.39RubyはCGIに向いてないしGUIにも向いてない
0646デフォルトの名無しさん
2011/11/14(月) 15:11:19.03TwitterってRubyでかかれてたらしいのでCGIを使ってると思うんですが
Twitterぐらいのアクセス量でも問題なくアクセスできるのでRubyでCGIやりたいと思った次第です
0647デフォルトの名無しさん
2011/11/14(月) 15:27:43.210648デフォルトの名無しさん
2011/11/14(月) 15:40:52.17CGIに向いてないのはライブラリがうーんって感じなのが大きい
0649デフォルトの名無しさん
2011/11/14(月) 15:49:08.690650デフォルトの名無しさん
2011/11/14(月) 15:58:07.750651デフォルトの名無しさん
2011/11/14(月) 16:07:55.25TwitterはRubyを使ってたけど遅いCGIは使ってないはず
CGI(とCGIの代替になるもの)について調べたほうがいいよ
0652デフォルトの名無しさん
2011/11/14(月) 17:53:05.05mod perlみたいなものがRubyにもあるのですか?
おしえてください
0653デフォルトの名無しさん
2011/11/14(月) 22:02:28.05RubyでウェブといえばRuby on Railsだろ
httpdとアプリがくっついてる
0654デフォルトの名無しさん
2011/11/14(月) 22:07:32.390655デフォルトの名無しさん
2011/11/14(月) 22:50:23.84Ruby on Railsはインストールが分らなくて挫折しました
twitterはnginx+rubyで動いてました
0656デフォルトの名無しさん
2011/11/15(火) 14:37:53.20module Module
class << self
def class_method
とか
module Module
def self.class_method
とか方法があるみたいですが、どっちを使ってますか。
もしくは、使い分けとかあるのでしょうか。
0657デフォルトの名無しさん
2011/11/15(火) 14:56:28.090658デフォルトの名無しさん
2011/11/15(火) 14:58:10.93def を書いて自力でメソッドを定義するぶんにはまったく違いはない
スレ的なおすすめは後者だが、最近の非初心者層には前者の
class C
class << self
# ここでインスタンスメソッドの定義の書き方をするとクラス/モジュールオブジェクトに定義される
end
end
というのが人気
「インスタンスメソッドの定義の書き方」というのがミソで、たとえば
class C
class << self
attr_reader :hoge
end
end
と書くと C.hoge が定義される(参照される変数 @hoge はいわゆるクラスインスタンス変数になる)
メソッドを定義するメソッドとかを使いたい場合は class << self ... endじゃないと逆にめんどくさい
0659デフォルトの名無しさん
2011/11/15(火) 15:42:01.99サンクス。
なるほど特異クラスの方が流行りなんですね。
特異クラスだとインスタンス変数も(メソッドと同じように)
クラスインスタンス変数になるんですね。
0660デフォルトの名無しさん
2011/11/15(火) 23:42:27.12すいません
ある特殊な文字列のみ変換の対象を外し、それ以外は文字変換の対象
にするようなプログラムの例を示してくれると助かります。
例として >のgの文字は変換の対象からはずし、他のgは文字変換の対象とする。もっと具体的に
>>giants is great のような文章中に存在するgを<b>g</b>で囲いたいのですが、普通に全変換していまうと
&<b>g</b>t;となって、実体参照が可笑しくなっていまいます。いいプログラムのやり方が思いつかないのでよろしくお願いします。
0661デフォルトの名無しさん
2011/11/15(火) 23:54:58.22gsub(/(?<!&)g(?!t;)/, '<b>g</b>')
0662デフォルトの名無しさん
2011/11/15(火) 23:58:18.25素直に置換してからやり過ぎてしまった置換だけ元に戻すという手がよいかも。
gsub(/g/, '<b>g</b>').gsub(%r[&<b>g</b>t;], '>')
0663デフォルトの名無しさん
2011/11/15(火) 23:59:18.940664デフォルトの名無しさん
2011/11/16(水) 00:02:11.93require "cgi"
str = ">giants is great"
p CGI.escapeHTML(CGI.unescapeHTML(str).gsub("g", "<b>g</b>"))
0665デフォルトの名無しさん
2011/11/16(水) 00:08:35.020666デフォルトの名無しさん
2011/11/16(水) 00:15:10.170667デフォルトの名無しさん
2011/11/16(水) 04:48:43.62実体参照も置換対象にしてしまう
で、gのみの場合だけ置換して違ったらそのままにする
gsub(/&[A-Za-z]+;|g/){|m| m == 'g' ? '<b>g</b>' : m}
0668660
2011/11/16(水) 08:24:52.80みなさん、ありがとうございます。やはり難しいみたいですね。
実際は変換したい文字はgだけではありません。t gt ; などやすべて文字が
対象です。普通に考えたらきりがありませんので、変換の対象ならないように(実体参照の文字とタグ内の文字)を検索の対象から外したいのです。
イメージとしてはcntC+fで文字検索すると黄色いハイカラーが文字つきまよね?あんな感じでフォームで文字入力して変換した文字をhtmlに吐き出す最終的なものです。
もし、よろしければ、アイデアだけでもいいので良い考えを持っている人がいれば是非宜しくお願いします。ずっと考えても思いつかないんですよね。
0669660
2011/11/16(水) 08:29:13.68○フォームで任意の文字入力して変換した文字をhtmlに吐き出すのが最終的な目標です。
0670デフォルトの名無しさん
2011/11/16(水) 09:00:14.870671デフォルトの名無しさん
2011/11/16(水) 09:16:26.951行で済ませること
0672デフォルトの名無しさん
2011/11/16(水) 09:31:26.90自前で読み込み位置の情報を保持すること
非対象文字列が出るまで1文字ずつ読み込み、非対象文字列が出た時点で
(または、非対象文字列正規表現にマッチする文字位置で元文字列を2つに割って)
非対象文字列の直前までの文字列に対して着色 gsub をかけて、
着色結果に非対象文字列を連結して、
非対象文字列が出るまで1文字ずつ読み込み、非対象文字列が出た時点で
(または、非対象文字列正規表現にマッチする文字位置で元文字列を2つに割って)
非対象文字列の直前までの文字列に対して着色 gsub をかけて、
着色結果に非対象文字列を連結して、
というようなことをえんえんやればいいような気がする
0673デフォルトの名無しさん
2011/11/16(水) 09:41:23.830674デフォルトの名無しさん
2011/11/16(水) 09:56:53.82じゃあ、宜しくお願いします
0675デフォルトの名無しさん
2011/11/16(水) 09:57:53.74試して見ますね
0676片山博文MZ
2011/11/16(水) 10:25:13.440677デフォルトの名無しさん
2011/11/16(水) 10:40:17.76行き着く先繰り返しですよね
ある任意のhtmlのソースを読み込んで、もちろん実体参照はこわれないようにして、表示の一部分のみ変換する
初心者スレではなかったかもしれません
>>673
scanでは結構むずかしです。一文にマッチするパターン、否定するパターンが混在するからです。そのパターンを網羅すると相当なことになります
0679デフォルトの名無しさん
2011/11/16(水) 10:44:53.94お前がアホなだけだ
0680デフォルトの名無しさん
2011/11/16(水) 11:00:38.74scnr = StringScanner.new("ampm & lawson")
rep = ""
m = "a"
while r = scnr.scan(/(&\w+;|#{Regexp.escape(m)}|[\w\W])/)
case r
when m
rep << "<b>" << r << "</b>"
else
rep << r
end
end
0681デフォルトの名無しさん
2011/11/16(水) 11:08:37.930683デフォルトの名無しさん
2011/11/16(水) 12:02:57.31>ある任意のhtmlのソースを読み込んで、もちろん実体参照はこわれないようにして、表示の一部分のみ変換する
質問の最初に、まずこの一文を書くべきだったね
>>660の内容では、スレ住人が単純な文字列置換だと認識してしまうのは当たり前
トップダウンに最初に最終的な目的(上の一文)を書いてから次に具体的な問題を書く、文書作法を身につけなさい
で、最終目的がこれだとしたら、おそらくHTMLのタグ名や属性、文書型宣言、コメント....etcの
マークアップ要素は無視して、生のユーザテキスト部分だけを置換対象にしたいということなんだろ?
そうであるなら、
HTMLパーザでHTMLの構文ツリーを作成して、
そのツリーをルート要素から順に辿りながら、
テキスト要素についてのみ置換を実行する
という処理が必要になる
HTMLパーザについては、たとえばxmlscanのようなライブラリがあるから、
自分に合うものをRAAやRubyForgeで探して利用しなさい
あるいはRacc等の字句解析/構文解析処理の知識があるなら、自力で書くこともできる
0684デフォルトの名無しさん
2011/11/16(水) 12:04:35.76じゃあタグ除外するようにすりゃいいじゃん
0685デフォルトの名無しさん
2011/11/16(水) 12:05:25.040686660
2011/11/16(水) 12:25:44.59その通りの理解です。であるので相当複雑です。説明不足だと思います。
一応いろいろ調べてみます。htmlパーサーですか。やはりツールを使うのか
イメージとしてはyahooのトップページのソースを右クリックで保存して、フォームから任意の文字列を入れて、その文字のみ装飾する(例えば色つけるなど)プログラムを打ちたかったのです。
0687デフォルトの名無しさん
2011/11/16(水) 12:32:57.06真面目にやるならjavascriptで処理。
0688デフォルトの名無しさん
2011/11/16(水) 12:49:54.37jqueryのハイライトプラグインでも使ったほうが手っ取り早い
0689デフォルトの名無しさん
2011/11/16(水) 13:30:36.23俺PHPで文単位に切り分けるプログラムを書いたことあるけど、かなり遅かったよ。
ファイルの大きさに対して指数関数的に処理時間が増加する感じだった。
これたぶんメモリーの使い方が悪いんだよね。
PHPが糞だからとか、お前のコーディングが糞だからって言いたいだろうけど、
たぶんRubyでも誰がやっても同じ結果になるんじゃないかな。
俺がやったやりかたは、ブロック要素を切り分ける必要はないってことと、インライン要素は
切り分ける必要があり、且つ切り分けに何も問題がないって考えで、テキスト側から
切り分けた後、タグの優先順位に従って再合成した。
0690デフォルトの名無しさん
2011/11/16(水) 13:59:47.880691デフォルトの名無しさん
2011/11/16(水) 14:20:08.690692デフォルトの名無しさん
2011/11/16(水) 14:26:47.400693デフォルトの名無しさん
2011/11/16(水) 15:10:11.96スクラッチ
0694デフォルトの名無しさん
2011/11/16(水) 15:57:18.920695デフォルトの名無しさん
2011/11/16(水) 16:00:07.23これなあに?
0696デフォルトの名無しさん
2011/11/16(水) 16:04:45.400697デフォルトの名無しさん
2011/11/16(水) 19:14:34.32Nokogiriとか使えばいのかな?と、gem installして色々試してみた
パースすると実体参照は通常の文字に展開されちゃうんですね
#coding:UTF-8
require 'nokogiri'
require 'cgi'
file = 'nokogiritest.html'
word = /g/
doc = Nokogiri.HTML(IO.read(file))
doc.search('body//text()').each do |node|
next if node.parent.name == 'script'
next if node.parent.name == 'style'
if node.text.match(/#{word}/)
reptext = CGI.escapeHTML(node.text).gsub(/&[A-Za-z]+;|#{word}/){|m| word === m ? "<b>#{m}</b>" : m}
node.replace reptext
end
end
puts doc.to_html
多少HTMLの体裁が変わるけど、こんなんでいいのかな?
あとは、エンコーディングとかをケアすれば
いままでHTMLからのデータ抽出は正規表現でゴリゴリ書いてたけど
HTMLパーサー使うと簡単だったのか
0698デフォルトの名無しさん
2011/11/16(水) 19:43:42.490699デフォルトの名無しさん
2011/11/16(水) 20:25:32.480700デフォルトの名無しさん
2011/11/17(木) 22:03:54.690701デフォルトの名無しさん
2011/11/17(木) 22:21:53.64自転車の補助輪みたいなもん
動作はするがガラガラうるさいし本体の利便性は9割ほどダウン
0702デフォルトの名無しさん
2011/11/17(木) 23:03:15.150703デフォルトの名無しさん
2011/11/17(木) 23:10:55.57a1 = 10
a2 = 20
a3 = 30
・・・
とか延々と書いてあるソースみて卒倒したことがある
0704デフォルトの名無しさん
2011/11/17(木) 23:11:54.800705デフォルトの名無しさん
2011/11/17(木) 23:18:59.720706デフォルトの名無しさん
2011/11/17(木) 23:22:47.780707デフォルトの名無しさん
2011/11/17(木) 23:24:08.940708デフォルトの名無しさん
2011/11/17(木) 23:29:21.840709デフォルトの名無しさん
2011/11/17(木) 23:30:23.56hoge: 'aaa',
fuga: 'bbb',
piyo: 'ccc'
}
for k, v in h
puts "key:#{k}, val:#{v}"
end
h.each do |k,v|
puts "key:#{k}, val:#{v}"
end
0710デフォルトの名無しさん
2011/11/17(木) 23:41:05.80h = {
hoge: 'aaa',
fuga: 'bbb',
piyo: 'ccc'
foo: function() {
return this.hoge + this.fuga + this.piyo
}
}
0711デフォルトの名無しさん
2011/11/18(金) 00:13:33.85考えると、意味的に近く書くには次のようになると思う。
h = Class.new do
@hoge = 'aaa'
@fuga = 'bbb'
@piyo = 'ccc'
class << self
def foo; @hoge + @fuga + @piyo; end
end
end
p h.foo #=> "aaabbbccc"
そこまでして書くもんでもない気がする。
0712デフォルトの名無しさん
2011/11/18(金) 00:27:11.13JavaScriptで無名functionをクロージャとして使うパターンなら、こうか。
h = lambda do
hoge = 'aaa'
fuga = 'bbb'
piyo = 'ccc'
{ foo: -> { hoge + fuga + piyo } }
end.call
p h[:foo][]
0713デフォルトの名無しさん
2011/11/18(金) 00:44:00.460714デフォルトの名無しさん
2011/11/18(金) 00:51:30.240715デフォルトの名無しさん
2011/11/18(金) 00:51:55.380716デフォルトの名無しさん
2011/11/18(金) 01:21:58.130717デフォルトの名無しさん
2011/11/18(金) 03:57:05.45phone_number = "0112510110"
name = "本部"
br = "\n"
(s = "") << br << phone_number << ": " << name << br
if br == "\n"
print s
elsif br == s
print "Why?"
end
BR = "\n"
(s = BR) << phone_number << ": " << name << BR
if BR == "\n"
print s
elsif BR == s
print "Why?"
end
0718デフォルトの名無しさん
2011/11/18(金) 04:42:39.96String#<<はself(左側)を返すから
0719デフォルトの名無しさん
2011/11/18(金) 05:08:36.17s = "abc"
t = s
t << "def"
とすればtだけでなくsも変更されてしまうから。
早いし+=よりも<<を使えってよく言うけどこの点だけは注意ね
0720デフォルトの名無しさん
2011/11/18(金) 07:08:33.73説明はよく読んで使ってくださいという話にしかならんのだが
0721デフォルトの名無しさん
2011/11/18(金) 07:15:11.45破壊的メソッドは警告も無く通っちゃうんだな
0722デフォルトの名無しさん
2011/11/18(金) 07:52:55.92定数はあくまで参照先を変更できないだけだからな
オブジェクトの状態を変更させたくないのであればfreezeする
もっとも、これも結局完璧ではない
freezeされたオブジェクトが参照しているオブジェクトには破壊的変更が効く
0723デフォルトの名無しさん
2011/11/18(金) 09:23:16.820724デフォルトの名無しさん
2011/11/18(金) 15:15:09.62ここの先輩方でnetbeansをご使用している方は快適なのですか?
HSP+公式の専用エディタの経験しかなくて恐縮なんですが
基本的にRubyの開発って高スペックでおこないべき言語なんでしょうか?
0725デフォルトの名無しさん
2011/11/18(金) 15:19:10.97○ NetBeansでの開発は高スペックで行なうべき
0726デフォルトの名無しさん
2011/11/18(金) 15:35:09.560727デフォルトの名無しさん
2011/11/18(金) 15:45:29.56Rubyスクリプト書くのなんて普段使ってるやつでいいから
普段使ってるのがそもそもないという場合もありそうだけど
0728デフォルトの名無しさん
2011/11/18(金) 16:01:05.82netbeans使ってる人なんて少数というか、RubyでIDE使ってる人自体が少数派だと思う。
重さに機能が見合わないし……。
0729デフォルトの名無しさん
2011/11/18(金) 16:24:14.79外に目を向けなさい
短所しか見えてこないはず
0730デフォルトの名無しさん
2011/11/18(金) 16:45:31.58こちらでどうぞ
最高にド低脳な発言してください in ム版(XVII)
http://hibari.2ch.net/test/read.cgi/tech/1179424842/
0731デフォルトの名無しさん
2011/11/18(金) 16:47:10.480732デフォルトの名無しさん
2011/11/18(金) 18:09:17.63自分はphpしかできないのでpythonかrubyをどっちか覚えておきたいのですが短所ってなんですか?
0733デフォルトの名無しさん
2011/11/18(金) 21:39:27.390734デフォルトの名無しさん
2011/11/18(金) 21:45:28.800735デフォルトの名無しさん
2011/11/18(金) 23:03:55.43動的言語はそもそも汎用IDEと相性が悪い上に
Rubyの用途的にそこまで根性入れてRubyを対応させる人も出ない
いつものエディタとターミナルで書いてテストして実行して書いてテストして実行する以上の大掛りなものが必要なら、そりゃ素直にJavaを使えばいい
まさかこのご時世にまさかRubyひとつしか使えないわけでもあるまい?
RubyをLinuxの起動スクリプトに採用させようみたいな痛々しさに似ている
0736デフォルトの名無しさん
2011/11/18(金) 23:06:03.080737デフォルトの名無しさん
2011/11/18(金) 23:08:19.540738デフォルトの名無しさん
2011/11/18(金) 23:13:12.760739デフォルトの名無しさん
2011/11/18(金) 23:17:01.65* 重い
* Emacsで俺IDEを作成済
* IDEの質問がここに持ちこまれると面倒
* 爺さんだから
以上の5点が挙げられる
0740デフォルトの名無しさん
2011/11/18(金) 23:17:03.200741デフォルトの名無しさん
2011/11/18(金) 23:19:05.51スペイン宗教裁判?
0742デフォルトの名無しさん
2011/11/18(金) 23:20:23.93そんなコストかけて作る理由ないしな
そもそもrubyがIDE向けの静的情報持ってないし渡さない
RDEすら破綻しているというのに汎用でとか無理難題
0743デフォルトの名無しさん
2011/11/18(金) 23:22:14.39yes
0744デフォルトの名無しさん
2011/11/18(金) 23:40:35.46思ったよりも多くのRuby対応IDEはあるみたいだね
Ruby Code Editors - GitHub
https://github.com/cwgem/koans-tutorial/wiki/Ruby-Code-Editors
ただ、ruby-talk MLでも「VIMでええやん(英語)」という意見が多いように思う
0745デフォルトの名無しさん
2011/11/18(金) 23:53:26.07REXMLより早いらしいし
0746デフォルトの名無しさん
2011/11/19(土) 00:00:43.65NetBeandsくらいしかないのに
毎度毎度このアホな流れになるよな。
まあ重かったらテキストエディタ使うしかない。
0747デフォルトの名無しさん
2011/11/19(土) 00:09:14.74「使いやすくてRubyの開発効率がアップするようなおすすめIDEは今のところ特にないので自分の使え」という事実で発狂するのは
「IDEを使いこなせずにテキストエディタにしがみつくRubyユーザー」などではなく、単にIDE厨なのでは
0748デフォルトの名無しさん
2011/11/19(土) 00:16:52.83> 今のところ特にないので自分の使え」という事実
アプリオリな事実ですね。わかります
0749デフォルトの名無しさん
2011/11/19(土) 00:17:03.630750デフォルトの名無しさん
2011/11/19(土) 00:21:18.410751デフォルトの名無しさん
2011/11/19(土) 00:56:54.50これしか使ったことないのですが
0752デフォルトの名無しさん
2011/11/19(土) 02:11:52.27自分が使いやすいならそれでいいんじゃないの。
起動が遅かったりときどき妙に重くなる割には大した機能がないから俺は使わないけど。
0753デフォルトの名無しさん
2011/11/19(土) 02:14:00.14何を使ってるの?
0754デフォルトの名無しさん
2011/11/19(土) 02:25:21.511バイトも情報量が増えていないのがすごいなw
0755デフォルトの名無しさん
2011/11/19(土) 03:04:40.03プロジェクトを生成しなくとも単体ファイルを扱える手軽さで
requireしたCモジュールの補完も効いちゃうよってな
PyScripterみたいなのが欲しいな
0756デフォルトの名無しさん
2011/11/19(土) 07:18:31.94たぶんそんなとこだと思うよ
彼がRubyを使っているかどうかも怪しい
使ってなくても煽れるようなことしか書かないし
0757デフォルトの名無しさん
2011/11/19(土) 08:58:48.41意味的+記述の類似性から見て以下が近いのではないだろうか?
(h = Object.new).instance_eval do
@hoge = 'aaa'
@fuga = 'bbb'
@piyo = 'ccc'
def foo; @hoge + @fuga + @piyo end
end
p h.foo #=> "aaabbbccc"
0758デフォルトの名無しさん
2011/11/19(土) 09:51:43.26Windows上でrubyを入力補完できるvim環境をうまく構築できなくてやめてしまった
あれってLinux上なら、簡単に環境を構築できたりするものなの?
0759デフォルトの名無しさん
2011/11/19(土) 10:33:56.09tokuhirom、ma.la?っていう人の話だけ聞きたい
色々なスレで見かけるけど有名らしいね
動画ありませんか?
0760デフォルトの名無しさん
2011/11/19(土) 11:36:44.19入力補完なんてしないよ
使い慣れたエディタでおk
0761デフォルトの名無しさん
2011/11/19(土) 11:45:29.59あらかじめvim(gvim)に習熟していないのなら選択する理由は1ミリもない
Emacsの選択理由もほぼ同じ
0762デフォルトの名無しさん
2011/11/19(土) 12:02:01.45どうしても「IDEが嫌いだから使わない」ということにしたい人がいるようだ。
CやJavaならIDE使うだろ。RubyだとIDEで使い物になるのがないからテキストエディタになるだけで。
0763デフォルトの名無しさん
2011/11/19(土) 12:49:13.77クラスやメソッドが管理しきれないって気がするけど、
Ruby はそういうことで困ることはあんまりないのかな。
0764デフォルトの名無しさん
2011/11/19(土) 13:02:38.880765デフォルトの名無しさん
2011/11/19(土) 13:13:20.12よくもわるくもRubyの使用規模が人力検索と人力管理の範疇を越えてないというだけ
現時点でも、管理がめんどくさいことはまあめんどくさい
0766デフォルトの名無しさん
2011/11/19(土) 14:14:14.690767デフォルトの名無しさん
2011/11/19(土) 14:45:36.28おれはpyhonはしらんが、ruby(rails)ならある程度しってる。
rubyってさあ、他の言語の片手間にやる言語だと思う。これを初心者に
やらせるってはどうかしてる。役に立つとしたらにrails。railsは「開発」は早いが動作は遅い。期日が厳しく、動作すればいいって時に使う感じだな。
後の考慮を考えたら、使う意味もないよ。
つーかさぁ
rubyの魅力の一つの
「よく楽しくプログラム」って書いてあるけど、このような書くということは
具体的に良い所がないということを察してほしい。
0768デフォルトの名無しさん
2011/11/19(土) 14:52:53.720769デフォルトの名無しさん
2011/11/19(土) 15:07:51.77railsなら任せトキーナ(笑)
0770デフォルトの名無しさん
2011/11/19(土) 16:21:01.87俺はC、Java、Rubyその他数種類の言語を工程で使い分ける。
夫々、便利な所も使いにくい所もあるが、今時1つの言語で全部やろうとする方が無謀だしな。
0771デフォルトの名無しさん
2011/11/19(土) 16:32:30.02>> "O'Reilly".gsub( /'/, '\\\'' )
=> "OReillyReilly"
なぜ "O\'Reilly" にならないのでしょうか
0772デフォルトの名無しさん
2011/11/19(土) 16:42:17.28gsub(pattern, replace) -> String
置換文字列 replace 中の \& と \0 はマッチした部分文字列に、 \1 ... \9 は n 番目の括弧の内容に置き換えられます。
置換文字列内では \`、\'、\+ も使えます。これらは $`、$'、$+ に対応します。
$'
現在のスコープで最後に成功した正規表現のパターンマッチでマッチした部分より後ろの文字列です。
最後のマッチが失敗していた場合には nil となります。
0773デフォルトの名無しさん
2011/11/19(土) 17:55:05.160774デフォルトの名無しさん
2011/11/19(土) 17:59:15.37WindowsのbatファイルのようなことをLinuxでやる場合はどっちの言語を選択したらいいですか?
現在はどちらが良く使われているものなのでしょうか?
Linuxのディストリビューションによって標準で採用している言語も違うものでしょうか?
0775デフォルトの名無しさん
2011/11/19(土) 18:14:01.49ブロックを使う書き方だけになってるはず
irb> puts "O'Reilly".gsub(/'/){"\\'"}
O\'Reilly
書こうと思えば第2引数でもエスケープで書けるのだが、正しく読むのも正しく書くのもめんどくさい
irb> puts "O'Reilly".gsub(/'/,"\\\\'")
O\'Reilly
irb> puts "O'Reilly".gsub(/'/,'\\\\\'')
O\'Reilly
0776デフォルトの名無しさん
2011/11/19(土) 18:41:31.32\を二重エスケープすればいい
p "a'b".gsub(/'/, '\\\\\'') #=> "a\\'b"
p "a'b".gsub(/'/, "\\\\'") #=> "a\\'b"
""の中で\文字を表すのは\\だから
"a\'b"じゃなくて"a\\'b"な。
でもめんどいよね。
0777デフォルトの名無しさん
2011/11/19(土) 18:51:19.46バッチファイル相当なら、PythonでもRubyでもなく
シェルスクリプトだと思うぞ
0778デフォルトの名無しさん
2011/11/19(土) 18:55:35.980779デフォルトの名無しさん
2011/11/20(日) 22:49:27.56fixtureを扱うPlug-inですが特徴は下のような感じです
1.yamlよりもcsvを優先する
2.migrationでテーブル構成が変わっても、ロードを停止しないで、カラムの変更点を検知して値を補完する
3.テーブル名と、fixtureのファイル名を一致させないでも自由なロード&ダンプが出来る機能
4.FactoyGirl風の読み込みフィルタで、Fixtureのデータを加工しながら読み込む事が出来る
世間的にはFactoryGirlの流れですが、csvでデータを作ってExcelの方が性に合っていたので
これまでのfixtureの欠点を解決する方向で出来ないかな、と
自分で入れたり改良してきたりしていたgemの機能をひとまとめにして見ました
0780779
2011/11/20(日) 22:50:36.39流してください…(汗
0781デフォルトの名無しさん
2011/11/21(月) 12:06:38.36↑
文字列とユニコードを相互変換したいのですが
便利なメソッドは搭載されてますか?
0782デフォルトの名無しさん
2011/11/21(月) 12:21:42.11ruby-1.9.2> puts "\u3042"
あ
ruby-1.9.2> puts 0x3042.chr('UTF-8')
あ
ruby-1.9.2> p 'あ'.ord.to_s(16)
”3042”
ruby-1.9.2> 'あいう'.each_codepoint{|codep| p codep.to_s(16)}
"3042"
"3044"
"3046"
1.8.7 はpack/unpack必須でめんどくさいっすな
ruby-1.8.7> puts [0x3042].pack('U*')
あ
ruby-1.8.7> p 'あ'.unpack('U*')
”12354”
ruby-1.8.7> p 'あ'.unpack('U*').map{|x| x.to_s(16)}
["3042"]
0783デフォルトの名無しさん
2011/11/21(月) 12:24:53.77ありがとうございます
puts 'あ'.ord.to_s(16)を実行すると82a0が帰ってきます
ruby1.9.3p0です
0784デフォルトの名無しさん
2011/11/21(月) 12:32:02.10最初 puts でやってて、p のほうが戻り値わかりやすいと思って変えて、ここだけ手で書いたら案の定
ruby-1.8.7> p 'あ'.unpack('U*')
[12354]
pack/unpack は Ruby 1.8.7 でも Ruby 1.9.x でも動く
ruby-1.8.7> p 'あいう'.unpack('U*').map{|x| x.to_s(16)}
["3042", "3044", "3046"]
1.9.x では Encoding 指定不足なときコケるかと思うがそこまで面倒見れんとか書いてたらそのまんまだ
>>783
その日本語文字は UTF-8 ではなく Shift_JIS (というか CP932) だ
UTF-8 の文字を ord にかけろ
ruby-1.9.2> p 'あ'.encode('CP932').ord.to_s(16)
"82a0"
ruby-1.9.2> p 'あ'.encode('UTF-8').ord.to_s(16)
"3042"
0785デフォルトの名無しさん
2011/11/21(月) 13:20:23.43勉強になりました
rubyは文字コードに厳しいですね
0786デフォルトの名無しさん
2011/11/21(月) 13:28:11.06Shift_JISなものを渡して、それがUTF-8になったときのUnicode表現をよこせというのはわりと逆ギレに近い
0787デフォルトの名無しさん
2011/11/21(月) 13:38:27.65結局、渡される文字のエンコーディングの自動判定が難しいので自力で指定してくれという部分に帰着してしまうが
この文字列のエンコーディングが何かというのを意識するのは、意識のしかたを覚えてしまえば決して難しくはない
…というか、意識しなくて済むようになる
めんどくさいように思うのは最初だけ
飼い慣らされてしまうともいう
0788デフォルトの名無しさん
2011/11/21(月) 13:53:36.22これなんだよなあ
文字コード考えた人たちがこうならないようにしといてくれれば
煩わしくならなかったんだけど
0789デフォルトの名無しさん
2011/11/21(月) 18:39:50.62先日Ruby1.9.2p290をttp://rubyinstaller.org/よりダウンロードしたインストーラを用いてXPへインストールしました
そこで早速インタプリタirbを利用したところをエラーが出てしまいました……(長いので次レスに載せます)
購入した入門書によるとirbや-rdebugは標準で添付されているとのことですが、
何か他にインストールもしくはダウンロードしなければならないモノがあるのでしょうか?
0790デフォルトの名無しさん
2011/11/21(月) 18:40:49.75C:/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2095:in `expand_path': non-absolute home (ArgumentError)
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2095:in `_rl_read_init_file'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2078:in `rl_read_init_file'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:2499:in `readline_initialize_everything'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:3730:in `rl_initialize'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rbreadline.rb:4737:in `readline'
from C:/Ruby192/lib/ruby/site_ruby/1.9.1/readline.rb:40:in `readline'
from C:/Ruby192/lib/ruby/1.9.1/irb/input-method.rb:115:in `gets'
from C:/Ruby192/lib/ruby/1.9.1/irb.rb:139:in `block (2 levels) in eval_input'
from C:/Ruby192/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
from C:/Ruby192/lib/ruby/1.9.1/irb.rb:138:in `block in eval_input'
from C:/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:188:in `call'
from C:/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:188:in `buf_input'
from C:/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:103:in `getc'
from C:/Ruby192/lib/ruby/1.9.1/irb/slex.rb:205:in `match_io'
from C:/Ruby192/lib/ruby/1.9.1/irb/slex.rb:75:in `match'
from C:/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:286:in `token'
from C:/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:262:in `lex'
(次レスに続きます)
0791デフォルトの名無しさん
2011/11/21(月) 18:41:30.11from C:/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
from C:/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
from C:/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
from C:/Ruby192/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
from C:/Ruby192/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
from C:/Ruby192/lib/ruby/1.9.1/irb.rb:70:in `block in start'
from C:/Ruby192/lib/ruby/1.9.1/irb.rb:69:in `catch'
from C:/Ruby192/lib/ruby/1.9.1/irb.rb:69:in `start'
from C:/Ruby192/bin/irb:12:in `<main>'
(エラー出力ここまで)
0792デフォルトの名無しさん
2011/11/21(月) 19:25:26.37rbreadline.rbでぐぐれば解決方法説明してくれてるBlogがみつかるよ
0793デフォルトの名無しさん
2011/11/21(月) 19:35:04.86解決しました
ありがとうございます
0794デフォルトの名無しさん
2011/11/21(月) 20:49:16.22使い所はどんな場合なんですか?
これがあるおかげでこんな処理がすっきりかける!みたいな。
0795デフォルトの名無しさん
2011/11/21(月) 20:56:12.62これを使うために構造を変えるのはよくない
0796デフォルトの名無しさん
2011/11/21(月) 21:35:02.83使いどころは「クラスに属する変数を使いたいけど、継承関係を超えて共有されると困る」という場合。
使用例は知らね
0797デフォルトの名無しさん
2011/11/21(月) 21:41:49.48つまり、完全自作スクリプトではほとんど出番がない(attr_accessorで作れるという差はあるけど…)
gemとかにして公開する場合は、そのクラスを継承して新しい改造クラスを作る人が出る可能性があるから、
継承で持ち越されるクラス変数に設定値を入れる構造はまずい
0798デフォルトの名無しさん
2011/11/22(火) 16:10:59.35お前は長男か。
あまりにも自分本位すぎる。
0799デフォルトの名無しさん
2011/11/22(火) 16:52:00.140800デフォルトの名無しさん
2011/11/22(火) 17:00:28.31解決したありがとう → 次男
解決したよありがとうおにいちゃん → 三男
0801デフォルトの名無しさん
2011/11/22(火) 17:01:08.82書かないところが自分本位だという話だと思う。
0802デフォルトの名無しさん
2011/11/22(火) 17:39:06.020803デフォルトの名無しさん
2011/11/22(火) 18:30:38.44ぐぐってBlogみつけただけじゃirbの調子はよくならない
しかもBlogの記事も環境変数HOME等をクリアしろとかあくまでその場しのぎなもの
トラブルの原因になったと思われる環境(Cygwinの有無や環境変数の値など)、
実際に自分はどうやって回避したのか、まで書いてくれれば本当はよかった
0804デフォルトの名無しさん
2011/11/22(火) 18:40:13.65>>793はBlogに書いてあることをそのまま実行しただけと推定するのがまともな思考だな。
0805デフォルトの名無しさん
2011/11/22(火) 18:56:12.390806デフォルトの名無しさん
2011/11/22(火) 20:12:15.710807デフォルトの名無しさん
2011/11/22(火) 20:30:38.60「ここがわかんない」とかじゃなくて丸投げだとスルーされる可能性は高い
0808デフォルトの名無しさん
2011/11/22(火) 20:36:05.750809デフォルトの名無しさん
2011/11/22(火) 21:00:01.55Rubyで宿題出すようなとこはこのスレくらいは見てるので、丸写しするとむしろ減点になるぞ
っていうか、授業で習った部分だけでプログラムを書くのは部外者には意外と難しい
0810デフォルトの名無しさん
2011/11/22(火) 21:14:17.55俺なんて宿題じゃなくて趣味でいつも初歩レベル?の質問をいつもここでしてたのに
0811デフォルトの名無しさん
2011/11/22(火) 21:16:22.42このスレをチェックしてるわけがない
0812デフォルトの名無しさん
2011/11/22(火) 21:18:48.890813デフォルトの名無しさん
2011/11/22(火) 23:01:51.85def lect(letter,height,width)#長方形
(1..height).map do |n| letter*width end
end
def emp(height,width)#空白
(1..height).map do |n| " "*width end
end
def horizon(l_pattern,r_pattern)
#上二つの模様を左右に並べる。
end
これのhorizonが全く分からなくて困ってます。ヒントにはzipメソッドを使うとか。
0814デフォルトの名無しさん
2011/11/22(火) 23:13:54.56なんとなく、
*** ++++
*** ++++
*** ++++
++++
みたいな出力をさせたいんじゃないかなと思うのだがっていうかhorizonの2つの引数なんだ
0815デフォルトの名無しさん
2011/11/22(火) 23:22:07.67引数はこの二つの模様の事です。宿題には左の模様、右の模様って書いてあったから勝手に作ったけどもしかしてこの引数にlectとempが入るのかな。
0816デフォルトの名無しさん
2011/11/22(火) 23:24:24.38一般教養なら結構Rubyやる講義結構あるみたいだよ。
日本語で調べやすくて、それなりにちゃんとしたプログラムが書けて、おまじないが少なくて、
と、講義で取り扱うにはわりと条件がいいからかな。
0817デフォルトの名無しさん
2011/11/22(火) 23:31:57.14lect と emp から「各行に並ぶ文字列」の配列がそれぞれ返ってくるから、
lectの結果.zip(empの結果)
すればよろし。
…rectだよね?
0818デフォルトの名無しさん
2011/11/22(火) 23:38:29.42元ネタはHaskell本かしら
0819デフォルトの名無しさん
2011/11/22(火) 23:48:34.60irbで確認しましたけどそれでどうしたらいいのでしょう。
0820デフォルトの名無しさん
2011/11/22(火) 23:55:12.160821デフォルトの名無しさん
2011/11/23(水) 00:03:54.71こんなんですが、甘えさせて頂きます。
0822デフォルトの名無しさん
2011/11/23(水) 00:21:17.880823デフォルトの名無しさん
2011/11/23(水) 00:40:19.520824デフォルトの名無しさん
2011/11/23(水) 01:02:58.60def rect(char, height, width)
(((char * width) + "\n") * height).chomp
end
def emp(height, width)
rect(' ', height, width)
end
def horizon(pattern1, pattern2)
pattern1.lines.zip(pattern2.lines).collect{|i| i.collect{|k| k.chomp}.join}.join("\n")
end
def vertical(pattern1, pattern2)
pattern1 + "\n" + pattern2
end
def double_horizon(pattern)
horizon(pattern, pattern)
end
def double_vertical(pattern)
vertical(pattern, pattern)
end
h, w = 5, 8
x, y = rect('-',h,w), rect('*', h, w)
puts horizon(x, y), '', vertical(x,y), '', double_horizon(x), '', double_vertical(y)
こういうこと?
0825デフォルトの名無しさん
2011/11/23(水) 01:13:48.650826デフォルトの名無しさん
2011/11/23(水) 01:24:35.02h = w = 8
a, b = emp(h,w), rect('*', h, w)
l1 = double_horizon(double_horizon(horizon(a,b)))
l2 = double_horizon(double_horizon(horizon(b,a)))
puts double_vertical(double_vertical(vertical(l1,l2)))
でいいじゃん。おしまい。
一回自分で考えて書き直さないと多分ばれるよ、ここ写したの。
0827デフォルトの名無しさん
2011/11/23(水) 01:42:33.23「プログラムは何故動くのか」を買ってきた。
C言語とかってかなり難しいんだな・・・Rubyでプログラミング初めて良かった。Cなら確実に挫折してた。
ありがとうRuby。
0828デフォルトの名無しさん
2011/11/23(水) 02:00:58.35http://codepad.org/GmJZsqD0
zipとcollect使ってチェック柄できますた
0829デフォルトの名無しさん
2011/11/23(水) 07:06:31.960830デフォルトの名無しさん
2011/11/23(水) 07:36:20.13後は自力でやってみます。
助かりましたありがとうございました!
0831デフォルトの名無しさん
2011/11/23(水) 07:37:01.32rect('*', 3,2) は
**
**
**
という黒マス用長方形を描くための一連のデータを返すと考えるのが妥当
empが白マス用長方形
初期値が '*' と 3 と 2 なら
** ** ** **
** ** ** **
** ** ** **
** ** ** **
** ** ** **
** ** ** **
** ** ** **
** ** ** **
** ** ** **
** ** ** **
** ** ** **
** ** ** **
** ** ** **
** ** ** **
** ** ** **
という図形になるようなプログラムを作れという課題だろう
0832デフォルトの名無しさん
2011/11/23(水) 13:27:00.180833デフォルトの名無しさん
2011/11/23(水) 13:28:22.940834デフォルトの名無しさん
2011/11/23(水) 13:32:26.750835デフォルトの名無しさん
2011/11/23(水) 21:34:02.14っていう時間を秒に変換するマクロってありませんか?
:でパースして14*60 + 53ってやらないとダメですか?
0836デフォルトの名無しさん
2011/11/23(水) 21:51:19.370837デフォルトの名無しさん
2011/11/23(水) 22:17:24.31irb(main):001:0> str = "14:53"
=> "14:53"
irb(main):002:0> if /^(¥d+):(¥d+)$/ =~ str then $1.to_i * 60 + $2.to_i else nil end
=> 893
これではダメなの?十分に短いコードだとと思うけど....
0838デフォルトの名無しさん
2011/11/23(水) 22:19:19.89偶然とはいえ返り値にフイタ
0839デフォルトの名無しさん
2011/11/23(水) 22:37:20.38なんか僕が書いたコードと全然違いますね
こういう書き方勉強になりました
0840デフォルトの名無しさん
2011/11/23(水) 22:57:13.220841デフォルトの名無しさん
2011/11/23(水) 23:33:32.69…あ、違うんだ
分と秒の区切り文字も : でいいんだっけ?
0842デフォルトの名無しさん
2011/11/23(水) 23:38:00.88分:秒フォーマットなのでしょう。
0843デフォルトの名無しさん
2011/11/23(水) 23:38:32.29rpm作ろうとcheckinstallというので作成してみが、
インストールできるが、アンインストール後に余計なファイルが残る。
0844デフォルトの名無しさん
2011/11/23(水) 23:57:29.71よろしい
だから、 時:分と 分:秒 を字面で見わけることはできない
0845デフォルトの名無しさん
2011/11/24(木) 00:01:59.04まあデフォルトでRuby1.8.2やRuby1.8.5がインストールされる環境もあるということは認識しておいたほうがよ…くても対応なんてできんわwwww
0846デフォルトの名無しさん
2011/11/24(木) 00:04:30.282.0で対応するの?
0847デフォルトの名無しさん
2011/11/24(木) 00:20:48.461.9.3ではopenできるんじゃなかったっけ
0848デフォルトの名無しさん
2011/11/24(木) 00:31:30.86これでも出来る。(1.8.7、1.9.2)
require 'time'
s = "14:53"
p Time.parse(s).min * 60 + Time.parse(s).sec
0849デフォルトの名無しさん
2011/11/24(木) 00:32:55.000850デフォルトの名無しさん
2011/11/24(木) 00:39:36.57namespace :foo do
task :bar do ... end
task :baz do ... end
end
としたとき、rake -Tで
foo:bar
foo:baz
とでてくるけど、task foo を定義するのはどうしたらいい?
ちょうど、ブラウザで/foo/ にアクセスするとデフォルトで /foo/index.html にアクセスするようなかんじ。
task :default
を定義したらいいのだと思ったけど、違うみたい。
0851846
2011/11/24(木) 00:39:51.88http://gonbee774blog.blog41.fc2.com/blog-entry-168.html
0852デフォルトの名無しさん
2011/11/24(木) 00:40:48.871.9で扱えないと何で1.8?
それ以前に1.9で扱えるし
0853デフォルトの名無しさん
2011/11/24(木) 00:41:08.96それ、単に14が無視されてないか?
0854デフォルトの名無しさん
2011/11/24(木) 00:49:04.43あö
をopenしてみたけど1.8.7はアウトで1.9.3はOKだったよ
0855デフォルトの名無しさん
2011/11/24(木) 10:58:00.95なんでブログの記事なの?
いや、わりとマジで
0856デフォルトの名無しさん
2011/11/24(木) 11:14:40.400857デフォルトの名無しさん
2011/11/24(木) 15:07:05.42> pattern1.lines.zip(pattern2.lines).collect{|i| i.collect{|k| k.chomp}.join}.join("\n")
完成したんですがここのとこだけよく分からないのです。どうなってるんですか?
0858デフォルトの名無しさん
2011/11/24(木) 15:43:32.21横レスだけど、>>824を(勝手に)折り曲げてみた。これなら読めるかな?
pattern1.lines.zip(
pattern2.lines
).collect { |i|
i.collect { |k| k.chomp }.join
}.join("¥n")
0859デフォルトの名無しさん
2011/11/24(木) 16:03:19.000860デフォルトの名無しさん
2011/11/24(木) 18:16:47.70irb> "foo \n bar \n baz".lines
=> #<Enumerator: "foo \n bar \n baz":lines>
irb> _.zip("123 \n 456 \n 789".lines) # irb において _ はさっき実行した式の返り値
=> [["foo \n", "123 \n"], [" bar \n", " 456 \n"], [" baz", " 789"]]
irb> _.collect{|i| i.collect{|k| k.chomp } }
=> [["foo ", "123 "], [" bar ", " 456 "], [" baz", " 789"]]
irb> [1, 2, 3].collect{|e| e * 2 }
=> [2, 4, 6]
まだわからなければどこの何がわからないか具体的に書いたほうがいいよ
0861デフォルトの名無しさん
2011/11/24(木) 19:28:29.07require 'time'
Time.parse('14:53') #=> 2011-11-24 14:53:00 +0900
時:分 と認識するようですな
というわけで
(Time.parse('14:53')-Time.parse('00:00')).div(60) #=> 893
0862デフォルトの名無しさん
2011/11/25(金) 15:42:56.76collectの中にcollectがあるのがよく分からないです。あと二つ目のcollectに付くjoinも。
0863デフォルトの名無しさん
2011/11/25(金) 16:01:24.89初心者が回答してるんだと思いたい
0864デフォルトの名無しさん
2011/11/25(金) 23:38:32.33>>862
まずはcollectの後ろについたjoinについて
これはcollectした結果にさらにjoinを適用するということ
たとえば ["a", "b", "c"].collect{|str| str.upcase }.join は
["A", "B", "C"].join に評価されて、これはさらに "ABC" に評価される
あと二重のcollectだけど、collectするデータが二重の配列(配列の配列)なのと対応してる
irb> [['a', 'b'], ['x', 'y']].collect{|inner_array| p inner_array }
["a", "b"]
["x", "y"]
=> [["a", "b"], ["x", "y"]]
irb> [['a', 'b'], ['x', 'y']].collect{|inner_array| inner_array.collect{|char| char.upcase }}
=> [["A", "B"], ["X", "Y"]]
irb> [['a', 'b'], ['x', 'y']].collect{|inner_array| inner_array.collect{|char| char.upcase }.join }
=> ["AB", "XY"]
irb> [['a', 'b'], ['x', 'y']].collect{|inner_array| inner_array.collect{|char| char.upcase }.join }.join
=> "ABXY"
自分でirbで(できれば値をあれこれ変えながら)試すと理解が速いと思うよ
あと各メソッドについてマニュアル読んでなかったら読む
0865デフォルトの名無しさん
2011/11/26(土) 02:48:42.14pattern1とpattern2をそれぞれ"**\n**\n**", "--\n--\n--"だとすると、
linesすることで["**\n", "**\n", "**"], ["--\n", "--\n", "--"]というものが作れる(実際は配列じゃないけど便宜上)
["**\n", "**\n", "**"].zip(["--\n", "--\n", "--"])で返ってくるのは
[["**\n", "--\n"], ["**\n", "--\n"], ["**", "--"]]という配列の配列。
この大きな配列全体に対してcollect{|i| ... }すると、 i には["**\n", "--\n"]こういう配列が入る。
二回目のcollectや最初のjoinはこの小さい配列に対するもので、"**\n"と"--\n"から改行を取り除いた上でjoinして
"**--"こういう文字列にする。
これを繰り返して全体のcollectが済んだ時点で
["**--", "**--", "**--"]という感じの配列が返ってくるからjoin("\n")で間に改行を挟みながら連結すると
"**--\n**--\n**--"
**--
**--
**--
つまり
"**\n**\n**"
**
**
**
と
"--\n--\n--"
--
--
--
を横に連結したものが返ってくる、って寸法。
0866uy
2011/11/26(土) 06:15:11.83み づ ら い
0867デフォルトの名無しさん
2011/11/26(土) 10:42:57.410868デフォルトの名無しさん
2011/11/26(土) 10:56:07.000869デフォルトの名無しさん
2011/11/26(土) 18:14:11.66>>865
とてもわかりやすくて理解出来ました。ありがとう。もっと勉強します。
0870デフォルトの名無しさん
2011/11/26(土) 20:27:00.23ブラウザでHTMLページに使うときの「パス」と、ファイルの場所を表す「パス」を、区別して名前をつけたいんだけど、どんな名前にすればいいでしょうか。
たとえば
HTTPリクエストで /~user/foo/bar.html というパスが指定されて、
それがファイルシステム上では /home/user/public/foo/bar.html というパスに相当する時、
path1 = '/~user/foo/bar.html'
path2 = '/home/user/public/foo/bar.html'
としているんですが、性質の違うものなのに両方にpathという名前を使っているので混乱します。
なにか両者を使い分ける、いい名前はないでしょうか。
他の人に聞いたら、virtual path と real path というのはどうかと言われたんですが、これはよく使われる名前でしょうか。
0871デフォルトの名無しさん
2011/11/26(土) 20:47:34.23片方だけでも意味が通るし、勘違いも起こらないかと思う
あと Ruby あんまし関係ないな
0872デフォルトの名無しさん
2011/11/26(土) 20:55:35.50uri1 = '/~user/foo/bar.html'
path1 = '/home/user/public/foo/bar.html'
が意図を表せていいんじゃないかな
'/~user/foo/bar.html' も、定義上は相対URIであることには間違いないわけだし
0873デフォルトの名無しさん
2011/11/26(土) 23:43:41.25環境変数PATH_INFOに入るな。
fs_path, uri_path とかでもいいと思う。(fsは分かりづらい?)
あと、言語によらない話題なので、
クラス名・変数名に迷ったら書き込むスレ。Part20
http://hibari.2ch.net/test/read.cgi/tech/1311942721/
をご紹介。
0874デフォルトの名無しさん
2011/11/27(日) 10:15:05.96さんくす。
url_pathとfs_pathを使うことにしました。
0875デフォルトの名無しさん
2011/11/27(日) 10:54:50.91fsではなにがなんだかわからない
挙げられているうちで最悪のパターン
0876デフォルトの名無しさん
2011/11/27(日) 11:39:43.19回答者が Ruby 初心者である可能性を考慮に入れないと
>>872
Ruby では変数名 uri は標準の URI オブジェクトであることが強く期待される(クラス名の downcase)
ただの文字列に単なる uri という変数名をあてがうのは「URI や URN と呼ぶのが正しい」などという主張とは全く関係なく好ましくない
じゃあ URI 文字列をなんて呼ぶのがいいんだという問題が残るんだが
… url でいいんじゃね(弱気
0877デフォルトの名無しさん
2011/11/27(日) 11:51:15.950878デフォルトの名無しさん
2011/11/27(日) 12:01:04.92その理屈で行くと、変数名にpathって付けた時点で
「Pathnameオブジェクトであることが期待される」ってことになって
pathって変数名も好ましくないことになるんじゃないか?
0879デフォルトの名無しさん
2011/11/27(日) 12:09:45.46filesystem path だろう
Apacheがリクエストに含まれるパスを
実際のファイルシステムにマッピングするんだから
0880デフォルトの名無しさん
2011/11/27(日) 12:40:50.54>クラス名の downcase
0881デフォルトの名無しさん
2011/11/27(日) 12:51:49.62たぶん>>875はそういう「fsとは何か」ということについての講釈を聞きたかったのではないと思うぞ
0882デフォルトの名無しさん
2011/11/27(日) 14:07:21.90Webアプリの開発してる人ならfs_pathの近くにurl_pathがあれば
ああfsってファイルシステムのことだなと見当つけられるでしょ?
そういった文脈があれば「なにがなんだかわからない」ような代物ではない
0883デフォルトの名無しさん
2011/11/27(日) 14:09:05.390884デフォルトの名無しさん
2011/11/27(日) 14:14:41.67どこが勝手につけた条件?
なんか最近このスレ変にいちゃもんつける人が増えたなあ
かといって役にたつアドバイスをするわけではなく
0885デフォルトの名無しさん
2011/11/27(日) 14:24:13.60そんなん、たとえば変数定義のところを見れば一発だ
適宜内容をデバッグ表示させてもいい
しかし、変数名問題というものはそういうものではないはず
0886デフォルトの名無しさん
2011/11/27(日) 14:31:26.860887デフォルトの名無しさん
2011/11/27(日) 14:39:48.79「とにかく短く、わかりやすさは人力でカバー」では20世紀と変わらない
ファイルシステムのパスなら filesystem_path か system_path、いいとこ filepath くらいだ
>>870のそれこそ文脈で、 fs と接頭詞に略して何も思わない時点でかなりヤバい
0888デフォルトの名無しさん
2011/11/27(日) 14:42:38.58逆にfile system以外の単語を思いつかないから個人的には許容範囲だわ
0889デフォルトの名無しさん
2011/11/27(日) 14:45:36.59snake_caseが一般的な時点で不可避ではあるけど……
0890デフォルトの名無しさん
2011/11/27(日) 14:50:32.28file_pathを見て「fileってなーに?」と考える人はおそらくいない
system_pathを見て「いや安易にsystemと言われましても送信先のクライアントシステムかもしれませんしアプリケーション自体をシステムと呼」とか考えるアスペはまずいない
0891デフォルトの名無しさん
2011/11/27(日) 15:33:04.76おそらく>>881,883はそんなアスペ症患者の一人なのではないかと....
0892デフォルトの名無しさん
2011/11/27(日) 15:37:44.730893デフォルトの名無しさん
2011/11/27(日) 16:03:34.540894デフォルトの名無しさん
2011/11/27(日) 16:25:16.690895デフォルトの名無しさん
2011/11/27(日) 16:30:48.710896デフォルトの名無しさん
2011/11/27(日) 16:46:52.55そういう話ではないと思う
0897デフォルトの名無しさん
2011/11/27(日) 18:02:34.590898デフォルトの名無しさん
2011/11/27(日) 18:14:25.120899デフォルトの名無しさん
2011/11/27(日) 18:19:51.13ここにもアスペが一人....
0900デフォルトの名無しさん
2011/11/27(日) 18:22:57.98>>882
>Webアプリの開発してる人ならfs_pathの近くにurl_pathがあれば
>ああfsってファイルシステムのことだなと見当つけられるでしょ?
>そういった文脈があれば「なにがなんだかわからない」ような代物ではない
おっしゃる通りです。
「url_path」と「fs_path」が対比されて使われているので、fsだけで十分わかります。
頻繁に登場する名前に「filesystem_path」なんて長すぎて。弊社が使うのはRubyであってJavaじゃないので。
0901デフォルトの名無しさん
2011/11/27(日) 18:55:36.96>>890は
「fsは思考に一手間入るからダメ」という主張だと思うよ。
でもsystem_pathで思考に一手間入るのはアスペだけ、という話。
俺もsystem_pathあたりが妥当だと思う。
>>900
Rubyに「変数名は短く」なんて習慣はないがね。
0902デフォルトの名無しさん
2011/11/27(日) 19:03:03.71year = m[1]; mon = m[2]; day = m[3]; hour = m[4]; min = m[5]
というのを簡潔に書くには
_, year, mon, day, hour, min = m.to_a
という方法でいいでしょうか。
もっといい方法があればおしえてください。
0903デフォルトの名無しさん
2011/11/27(日) 19:12:53.02_, min, hour, day, month, year = Time.parse(m).to_a
0904デフォルトの名無しさん
2011/11/27(日) 19:13:59.16require 'time'
_, min, hour, day, month, year = Time.parse(str).to_a
0905デフォルトの名無しさん
2011/11/27(日) 19:15:55.66year, month, day, hour, min = m[1..5]
0906デフォルトの名無しさん
2011/11/27(日) 20:44:08.620907デフォルトの名無しさん
2011/11/27(日) 21:01:08.74ダミー変数でしょ、これ
0908デフォルトの名無しさん
2011/11/27(日) 21:27:12.24irb で誤爆する
0909デフォルトの名無しさん
2011/11/27(日) 22:40:19.49関数型言語でのタプルのパターンマッチ構文と良く似た書き方になるんだね
0910デフォルトの名無しさん
2011/11/28(月) 12:46:50.41個人的にはあまり使ってないけど
irb> /(?<hour>\d\d):(?<min>\d\d):(?<sec>\d\d)/ =~ '12:44:02'
=> 0
irb> [hour, min, sec]
=> ["12", "44", "02"]
正規表現を =~ の左辺にもってこないとタグの変数に代入されないので注意
0911デフォルトの名無しさん
2011/11/28(月) 12:57:53.18右辺部分はまあ好きにせえ
0912デフォルトの名無しさん
2011/11/28(月) 13:05:59.40>>904のコードには注意がいる
だったらのように多少文字数が増えてもt.hourなどの名前でアクセスすべきじゃないかな
0913デフォルトの名無しさん
2011/11/28(月) 13:08:11.76スコープに入るのがtだけという利点もある
0914デフォルトの名無しさん
2011/11/28(月) 13:17:34.42ただ、多重代入の魔境っぷりは知っておいたほうがいいとは思う
0915デフォルトの名無しさん
2011/11/28(月) 17:19:33.32名前つきキャプチャを使うと
MatchDataがHashっぽくなるよね
m = /(?<hour>\d\d):(?<min>\d\d):(?<sec>\d\d)/.match('12:44:02')
=> #<MatchData "12:44:02" hour:"12" min:"44" sec:"02">
[m[:hour], m[:min], m[:sec]]
=> ["12", "44", "02"]
余談だけど
名前つきキャプチャを使うと通常のグルーピングがキャプチャしなくなるのはダメ仕様だと思う
他の処理系や正規表現ライブラリでは名前付きでも無しでも両方有効で混在できるのに、Rubyだけ異質
0916デフォルトの名無しさん
2011/11/28(月) 20:27:37.62[email protected]じゃちょっと…と思うのですが
0917デフォルトの名無しさん
2011/11/28(月) 20:42:07.290918デフォルトの名無しさん
2011/11/28(月) 20:50:28.06ちなみに「元の配列の1番目から最後まで順に取り出して配列のフリをする指示オブジェクト」を作るだけなので、効率やメモリ消費は基本劣化しない
こんなので新たに大きな配列を作るなんて、とか考える必要はないのでどんどん使え
0919デフォルトの名無しさん
2011/11/28(月) 21:09:41.79例えば、hoge.erbとして
<%= 2*ARGV[0].to_i %>
のようなファイルを用意し、
$ eruby hoge.erb 3
とすると
6
と表示するような。
環境はCentOS 5.7のeruby 1.0.5 ruby 1.8.5です
0920デフォルトの名無しさん
2011/11/28(月) 21:45:36.85日本語でおk
0921デフォルトの名無しさん
2011/11/28(月) 22:57:48.85この記法で返ってくるオブジェクトは元オブジェクトと要素メモリを共有しているので
両者の分消費されるわけではない。巨大な配列の場合も心配しなくてもよろしい。
0922デフォルトの名無しさん
2011/11/29(火) 00:04:35.29見事な通訳っぷりだけどそれはさておき
ary = [1, 2, 3]
ary2 = ary[0..-1]
ary[0] = 10
ary2 #=> [1, 2, 3]
書き換え時にコピーされるってこと?
できたらポインタちょうだい
0923デフォルトの名無しさん
2011/11/29(火) 00:18:09.20C のソース読んだほうが早いと思う
0924デフォルトの名無しさん
2011/11/29(火) 01:03:13.40サンクス。Cとか読み間違えるからマニュアル等に記述が欲しかったが仕方ない
array.cのrb_array_modify()あたりか
ary = [1,2,3]; ary[0..-2].each{|elem|p elem}みたいに
書き替えずに参照するだけなら元配列のコピーは起こらないって理解でいいかな
0925デフォルトの名無しさん
2011/11/29(火) 03:56:36.55あーそうか-1ってありましたね
ありがとうございます
0926デフォルトの名無しさん
2011/11/29(火) 04:58:49.34a[1..-1].to_enum
0927デフォルトの名無しさん
2011/11/29(火) 11:34:40.18配列のスライス作ったときにはコピーはおこらず
どちらかの配列が変更されたときに初めてコピーされる
でも、その共有状態を解除できない
a=Array.new(10000000)
b=a[1..-1] # スライスを作って共有状態に
b=nil #スライスへの参照をなくす(つもり)
GC.start #スライスを確実にGCしたい
a.push(0) # それでも、実際にコピーが発生してから 元配列を変更
その後、スライスから実配列になったものは、どこからも参照されてないのでGCされる
0928デフォルトの名無しさん
2011/11/29(火) 11:49:35.05pattern =STDIN.gets.chomp!
regexp = Regexp.new(pattern,nil,"e")
実行するとwarning : encoding option is ignored -e
とでます。
ShiftJISにしたりしたんだけど実行出来ないです。どうしたらいいすか?
0929デフォルトの名無しさん
2011/11/29(火) 12:08:28.620930デフォルトの名無しさん
2011/11/29(火) 12:32:46.020931デフォルトの名無しさん
2011/11/29(火) 12:34:19.270932デフォルトの名無しさん
2011/11/29(火) 12:41:12.15つリファレンスマニュアル
0933デフォルトの名無しさん
2011/11/29(火) 12:55:47.07広瀬雄二著の正規表現の章のサンプルプログラムであったのですよ、、、
0934デフォルトの名無しさん
2011/11/29(火) 13:17:46.021.9 でそのまま動くとは限らないから 1.8 にするか、
リファレンスマニュアルにあたって仕様を確認した方が良いよ。
0935デフォルトの名無しさん
2011/11/29(火) 14:55:50.12他の本借りてみます。初心者にオススメの本あったら教えてください。
0936デフォルトの名無しさん
2011/11/29(火) 15:06:16.640937デフォルトの名無しさん
2011/11/29(火) 15:09:04.83Rubyクックブック。>>928からしてたぶん読める
0938デフォルトの名無しさん
2011/11/29(火) 15:09:54.610939デフォルトの名無しさん
2011/11/29(火) 16:23:13.910940デフォルトの名無しさん
2011/11/29(火) 16:39:35.69たとえばキーボード打ったことがないとか
0941デフォルトの名無しさん
2011/11/29(火) 16:54:27.42クラスはなんかドットの前にある大文字で始まるやつで、モジュールはわけわかんないからいらない、
というレベルで必要なのはレシピブックだと思う
0942デフォルトの名無しさん
2011/11/29(火) 17:02:22.52お金払わずにこれに相当する知識とテクニックをネットと自力で勉強することはもろちんできるが、本があると10分の1くらいの時間で済む
下手すりゃ1年かけて独習したものが中途半端に古い不完全で抜けのある知識だけだったりするんだが、
これらの本があるだけでそれを越えるクオリティと量のものを1ヶ月で完全に習得できたりする
先人がRubyに関して10年近くうだうだやってきたことの集大成なので、立ち読みでもいいから素直に読め
0943デフォルトの名無しさん
2011/11/29(火) 17:10:18.740944デフォルトの名無しさん
2011/11/29(火) 17:29:17.980945デフォルトの名無しさん
2011/11/29(火) 18:36:19.53今年授業でjavaを始めて、最近rubyに手を出し始めました。かなりちんぷんかんぷんなんでrubyでちゃんと勉強しようかと思い本を手にとった次第ですね。
0946デフォルトの名無しさん
2011/11/29(火) 18:44:04.32Ruby1.8.5なんてもう誰も使ってないからフォローできない
eRubyを今さら以下略っていうかC実装で標準添付じゃないから読むのめんどい
erbのように引数をぜんぶファイル名とみなして消費する実装というのは結構あるので、コマンドラインオプションで気を遣っていなければ無理だと思う
0947デフォルトの名無しさん
2011/11/29(火) 19:03:44.74yum で入れたのだとダメみたいだね。
Subversion の最新版では対応しているので、コンパイルして試したらいけたよ。
ttp://modruby.net/ja/index.rbx/eruby/download.html
0948デフォルトの名無しさん
2011/11/29(火) 19:13:10.23大袈裟ではない
あれらの本は、(脱)初心者のレベルを容易に一定のレベルまで引き上げることができる
だからこそレシピブックやクックブックが望まれてきたんだ(PerlやPythonのようにね)
イヤな言い方だが、Ruby1.8.6黎明期に自力でやっていた人はレシピブックがなかったせいで時間を大損してるんだぞ
今の初心者はロクに苦労も時間もかけずに基本とテクニックを習得してしまってハングリー精神に欠けるとか嫉妬しても許すw
0949デフォルトの名無しさん
2011/11/29(火) 19:22:34.93まだ軽く立ち読みしたけどまだあんまり種類が無いみたいで
0950デフォルトの名無しさん
2011/11/29(火) 19:31:41.04まあ、1.8ではだましだましやってるってだけで早晩ブチ当たる問題なので、避けては通れないものではあるんだけど
Rubyの書籍は変なのが売れ残ってるだけだったりするので注意
わからんかったら教えたりスルーしたり煽ったり叩いたりするので聞いてみるといい
0951デフォルトの名無しさん
2011/11/29(火) 19:47:42.09おれはrubyの負の部分であると言えるpack,unpackで苦労したけどな
0952デフォルトの名無しさん
2011/11/29(火) 20:32:58.22Pythonとか他のスクリプト言語だとどうやるんだろうか
なんか、うまいバイナリの扱い方があるのかな
0953デフォルトの名無しさん
2011/11/29(火) 20:49:06.530954デフォルトの名無しさん
2011/11/29(火) 20:56:16.44なんでC風で諦めちゃったのかね
0955デフォルトの名無しさん
2011/11/29(火) 21:35:43.41もともとそれらは(そしてRubyも)テキスト処理の為に設計された言語だから、
当たり前といえば当たり前だったりする
0956デフォルトの名無しさん
2011/11/30(水) 02:52:14.151.8.6が出たころにはレシピブックもうあったよ
うちの初版は2004年発行で1.8.1対応だ
ちなみにその初版はいまだに使えるけど
オライリーのクックブックはまったく使ってない
あの実用度は本家をしのいでる
0957デフォルトの名無しさん
2011/11/30(水) 04:02:40.43Pythonもたいしてかわらない
PerlやRubyのほうが書式文字列が充実してるけど
http://www.python.jp/doc/2.4/lib/module-struct.html
Rubyでは宣言的に書けるBinDataがなかなか便利
複雑なバイナリフォーマットになると結局pack/unpackと手続き型のお世話になるけど
http://bindata.rubyforge.org/
0958デフォルトの名無しさん
2011/11/30(水) 04:06:25.92http://hachoir.org/index.html
http://construct.wikispaces.com
0959デフォルトの名無しさん
2011/11/30(水) 15:19:22.14> eRubyでARGV引数を取りたいときはどうすれば良いですか?
>
> 例えば、hoge.erbとして
> <%= 2*ARGV[0].to_i %>
> のようなファイルを用意し、
> $ eruby hoge.erb 3
> とすると
> 6
> と表示するような。
erbだと
erb hoge.erb 3
とやったら、「3」というファイルを探しにいってエラーになるな。
erubisだとhoge.erbを「<%= 2*@arg.to_i %>」にして
erubis -c '@arg=3' hoge.erb
とすればいけるね。
引数が複数なら erubis -c '@a=1;@b="X";@c=[true,false]' hoge.erb かな。
テンプレートにちょろっとデータを渡して実験したい場合にはそれなりに便利かな。
0960デフォルトの名無しさん
2011/11/30(水) 15:23:21.73なお
ttp://www.slideshare.net/kwatch/erubis
の14ページに詳しいことが書いてある。
0961デフォルトの名無しさん
2011/11/30(水) 20:42:32.18なんか解決策ないですか。
irb起動するのにいちいち2秒〜3秒待たされてしまい、困ってます。
なおirb起動しっぱなしにすればいいというのはなしでお願いします。
0962デフォルトの名無しさん
2011/11/30(水) 20:44:42.230963デフォルトの名無しさん
2011/11/30(水) 20:46:40.560964デフォルトの名無しさん
2011/11/30(水) 20:59:43.190965デフォルトの名無しさん
2011/11/30(水) 21:37:08.94よし、おじさんにkwsk 教えてください
0966デフォルトの名無しさん
2011/11/30(水) 21:44:32.60人間ぽく見せるためにランダムにリクエスト間隔を空けるとか、
いろいろ工夫する楽しみがある…かも。
0967デフォルトの名無しさん
2011/11/30(水) 21:48:24.33何の話?
0968uy
2011/12/01(木) 03:26:05.70誤爆、つまりミスをしても
それを伝えないで
「あ」っつってブラウザ閉じてとんずらこくカスがいるのが、このム板
0969デフォルトの名無しさん
2011/12/01(木) 09:16:44.610970デフォルトの名無しさん
2011/12/01(木) 12:22:25.290971デフォルトの名無しさん
2011/12/01(木) 12:26:35.440972デフォルトの名無しさん
2011/12/01(木) 12:34:42.380973デフォルトの名無しさん
2011/12/01(木) 18:32:16.95>>512の
require File.expand_path("hoge", Flie.dirname(__FILE__))
と>>468の
require File.expand_path("hoge")
って普通に>>468で間違って無いと思うんだけど、File.dirname(__FILE__)がカレント(".")以外を
返すときってあるの?
0974デフォルトの名無しさん
2011/12/01(木) 18:59:33.050975デフォルトの名無しさん
2011/12/01(木) 19:39:25.030976デフォルトの名無しさん
2011/12/01(木) 20:43:09.700977k
2011/12/02(金) 12:34:42.36rake db:migrate
と入力しマイグレーションを実行すると、
== AddTestData: migrating ====================================================
-- product()
rake aborted!
An error has occurred, all later migrations canceled:
となって、終了してしまいます。自分は調べ方が下手なので調べ方・対策があればよろしくお願いいたします。
0978デフォルトの名無しさん
2011/12/02(金) 13:56:32.670979デフォルトの名無しさん
2011/12/02(金) 14:05:21.82rakeは強制終了!
エラー発生、以降のmigrationはキャンセルされました:
で何かわかると思ってるのかね。
この程度の英語も読まないならプログラミングなんてやめた方がいい。
調べ方が云々じゃなくて、エラーメッセージを読んですらいないのが丸わかり。
0980k
2011/12/02(金) 14:44:03.52こちらがコロン後です。長いので分けていきます。
undefined method `price_must_be_at_least_a_cent' for #<Product:0x5689048>
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/attribute_methods.rb:260:in `method_missing'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_suppo
rt/callbacks.rb:178:in `send'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_suppo
rt/callbacks.rb:178:in `evaluate_method'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_suppo
rt/callbacks.rb:166:in `call'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_suppo
rt/callbacks.rb:90:in `run'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_suppo
rt/callbacks.rb:90:in `each'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_suppo
rt/callbacks.rb:90:in `send'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_suppo
rt/callbacks.rb:90:in `run'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_suppo
rt/callbacks.rb:277:in `run_callbacks'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/validations.rb:1029:in `valid_without_callbacks?'
0981k
2011/12/02(金) 14:44:34.90C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/callbacks.rb:286:in `valid?'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/validations.rb:1008:in `save_without_dirty'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/dirty.rb:79:in `save_without_transactions'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/transactions.rb:179:in `send'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/transactions.rb:179:in `with_transaction_returning_status'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/connection_adapters/abstract/database_statements.rb:66:in `transaction'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/transactions.rb:129:in `transaction'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/transactions.rb:138:in `transaction'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/transactions.rb:178:in `with_transaction_returning_status'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/transactions.rb:146:in `save'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/transactions.rb:158:in `rollback_active_record_state!'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/transactions.rb:146:in `save'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/base.rb:693:in `create'
./db/migrate//20111202052032_add_test_data.rb:4:in `up_without_benchmarks'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/migration.rb:280:in `send'
0982k
2011/12/02(金) 14:45:09.38C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/migration.rb:280:in `migrate'
C:/InstantRails/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/migration.rb:280:in `migrate'
(__DELEGATION__):2:in `__send__'
(__DELEGATION__):2:in `migrate'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/migration.rb:480:in `migrate'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/migration.rb:556:in `call'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/migration.rb:556:in `ddl_transaction'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/migration.rb:479:in `migrate'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/migration.rb:466:in `each'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/migration.rb:466:in `migrate'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/migration.rb:394:in `up'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activerecord-2.2.2/lib/active_record
/migration.rb:377:in `migrate'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/tasks/databases.rake
:111
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execu
te'
0983k
2011/12/02(金) 14:46:04.51C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execu
te'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invok
e_with_call_chain'
C:/InstantRails/ruby
/lib/ruby/1.8/monitor.rb:242:in `synchronize'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invok
e_with_call_chain'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invok
e'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invo
ke_task'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_
level'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each
'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_
level'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `stan
dard_exception_handling'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_
level'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
0984k
2011/12/02(金) 14:47:17.20C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `stan
dard_exception_handling'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
C:/InstantRails/ruby/bin/rake:19:in `load'
C:/InstantRails/ruby/bin/rake:19
以上です。よろしくお願いいたします。
0985デフォルトの名無しさん
2011/12/02(金) 14:52:42.960986デフォルトの名無しさん
2011/12/02(金) 14:59:13.06はい、ご苦労様、それじゃ次は>>5を読んでね。
これでこのスレでの回答はおしまい。
0987デフォルトの名無しさん
2011/12/02(金) 15:00:35.700988デフォルトの名無しさん
2011/12/02(金) 15:03:21.75次 ス レ の 季 節 で す よ
0989k
2011/12/02(金) 15:05:59.14ありがとうございます。スレ違いでしたね。失礼しました;
拝見してきます!
0990デフォルトの名無しさん
2011/12/02(金) 18:38:31.24竹内, 28, 173, 69
…
みたいなテキストファイルがあってこれを配列に格納してクラスで定義したいのですが、インスタンスの初期化はどこでしたらいいのですか?
new_array =[]
while input_line =gets
new_array <<Person.new(input_line)
end
格納はこんな感じになると思うのですが、初期化するときの引数はinput_lineで大丈夫ですか?
0991デフォルトの名無しさん
2011/12/02(金) 18:43:27.24name, age, height, weight = line.chomp.split(/,\s+/)
new_array << Person.new(name, age, height, weight)みたいにする
だれか次すれを
0992デフォルトの名無しさん
2011/12/02(金) 18:46:20.89スレ立ていってきます
0993デフォルトの名無しさん
2011/12/02(金) 18:53:53.76Ruby 初心者スレッド Part 47
http://hibari.2ch.net/test/read.cgi/tech/1322819329/
0994デフォルトの名無しさん
2011/12/02(金) 19:29:03.80テキストファイルは実際はもっとデータがあるので格納の際は一行丸ごと読み込みたいのですが、、
格納のやり方は上記のものとして、初期化はどうやったらいいですか?要素番号を用いる感じでいいのでしょうか。
0995デフォルトの名無しさん
2011/12/02(金) 19:31:32.940996デフォルトの名無しさん
2011/12/02(金) 20:15:45.26よくわからないけど、こんな感じ?
class Person
def initialize(name, age, height, weight); ... ; end
end
ary = ['相澤', 20, 169, 70] # getsしたlineを加工したもの
Person.new(*ary)
0997デフォルトの名無しさん
2011/12/02(金) 23:17:15.66/,""^" ̄゛゛、ヽ
',l -‐' ー- "、|
〔::::::〕‐〔:::::::〕‐b)
__| ,(__)、 |"__ いいかお前ら、ちゃんと(次スレの)コンセンサスを得ろよ
/ _ ヽ、_=__/ _ \ じゃないと俺は何もしないからな
∧_/ / lVヽ ̄/V/ / \/ヽ
ヽ' / / l/ / /
0998デフォルトの名無しさん
2011/12/03(土) 00:12:43.470999デフォルトの名無しさん
2011/12/03(土) 00:12:55.111000デフォルトの名無しさん
2011/12/03(土) 00:13:27.5310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。