[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 23:56 / Filesize : 233 KB / Number-of Response : 880
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 33



1 名前:デフォルトの名無しさん mailto:sage [2009/12/05(土) 14:21:25 ]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

★注意★ Ruby 1.9.1 は初心者にはまだ時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。
   (理由:現時点では多くの有名ライブラリやアプリが 1.9.1 に完全対応していないためです。)
 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 を習得すれば将来スムーズに 1.9 系に移行できるでしょう。

関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。

■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
 ・モジュール名やエラーメッセージでググる
 ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/
 ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・エラーメッセージ(自力で訳さずなるべくそのままで)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。

■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

267 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 22:47:55 ]
>>265
前スレでみたのは
gem which foo

268 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 22:57:27 ]
$" または $LOADED_FEATURES

269 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 23:04:43 ]
>>267
それは求めるものじゃないなー

>>268
それはファイル名だけだよね。ディレクトリ名も含めたパスが欲しい。


270 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 23:10:31 ]
それは提供されてない

271 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 23:10:37 ]
>>265
結局こうしました
$ ruby -r nkf -e 'puts $:.map {|x| Dir.glob("#{x}/nkf*") }.flatten'
/usr/local/lib/ruby/1.8/i686-darwin10.0.0/nkf.bundle



272 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 23:45:36 ]
>>266
svn.ruby-lang.org/repos/ruby/tags/v1_8_7/NEWS

273 名前:デフォルトの名無しさん mailto:sage [2009/12/15(火) 23:59:23 ]
>>272
Thanks.

わーおEnglishじゃん!開発者は日本人が多いのに、ぷんぷん!

274 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:05:46 ]
>>272
ていうか、これ読んで分かるの開発陣だけだから。
Ruby利用者がよんでもわけわからん。

275 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:12:20 ]
これを元にした噛み砕いたユーザー向け解説というのを誰か第三者が作ってきちんとフォローすべきなんだ
でも、Ruby(特に日本の)ではそういうのが特にないんだよね
商売っけがないというか、目立ちたがり屋がいないというか

ちなみにオフィシャルの仕事ではないのでこれ以上は望んじゃ駄目よ
取り巻きの役目



276 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:15:59 ]
user visible feature changes と書いてあるんだが…


277 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:18:07 ]
これとRubyリファレンスマニュアルを併用すればきっと・・!

278 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:18:17 ]
るびきち氏の日記に載ってたのはリリース当時欲紹介されてた気がする。
ttp://d.hatena.ne.jp/rubikitch/20080508/ruby187

279 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 00:31:54 ]
>>278
神いわゆるゴッド

280 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 01:55:08 ]
>>275
>ちなみにオフィシャルの仕事ではないのでこれ以上は望んじゃ駄目よ

なんで?

ちなみにPythonはα版でもこれだけの出来。
ttp://docs.python.org/dev/whatsnew/2.7.html

これだけの差がありながら、「Rubyはドキュメントが揃ってる」とぬかす古参上級者がほんとジャマ。



281 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 02:03:55 ]
Andrew Kuchlingは取り巻きどころかPythonの主要開発者だな
Python3.0のWhat's newはGuido書き下ろしだし
ドキュメントは取り巻きに任せろってのはガンかもしれないね

でもこれ本スレでやったらいいよ
初心者にはいい迷惑だ

282 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 02:11:24 ]
>>280
人材が究極的に少ないから
現状に加えて一般向けにドキュメント揃えろなんて言ったらどんどんリリースが遅くなる
当事者だからという理由だけでできない人に無理やりやらせる理由はない
得意な人に任せておけばいい

まあ初心者スレ向けでないのとドキュメント揃ってるほうだと言ってる人間が障害になってるのには同意

283 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 10:33:28 ]
rubyの勉強をしろと言われ、perlのプログラムを渡された
雰囲気は似てるからrubyに書き換えて動作させてみろという
perlもrubyもほとんど触ったことない俺にどうしろっていうんですか…
書き換え方にコツとかあるんでしょうか?元のperlプログラムにはサブルーチンにハッシュやら配列やらが結構混ざって泣きそう

284 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 10:43:08 ]
>>283
とりあえず元のプログラムが何をするものなのか理解しないことには
始まらないと思われ

285 名前:221 mailto:sage [2009/12/16(水) 11:02:32 ]
>>247
ありがとう。24時間は超えてしまうのでTimeはやはり使わない方向でいきます



286 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:06:02 ]
質問です。
Rubyで簡単なGUIアプリを作ろうとしているのですが、現在何がオススメでしょうか?
環境は、Ruby 1.8.7、Windowsです。

できれば、あくまでできればですが、実行環境では追加のリソース(ランタイム)が必要ないものがよいのですが…
例えばexeに固めれば単体で実行できる、もしくはRubyとそのライブラリがあれば動くと言ったようなものです。

下記サイトでは、shose(why氏とともにサイト死んでる?)、Ruby-GNOME2、wxRubyがよく使われているとありますが、
みなさんは何を使われてますか?
Ruby GUI調査2008
www.pressure.to/ruby_gui_survey/index-ja.html

287 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:14:52 ]
>>286
> Rubyで簡単なGUIアプリを作ろうとしているのですが、現在何がオススメでしょうか?
RubyではGUIアプリケーションは作らない

288 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:15:28 ]
Windowsで1.8でexe単体なら自分だったらvruby+Exerb+UPX
でも上の縛りがなければwxRuby+Ocra
あとやったことないけどWebアプリ+RubyStationも面白そう

289 名前:286 mailto:sage [2009/12/16(水) 11:24:17 ]
shoesはgithubにありましたけど、Javaのprocessingみたいな感じなんですね。ちょっと用途が違うとおもた
samples at master from shoes's shoes - GitHub
github.com/shoes/shoes/tree/master/samples/


>>287
(´;ω;`)ブワッ
昔Delphi使ってたんでそっちでもいいんですが、できれば最近なれたRubyでGUI作れたらなとか思うわけですよ…

>>288
必ずしもexe単体でなくてもいいです。

webアプリは面白そうなんですが、とりあえず、vrubyとwxRuby試してみます

290 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:26:15 ]
たぶん、GUIというイベントドリブンな概念とRubyの記法が合わないんだと思う

291 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:28:25 ]
イベントハンドラにprocオブジェクトを登録することがごく自然に出来るわけで。


292 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:31:44 ]
実装の便利度に差がありすぎるんだよな
中にはHSPからシェル経由でスクリプト呼んで引数連携させたほうがマシといゲフンゲフン

293 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:43:07 ]
>>271
パスに{}[]が含まれると良くない

294 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 11:51:03 ]
>>293
一般に使ってもらうならともかく、自分の用が果たせたならそれでいいんじゃないか?


295 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 13:56:13 ]
wxRubyをgemで入れてみたのですが、wxruby-2.0.1-x86-mswin32-60がインストールされたのですが、
これて古くないんでしょうか?wxWidgetの0.6.0だったりしませんか?

ruby -v #=> ruby 1.8.7 (2008-06-20 patchlevel 22) [i386-mswin32] 古いな…



296 名前:uy ◆e6.oHu1j.o mailto:sage [2009/12/16(水) 17:55:27 ]
純粋にrubyのレベルをあげたいです
小さなツールとWebアプリケーションとGUIゲームくらいならrubyで作れるようになったんですが
ルビリストと呼ばれるようになる為の次のステップ教えてください

297 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:05:30 ]
いろいろな言語を使う。
とくにRubyのバックグラウンドを育んだLispやSmalltalkを。


298 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:09:09 ]
Lispやれ(EmacsLisp以外ならなんでもいい)
PerlがまだならPerlも齧れ
オブジェクト指向の関係でJavaもできるといいんだが

299 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:12:54 ]
>>296
もの凄い勢いでRuby初心者スレ/本スレ/ruby-list等
あらゆるサイトの質問にコテハンで答えまくる
質の高い回答が数千溜まるとGoogleに雇ってもらえる

300 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:14:14 ]
ルビリストってなんですか?

301 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:27:26 ]
googleって実際優秀な人材だけってわけじゃないんだよねぇ
広告塔の人間もたくさんいるし

302 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:47:10 ]
>>296
>ルビリストと呼ばれるようになる為の次のステップ教えてください

るびまの添削記事を読むのがいいと思う。
ttp://jp.rubyist.net/magazine/?0010-CodeReview
ttp://jp.rubyist.net/magazine/?0011-CodeReview
ttp://jp.rubyist.net/magazine/?0013-CodeReview
ttp://jp.rubyist.net/magazine/?0015-CodeReview
ttp://jp.rubyist.net/magazine/?0017-CodeReview


303 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 18:51:14 ]
>>282
>人材が究極的に少ないから
>現状に加えて一般向けにドキュメント揃えろなんて言ったらどんどんリリースが遅くなる
>当事者だからという理由だけでできない人に無理やりやらせる理由はない
>得意な人に任せておけばいい

ばかをいえ、ChangeLogやNEW FEATURESなんて、開発当事者ぐらいしか詳しくは知らないんだから
開発当事者が書くべきだろ。
こんなことすらも嫌がる開発陣ってなんなの?

どうせ開発リソースが増えたところで、ドキュメントに回すつもりないんだろ。

304 名前:283 mailto:sage [2009/12/16(水) 19:00:12 ]
昼間は無事だったのに規制が…
283です。
>>284
jcorrectとかいうやつだったかな
プログラムを実行して文章を入力すると、cabochaの解析結果と一緒に文章の校正を促すメッセージが出た
これを実行するためにcabochaとかいろいろ入れてた
プログラムを読んでいると、サブルーチンから値を順に渡していたり$foo->{$var}->とか見たことないのがいっぱいでなんかもうキーーーーってなったんだ…

305 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 19:06:54 ]
>>303
言ってること自体には賛同できるけどそういうのは本スレでどうぞ



306 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 23:36:21 ]
質問です。
実行環境:Xubuntu9.10、Ruby1.9.1
使用ライブラリ:tk、pty、expect
やりたいことは、外部プログラム(対話型のCUIプログラム)をRubyスクリプト内から実行する際に、
外部プログラムの実行結果(標準出力。エラーが発生して終了したならその時のエラー出力)
を取得したいのですが、何か方法はあるでしょうか。
ネットを見るとsshやtelnetのサンプルが転がってますが、
sshやtelnetが出力するメッセージ自体やエラー文(はあるのかな?)を処理するようなものがなく、
どうするんだーと悩んでます。

307 名前:デフォルトの名無しさん mailto:sage [2009/12/16(水) 23:43:41 ]
シェルからパイプでつなぐ
` ... ` (バッククォート)でコマンド実行して出力取る
手の込んだことがしたければ require 'open3'

308 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 00:23:55 ]
wxRubyとかGUIアプリの話がでたついでに聞きたいんですけど、
↓みたいにマニフェストをruby/bin/において、Windows XP移行のLuna(?)風のUIにする方法があるんですが、
Ruby on Windows: Windows XP Visual Style Controls with wxRuby
rubyonwindows.blogspot.com/2007/10/windows-xp-visual-style-controls-with.html

…うまくいきません。
古いルックアンドフィールのままになります。
上記サイトのxmlをファイルをruby.exe.manifestとrubyw.exe.manifestに新規作成してコピペして、
ruby/binに放りこめばいいんですよね?

309 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 00:38:30 ]
>>307
ありがとうございます。
標準出力と標準エラー出力に違いがあるのを知らなかったですorz
open3は標準入力・出力・エラー出力のみ対応という形だったので、
except実行→出力結果を一時ファイルに出力→実行元プログラムでopen
という形で無事結果を得られるようになりました。

PTYがttyを別個に作ってそっちで実行させるっぽいのでバッククォート使えない(のかなぁ……)

310 名前:245 mailto:sage [2009/12/17(木) 11:43:14 ]
logger使ってみているのですが、
Benchmarkの出力結果が余計な改行が入るのですが、これってこんなもん?

time = Benchmark.measure do
:(略)
end
logger.debug Benchmark::CAPTION
logger.debug time.to_s

311 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 12:21:56 ]
そんなの logger は与り知らんよ
logger は対象のオブジェクトを to_s しての末尾に改行つけて書き出してるに過ぎない
何か問題あるならそのオブジェクトの to_s 調べれ

312 名前:245 mailto:sage [2009/12/17(木) 13:01:09 ]
>>311
舌足らずでごめんなさい。
puts Benchmark::CAPTION
puts time.to_s
だと改行の問題ないんです。気味が悪いんですが、何でなんでしょ

313 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 13:10:17 ]
>>312
改行が問題になるときの検証に puts 使ったら駄目
puts は文字列末尾に改行があったら自前で改行をつけない

というかこれはそのまんまで

irb> require 'benchmark'
irb> p Benchmark::CAPTION
" user system total real\n"

そもそも改行が末尾に入ってる
気になるなら Benchmark::CAPTION.chomp を logger に渡す

314 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 18:13:47 ]
> puts は文字列末尾に改行があったら自前で改行をつけない
漏れは大変なことを知ってしまった
近いうちに消されるかもしれない

315 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 18:18:58 ]
xpathって難しい。もっと簡単にできるか?
id('Layer3')//td[
following-sibling::td//a[contains(@href,
'money.www.infoseek.co.jp/MnStock')]]/b//font[@color]



316 名前:sage [2009/12/17(木) 21:38:37 ]
>>228
trunk には Date::Delta ってのが入ってるよ

317 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 22:32:29 ]
RSpecの用語について質問。
describe ... や it .... で書いたひとまとまりを、なんて呼ぶの?
たとえば Test::Unit なら
class FooTestCase < Test::Unit::TestCase ← これはテストクラス
 def test_equal       ← これはテストケース
  assert_equal(2, 1+1)
 end
end
のような呼び方をしてると思うんですけど、RSpecの場合は何と呼ぶのかわからないので、教えてください。


318 名前:デフォルトの名無しさん mailto:sage [2009/12/17(木) 23:36:33 ]
現在β版のRSpec本によれば、
We use the describe( ) method to define an example group.
The it( ) method defines a code example.

なお、
describe(および別名のcontext)メソッドが作るのは
Spec::Example::ExampleGroupのサブクラス
it(および別名のexample)メソッドが作るのは
それのインスタンスメソッド
になる


319 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 06:03:22 ]
質問です。
001
002
のような、3桁の連番を表示したいんですが、どうやればいいんですか。
for i in 001..100
だと
1
2
になるんですが。

320 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 06:18:23 ]
Rubyらしい書き方ではないかもだが

for i in 1..100
 p '%03d' % i
end

数字の頭に0がつくとRubyでは8進数って意味になるので注意

321 名前:デフォルトの名無しさん [2009/12/18(金) 06:23:07 ]
('001'..'100').each{|s| puts s}

322 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 06:25:56 ]
>>320
見事にできました。
素早い回答どうもありがとうございました。

323 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 10:03:11 ]
WEBrickで、
・Basic認証またはDigest認証
・IPアドレスによるアクセス制限
を実現したいのですが、サンプルとか参考になるページがあれば教えてください。
「WEBrick IPアドレス 制限」とかでぐぐったけど、それらしいのはヒットしませんでした。

324 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 10:32:21 ]
追記。
ちなみに、今使っているサンプルはこんなのです。
require 'webrick'
server = WEBrick::HTTPServer.new({
:DocumentRoot => '.',
#:BindAddress => '127.0.0.1',
:Port => 3000,
})
Signal.trap('INT') { server.shutdown }
Signal.trap('TERM'){ server.shutdown }
server.start

325 名前:デフォルトの名無しさん mailto:sage [2009/12/18(金) 11:10:43 ]
認証
WEBrick::HTTPAuth::BasicAuth
WEBrick::HTTPAuth::DigestAuth

IPアドレスでの制御は HTTPRequest#addr あたりを見て403を返せばいいんじゃない?





326 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:18:34 ]
{1=>[2]}となる事を期待したけど、この方法では駄目みたいですね。

% irb1.9.1
irb(main):001:0> h=Hash.new([])
=> {}
irb(main):002:0> h
=> {}
irb(main):003:0> h[1]
=> []
irb(main):004:0> h[3]
=> []
irb(main):005:0> h[1] << 2
=> [2]
irb(main):006:0> h
=> {}
irb(main):007:0> h[1]
=> [2]
irb(main):008:0> h[3]
=> [2]


327 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:29:26 ]
>>326
www.ruby-lang.org/ja/man/html/trap_Hash.html

ぶっちゃけRubyの怪しげな機能は使わないほうがいいと思う

328 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:32:18 ]
>>326
そりゃArrayやHashの初期値つきnewは毎回初期値のオブジェクトを生成するからな

irb> p h[2].object_id == h[2].object_id
false

irb> h=Hash.new([])
{}
irb> h[1]=[2]
[2]
irb> h
{1=>[2]}

329 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:39:22 ]
>>328
> p h[2].object_id == h[2].object_id
これうち(1.8.7cygwin)でやるとtrueになるんだが1.9で変わったとか?

330 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 12:42:53 ]
>>326
それだとh[1]の参照先(初期値オブジェクト[])に2を入れてることにしかならない

h[1] = ほげほげ
としない限り
{1=>ほげほげ}にはならない

331 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 13:35:34 ]
$ rvm use system
<i> Now using system ruby. </i>
$ irb --prompt simple
>> RUBY_DESCRIPTION
=> "ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]"
>> h = Hash.new([])
=> {}
>> [h.default, h[0], h[1]].map(&:object_id)
=> [2156963800, 2156963800, 2156963800]

$ rvm use 1.9.1-head
<i> Now using ruby 1.9.1 head </i>
$ irb --prompt simple
>> RUBY_DESCRIPTION
=> "ruby 1.9.2dev (2009-12-11 trunk 26067) [x86_64-darwin10.2.0]"
ruby-1.9.1-head > h = Hash.new([])
=> {}
>> [h.default, h[0], h[1]].map(&:object_id)
=> [2151892720, 2151892720, 2151892720]


332 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 15:45:53 ]
>>331みたいな人ってソース中のコメントもほぼかかなそうだよな

333 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 16:35:24 ]
>>332は初心者

334 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 16:59:49 ]
まあ初心者スレだしな

335 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 17:53:52 ]
結局>>328は間違ってるということかい?



336 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 18:26:49 ]
new(初期値)で生成されたハッシュに存在しないキーでアクセスした場合の挙動は、
同じオブジェクトが返るというのが正しく、
毎回異なるオブジェクトが返るというのは誤り。


337 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 18:37:34 ]
質問するならリファレンスマニュアルくらい読んでからこい

338 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 18:47:27 ]
初心者スレ的には
「マニュアルのここ読めわかりやすくて疑問の余地無し氏ね」
と言える環境を揃えるほうが先な気もする

339 名前:デフォルトの名無しさん mailto:sage [2009/12/19(土) 23:53:39 ]
>>328
それは初期値じゃなくて初期ブロックじゃないのか?

h = Hash.new{|hash,key| [] }
p h[2].object_id == h[2].object_id # => false

未設定のキーを指定された時に、そのつどブロックを実行した結果を返す
よって同じキーでも毎回違うArrayが帰ってくる


340 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 01:14:37 ]
>>338
ようやくたどり着いたと思ったら、

xxxx()
執筆者を募集中

おい、コードを書いたのはどこに行ったの?
採用した人は?

なので、動かないものは、自分で書き直すことにしてる。
一から一人でするより、ちょっと近道。

341 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 05:46:41 ]
>>337
>質問するならリファレンスマニュアルくらい読んでからこい
おまえは書き込むまえに>>1を読んでこい

342 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 06:50:04 ]
>>341
おまえは書き込むまえに>>1を読んでこい

343 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 07:39:01 ]
そんなことより俺のIDを見てくれ。どう思う?

344 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 09:13:46 ]
見えない

345 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 10:15:45 ]
>>344はバカ



346 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 10:27:17 ]
まあバカスレだしな

347 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 12:45:29 ]
教えてください
Hpricotで日本語テキストのリンク検索が上手く動きません
どうすればNokogiriと同じ動きになるのでしょうか

#!ruby -Ku
require 'hpricot'
require 'nokogiri'

html = "<html><a>りんく1</a><a>りんく2</a><a>りんく3</a></html>"
doc = Hpricot(html)
print doc.at("a[text()*='りんく2']"); # エラー発生

doc = Nokogiri(html)
print doc.at("a[text()*='りんく2']"); # こちらは正しく動く

エラー内容
/usr/local/lib/ruby/gems/1.9.1/gems/hpricot-0.8.2/lib/hpricot/elements.rb:486:in `index':
incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)



348 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 12:48:10 ]
>>347
初心者は Ruby1.9 使うなってこれだけ言われてるのになんでわからんのだエラー

349 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 12:54:16 ]
>>348が FA なのだが

というか何もわからず動かしていることが原因で、
Nokogiri が動いたのはただの偶然に過ぎない
むしろ「Nokogiri が動いたのは何故ですか」という質問になるべき事象

無理しないで Ruby 1.8.7 使え
1.8.7 を理解したあとで差分学習で 1.9.1 を習得するのが一番早い

350 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 12:57:10 ]
了承、1.8.7にする

351 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 12:59:15 ]
hpricotはコンパイルが通る程度に1.9対応されてるだけ。
作者の _why the lucky stiff はネット上から失踪しているので、事実上塩漬け状態。


352 名前:デフォルトの名無しさん [2009/12/20(日) 16:02:52 ]
質問
rdoc が生成する HTML について、特定の要素(例えば <pre>タグ)のスタイルだけ
いじりたいという場合はどうしたらいいのでしょうか?

353 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 16:27:02 ]
>>352
ちょっと見た感じでは rdoc に --template オプションで
自作のテンプレートを指定してやればいいんじゃまいか

既存のテンプレが rdoc/genarators/template/html に入ってるから
それを部分的に書き換えて使えばよさそう

354 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 19:17:36 ]
whyさん死んじゃったからNokogiri推奨だと思うけど、
>>347がhpricot使いたいと思った理由はなんだろ

355 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 19:20:40 ]
え、whyって死んじゃったの?
もしそうならHpricotきめえとかdisるのやめて冥福を祈る



356 名前:352 mailto:sage [2009/12/20(日) 19:31:28 ]
>>353
ありがとうございます。
ベースになるテンプレートを選んで、それに改変を加えたものを使おうと思います。

357 名前:デフォルトの名無しさん mailto:sage [2009/12/20(日) 20:19:30 ]
ネットワーク的に、ね。
自分できれいさっぱり痕跡を消していった。


358 名前:352 mailto:sage [2009/12/21(月) 15:57:51 ]
追記
rdoc の --style オプションにスタイルシートのパスを渡すことで
HTML生成時に自前のスタイルシートを読み込ませることができました。

テンプレから CSS の部分だけ切り出して編集して、
rdoc --style=path_to/hoge.css

でうまくいきました。
というか、manページに普通に書いてあったorz

359 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 22:18:49 ]
hpricot でも nokogiri でもいいんですが、

doc = Hpricot(open(uri).read)
(doc/:a).each do | link |
 if link[:href] == '#'
  p "設定し忘れ => #{link[:lineno]}"
 end
end

みたいに、行番号を取得することって出来ませんか?

360 名前:デフォルトの名無しさん mailto:sage [2009/12/21(月) 22:21:13 ]
行番号というメタ情報があれば取得できるよ
ないならできない
自分で行番号だと思うものを作って数えるしかない

361 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 09:38:58 ]
>>359
その程度なら普通に正規表現でよさそうだね。

File.open(filename) do |f|
 i = 0
 f.each_line do |line|
  i += 1
  puts "#{filename}:#{i}: 設定し忘れ" if /href=("¥#"|'¥#¥')/
 end
end

362 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 09:39:08 ]
jrubyでmechanize使えている人います?hpricotのjava版使うしかないんでしょうか?

363 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 09:45:49 ]
>>361みたいに例示依存の回答する人なんなの

364 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 10:39:36 ]
>>361 欲しいのは行番号であって、例文なんかどうでもいいんだが

365 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 11:00:20 ]
例題コードを添削するのはどうかとw



366 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 11:10:57 ]
作業ディレクトリの変更って出来ませんか?
./data/a.rb
./data/1.txt
./main.rb
ってあったときに
main.rbからa.rbをrequireするんですけど
a.rbは
open("1.txt","r") これで読めるようにしたいです

367 名前:デフォルトの名無しさん mailto:sage [2009/12/22(火) 11:21:49 ]
save = Dir.pwd
Dir.chdir "./data"
# 作業
Dir.chdir save
とかかな

同じディレクトリにあるファイルを使うってことなら
open(File.dirname(__FILE__)+"/1.txt")
でもいいかも






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<233KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef