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


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

Ruby 初心者スレッド Part 17



1 名前:デフォルトの名無しさん [2008/01/16(水) 17:41:27 ]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
関連スレやURLは>>2-7あたりを見てください。Ruby on Railsの質問はWebProg板の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を読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

528 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 05:29:46 ]
今時、telnetといって文字通り捉えるのははずかしいぞ

529 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 06:18:09 ]
今時telnetがデフォで入ってるのはWindowsとOSXくらいのもんだろw

530 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 11:46:24 ]
普通は「shellの利用が禁止されてる」っつー罠

531 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 12:17:56 ]
>>529
デーモンはともかく、クライアントとしてのtelnetはPOPやHTTPみたいな
プロトコルを手で喋る(?)ときに重宝するから入っていそうだが。

とはいえ、デフォでは入ってないかもな。


532 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 12:37:16 ]
本の感想サイトから書名とレビューを抜き出して表示するプログラムを作るとします。
表示は「とにかく一覧として表示されればいい(新着が存在することを明示しなくていい)」とします。

昨日抽出したとある本のデータのハッシュは以下の通りでした。PStoreで保存します。
book = {'title'=>書籍名, '著者'=>著者名, 'review'=>['面白かった。','まあまあだと思った。']}
で、今日アクセスしてHTMLをスキャンした結果が
today = {'title'=>書籍名, '著者'=>著者名, 'review'=>['面白かった。','まあまあだと思った。']}
という、昨日と中身同じな未更新の内容でした。相手のHTMLには最終更新日などの情報はありません。

1) ハッシュの上書きの特徴を利用し、強制的にbook.update(today)してbookを今日の結果として表示させる
2) reviewの中身を比較して違いがあった場合のみbook.update(today)とかしてbookを表示する

2通りの手段があると思うんですが、2ってもしかして比較に時間かかったりしますか。
プログラム的には「差分が存在した場合のみ変数を更新」というのがいいような気はするんですが。
サイトから抜き出した要素がある日突然減ってることはありません(今日はtitleが無いとか)。

533 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 12:51:42 ]
>>532
データの量にもよるけど、単純な比較に致命的な時間がかかる事はあまり無いと思う。
その前提なら変化があるのは review の項目だけだろうから、これだけでいいのでは?

today['review'] == yesterday['review']

534 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 12:56:59 ]
>>532
いきなり全体に上書きしてもデータ上は問題ないのなら1でいいんでないかい
つまり「過去ログは不要で今日のサイトの状況のみをリアルに反映する」のが目的ならね

ある日のレビューが
'review'=>['面白かった。','まあまあだと思った。','↑厨の連投自演乙wwww']
になってて、翌日に
'review'=>['面白かった。','まあまあだと思った。']
に戻ってた場合とかは、1の方法だとレビュー削除を検知も保存もできないけど、2ならやろうと思えばできる

535 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:02:23 ]
Hash#updateは機械的にキー捜して値を更新してるだけだよね?
>>533のように変化しうるキーの値だけ更新するのが本当なんだろうけど、
100項目くらいなら全部をupdateしちゃって問題ないと思う

536 名前:デフォルトの名無しさん [2008/02/03(日) 19:45:26 ]
Rakefileでtaskが失敗したことを表現するにはどうしたらよいでしょうか?
test taskが成功したときのみinstall taskを実行して欲しいです
exitで終了させる方法しか思いつきません

task :default => [:install]

task :test => OUT do |t|
 %x{ #{Dir.pwd + '/' + t.preqs[0]} }
 if $? != 0
  print "sippai\n"
  #exit(1)
 end
end

task :install => :test do |t|
 print "install...\n"
end



537 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 19:52:19 ]
raise でメッセージつけるとか

538 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:26:55 ]
中途半端に自作のデータ格納クラス作るよりも、
適当なでかいハッシュにキーと値のペアで格納したほうがマシだよね?

539 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:31:22 ]
Structってのもあるよ。


540 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:36:25 ]
> Struct
> 構造体クラス。
> Struct.new はこのクラスのサブクラスを新たに生成します。
> 個々の構造体はサブクラスから new を使って生成します。
> 個々の構造体サブクラスでは構造体のメンバに対するアクセスメソッドが定義されています。

…ハッシュでいいや

541 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:37:03 ]
俺はモジュール1〜2つ作って、その中にクラス作りまくる派。
・後でメソッド持たせたくなった時、楽
・項目名を間違っていた場合すぐ判る
・その一連のデータにどんな項目があるかが一目瞭然

542 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:49:19 ]
データクラスを設定するためだけにインスタンス変数をいちいち30こくらい作るの面倒なので中身はただのHashです
Hashでkeyを指定するのとaccessorでインスタンス変数にアクセスするのってたいして変わらん気がする
もっと複雑怪奇なデータ構造なら破綻するのかもしれないけど

あとただのデータの癖にメソッドたくさん持ってるのは気持ち悪い
おまえらは素直にアプリケーションクラスにいじられてればいいんだよ

543 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 01:02:19 ]
ネットからデータをげっとぉするメソッド内で、アクセス間隔intervalを設定したいです。

# その1 -----------------------------
interval = nil
interval = 10 if 適当な条件

sleep interval if interval
# その2 -----------------------------
if 適当な条件 then
interval = 10
else
interval = nil
end

sleep interval if interval
# その3 -----------------------------
interval = 10 if 適当な条件

sleep interval if defined?(interval)
# -----------------------------------

どれがいいかな?
intervalはここでしか使わないんですが。
今までは何の疑いもなくインスタンス変数を消費して
sleep @interval if @interval
とか書いてたんですがこれを機にインスタンス変数の乱用減らそうかと

544 名前:デフォルトの名無しさん [2008/02/04(月) 02:04:31 ]
"あいうえお"[2]で"う"が出ないのって、アホなの?

545 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:30:29 ]
その問いへの答えは
"abcde"[2]が"a"がでないのをどう受け止めるかによって変わりそう。


546 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 04:07:12 ]
>>543
こーゆーのは?
interval = ( 適当な条件 ? 10 : 0 )
:
sleep(interval)

ローカル変数で間に合うくらい近い場所ならこーするけど
sleep(10) if 適当な条件



547 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 09:06:08 ]
>>545
卑近実際の使い勝手が悪いのには反論の余地はないな
いちいちアスキー文字に変換されないのは便利なこともあるんだろうが

>>543
ローカル変数の初期値のスタンスに関する問題だということでいいよな
その2かそれに類するものであるべきだとは思う
その1のようにnilを指定したあとで別オブジェクトに挿げ替えるというのは気持ち悪い
あと、その3は常にtrueになるような気がしてならんのだが

548 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:01:44 ]
驚き最小の原理的に望ましくないし、使い勝手も悪いっつーたら何の利点があるんだろ

549 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:18:20 ]
一応、Stringはバイト列であるという考え方らしい

だったらString.eachはString.each_lineではなくString.each_byteと同じものにしとけバーカバーカ

>>544
$KCODE='e'
puts 'あいうえお'[4,2]

"う"


550 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:31:02 ]
>>548
驚き最小の原理というのは(Matzの)驚きが最小って意味。
Cでも"abcdef"[0]は"a"じゃないじゃん。ブロック変数がローカルでないのも
Cの
int i = 42;
for (i = 0; i < 100; i++) {
process();
}
i => 99
って動作を踏まえたものだし、それなりに根拠はある。

1.9だと両方とも変わったんだけど、?aという記法は残して欲しかったな。


551 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:46:47 ]
>>550
記法自体は残ってるよ。挙動を変えないでほしかった、という意味かな。

552 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:52:31 ]
Perlでは文字列の4番目って何になるんだっけ、と思ったが
どう書いていいのか全く思いつかなくなっててとてもショック
そんなにまじめに勉強してたわけじゃないけどさー

いかん、これでは「Rubyしか使えない可哀想な人」になってしまう

553 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:00:27 ]
>>551
Yes。Emacsの記法だっけか。

>>552
RubyはPerlの互換だから、RubyのほかにPerlだけ使えてもあんまり意味ないけど


そういや最近話題のarcでは("abcdef" 0)が#\aなんだよな。

554 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:30:03 ]
/home/me/ruby
というディレクトリに
main.rb
sub.rb
uri.rb
という3つのファイルがあって、main.rbからsub.rbとuri.rbを読み込んで中のクラスやモジュールを利用したいです。
一番好ましい書き方は何ですか?
main.rbの実行時のカレントディレクトリは/home/me/rubyだけとは限りません。

555 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:55:42 ]
$: << File.dirname(__FILE__)

556 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:57:08 ]
>>542
30ってヤケにでかい塊だな。



557 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:02:59 ]
>>555
__FILE__はフルパスとは限らないので
$: << File.expand_path("..", __FILE__)
のほうがいい。


558 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:17:24 ]
いやこれは意図的な罠だろ

> cat uri.rb
class URI
MSG="このファイルは#{__FILE__}です"
end
> cat main.rb
$LOAD_PATH << File.expand_path("..", __FILE__)
require 'uri'
puts URI::MSG
> ruby ./main.rb
main.rb:3: uninitialized constant URI::MSG (NameError)

横着せずに require をフルパスつきで読み込んだほうが確実だと思う


559 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:28:41 ]
q = abcd
q.length × 1.5 =>8
てしたいのですが、うまいことぐぐれないので助けてください。

560 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:35:40 ]
>>559
ぐぐる以前に体系的に一通りRubyの基礎を学ぶといいぞ

561 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:43:43 ]
何がしたいのかもっと具体的に。

562 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:46:08 ]
>>558
$LOAD_PATH.unshift(File.expand_path("..", __FILE__))


563 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:47:22 ]
>>561
いや、意味は不明だがとりあえずは比較だろ

q = 'abcd'
if (q.length * 1.5 >= 8.0) then
puts 'とりあえず8かそれ以上です(何が?)'
else
puts 'とりあえず8未満です(何が?)'
end



564 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:49:44 ]
>>562
それだと添付ライブラリの uri を require 'uri' で読めなくならないか
自作ファイルのほうを特別扱いするのが妥当かと思われ

565 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:52:57 ]
ああ、-rubygemsなんか使ってたりで、すでに標準ライブラリのuri.rb読んでるとダメなのか
パスが変わってないと読み込んでくれないってことか

566 名前:デフォルトの名無しさん [2008/02/04(月) 16:30:37 ]
これだから、Rubyは・・・



567 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:32:09 ]
言語仕様自体の是非は隔離スレでやれと

568 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:42:17 ]
普段数十行の処理用にperl使ってる程度ですが、そういう人間にもruby使う意味ってありますか?

569 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:44:49 ]
Perlでの記述に速度以外の不満があるのなら

とらえず、既存の仕事をRubyで置き換える意味はないよ

570 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:45:26 ]
Rubyの字面が好きなら乗り換える価値はあるかもな。
自分も1000行行った事ないけど字面が好きだから細々と使ってるよ。
正直細かい機能はほとんどしらねぇw

571 名前:568 mailto:sage [2008/02/04(月) 16:51:22 ]
いえ、perlに不満があるわけではないです。
単にruby流行ってるみたいなんで興味持った、っていう程度です。スンマセン

でもちょっとかじってみようかな。perlからの乗り換えも結構多いようですね

572 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 17:02:29 ]
Perlの人が飯を賭けずに家で遊んでみるぶんには大変魅力的な言語でございますよ
一通り使ってみた後にはPerlでのプログラミングの筋もよくなってるという矯正効果つき

573 名前:559 mailto:sage [2008/02/04(月) 19:39:05 ]
算数ができてませんでした。
4文字を入れて出力したいのは6ってゆー数字です。

574 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:00:09 ]
>>573
体系的に一通りRubyの基礎を学ぶといいぞ

575 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:03:24 ]
Rubyの基礎って言うか
どんなプログラム言語でもExcelとかでも
「かける」は*で「わる」は/とか
プログラム以前の問題かもな

576 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:05:20 ]
"abcd".length * 1.5
=> 6.0



577 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:11:19 ]
>>575
いや四則演算の記号はRubyの基礎だろ

>>576
要件満たしてないぞ

578 名前:559 mailto:sage [2008/02/04(月) 21:10:54 ]
ありがとうございました。

579 名前:デフォルトの名無しさん [2008/02/04(月) 22:31:14 ]
Windows上でWinpcapを利用して、Etherealキャプチャデータをいじりたいんですが、
おすすめな方法ありますか?

libpcapなら以下の方法があるみたいなんですけど・・・
www.goto.info.waseda.ac.jp/~fukusima/ruby/pcap/doc-ja/index.html

580 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:32:10 ]
Rubyに慣れてないようだから、コード書くより日本語で書いたほうが早かったかもね。

とりあえず、6.0を四捨五入させて6にしかたったのなら
(q.length*1.5).round と書くといいよ。

581 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:19:56 ]
今までRubyの公式のチュートリアルを見て勉強してきたんですが
やっぱり物足りないなぁと思い始めてきました。
まだ趣味でやってる範囲なのですが本などを買ってやったほうがいいんですかね?
インターネットで解説見れば無料だから・・・っていうのは甘いですか?

582 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:23:29 ]
本なんかいらんよ

583 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:34:14 ]
Rubyistはオブジェクト指向スクリプト言語 Rubyを本棚に飾るのがマナーです

584 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:39:06 ]
まー、言語にかかわらず、本とか買っても意外と読まないよなー。
空き時間に小説感覚で読んだりはするけどw
慣れてきちゃえば、実用的にデジタルデータの方が楽というか。

585 名前:初心者 [2008/02/05(火) 20:10:35 ]
Ruby初心者が質問します

ブラウザでRubyが受け取った値をCのプログラムに渡して、Cで計算してRubyで
返すなんてことできますか?

586 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:13:35 ]
>>585
Ruby っつーかプログラミングと日本語の初心者だな。



587 名前:初心者(プログラミング、日本語、2ちゃんねる) [2008/02/05(火) 20:14:36 ]
すまん

588 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:23:22 ]
よくわからん
Rubyでhttpなデータをダウンロードして
それをCで書いたルーチンに処理させて結果をRubyで受け取りたいって事か?

それともサーバ側でRubyなCGIを動かしてボトルネックになりそうな部分をCで書きたいということか?
どっちもとりあえず可能とだけいっておく。

589 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:24:09 ]
>ブラウザでRubyが受け取った値
ここが曖昧。Ruby組み込みブラウザか? とか言ってみる。
それともCGIなのか。COMでAcviteScriptRubyを呼ぶのか。

>Cのプログラムに渡して、Cで計算して
Cで書かれた実行ファイルが既にあるのか、計算部分を
拡張ライブラリとして書き下ろすのか。

>Rubyで返す
X:で -> O:に
あるいはさらにRubyからブラウザになにか反映させるということか?


ざっと見てこれぐらいオモタ


590 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:32:46 ]
SWIGのことか?


591 名前:デフォルトの名無しさん [2008/02/05(火) 23:09:44 ]
だれかRubyコンパイラ作らないの?

592 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:10:50 ]
きちんとコンパイルされてるだろ

593 名前:デフォルトの名無しさん [2008/02/05(火) 23:12:27 ]
じゃあネイティブコード吐けよ。

594 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:25:57 ]
B-Rubyだっけ

595 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:00:15 ]
Rubyで、2chの特定のスレURL(またはdatファイル)を任意で指定し、
すべての投稿から、「すでに投稿された文面が再度登場していたら、
その数だけレス番付きで抽出する」
というものはできないでしょうか。

要は何がやりたいのかと言うと、
「スレッドがコピペ投稿だらけ」になっており、
レス削除要請を行いたいのです。
ただ、そのコピペの数が尋常じゃないので抽出が困難なのです。
「文面の95%が一致していたらコピペとみなす」機構が嬉しいです。

596 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:00:59 ]
できるよ。



597 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:02:54 ]
>>581
本が無くてもWebページで身につけられるのは事実
ただ、はじめのうちは本があった方が理解しやすい

とりあえず、本屋・図書館で立ち読みしてみてはどうだろう
必要だと思ったなら買えば(借りれば)いい

598 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:04:02 ]
どうせ買うならポケットリファレンスみたいのは避けた方がいいと思う
あれはWebで調べられるし、あんまり意味ない

599 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:07:52 ]
Webが見られないところで調べられることは重要

600 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:24:14 ]
言い方が悪かった。
あれは辞書みたいなもんだからテキストそのものにはならない。

601 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:36:37 ]
>>595
丸投げするなら「Rubyの宿題スレ」の方があってるかもしれん
ただ、すぐに流れるかもしれんが。

もし自分でやりたいのなら、ここで質問しまくったらできる範囲だと思う。
あと、プログラム組んだことなくて、極力自分でやりたくないなら、宿題ス(ry

ヒント的なもの
・datのDLは、 open-uri でいけるだろう
・datの中身は、cvsみたいなものなので、cvsライブラリか、eachlinesあたりで
・完全一致ならハッシュ取って調べるのが楽。
・類似度判定が一番問題
 AAに特化ということで、記号の数をデータとしてとって、とか。
 専門じゃないので厳密なやり方はわからん

あとは、datのサンプルがいくつかいるだろう。

602 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:45:25 ]
今からRubyを本格的にはじめようと思ってるんですが
メーリングリストはどれを購読するのがお勧めですか?

603 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:56:00 ]
MLは初心者にはお奨めしない

604 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:01:22 ]
>>601
類似度判定はこのスレの上の方にでてた
レーベンシュタイン距離とか何とかで出来るんじゃね?

605 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:26:58 ]
2chへのアクセスは、下手に簡易にすると
「2chの全板取得」とか「24時間丸ごと10分ごとに板の全スレの新着取得」とか
そういう馬鹿をする人間が必ず出ている(確定事項)なので
プログラム板の最後の良心の欠片として自力で調べてもらうということになってる

板自治を気取るのではなく自分の見てるスレだけから抜き出したいのなら、
自分の使ってる2ch専用ブラウザのローカルのログを加工するといい

作ったことのある初心者から言うと2ch仕様の調べもの込みで休日の朝から夜までかかった
全くのRuby素人なら1週間くらいかかるんじゃなかろうか

606 名前:デフォルトの名無しさん [2008/02/06(水) 02:33:35 ]
>>605
下手に簡易って、探せば適当なライブラリがいっぱいありそうだが。



607 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:42:46 ]
goRuaだっけかrubyでかかれた2chクライアントあるよね

608 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 03:03:11 ]
Rubyを学ぶ気がないならぶっちゃけPerlで既存の組み合わせて作ったほうが楽かと

609 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:13:24 ]
Cのプリプロセッサ
#ifdef DEBUG
hoge();
#endif
のように、デバッグモードのときだけhoge()を実行するコードを書くのに良い方法はありますか?

610 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:15:39 ]
ここにうpしてもいいですか?

611 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:25:26 ]
>>609
hoge if $DEBUG

612 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:46:22 ]
>>611
ありがとうございます(^^)

613 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:49:28 ]
あ、所詮ただのif文/if節だから厳密な意味でデバッグモード専用にはできないよ

if $DEBUG
str='string!'
end
p defined?('s')

これの場合、pで真が表示される
いわゆる「実行させない」ようにさせるだけ(これで充分なことが大半だが)
真にNameErrorを出すような芸当をさせる簡易な書き方は知らない

614 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:32:45 ]
>>602
「今から始める」人が、MLの購読で得るものは少ないと思うが
敢えて言うなら、日本語で質問ができるruby-list

615 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:20:38 ]
ruby 1.9.0ビルドしてrubyなスクリプト実行してみたんだけど
pythonでいうところの.pycみたいのが作られないんだけどそういうもん?

616 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:27:25 ]
そういうもんです



617 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:28:57 ]
いずれそのうちもしかしたらやるかもしれないみたいなことはいっていたけどな

618 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:42:00 ]
brubyを1.6で作ったのが間違いだったらしい

619 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:48:17 ]
質問させてください

いま、Fileオブジェクトを引数に持ち、ファイルに結果を書き込むメソッドを考えています
引数がFileオブジェクトの場合はそのファイルに書き込み、nullの場合は標準出力に書き込んで欲しいと考えています
そこで
class hoge
def print(file)
if(file ==null)
××××
end

file.puts "なんだかの結果、書き出し"

end
end

と書いているのですが、××××の部分をfile = selfとかしてもダメです

なにかいい方法はあるのでしょうか?
file.putsが複数回出てくるのでif文でnullの時だけputs ""にして、それ以外はfile.puts ""にするのややりたくありません

よろしくお願いいたします


620 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:51:22 ]
def print(io)
 io = STDOUT if io == null

 io.puts "hoge"
end

621 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:58:13 ]
ちなみにRubyではnullじゃなくnilな

622 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:00:32 ]
>>620
ありがとうございます
助かりました

STDOUTとか、その辺の定数みたいなものは自然と身についていくものなんでしょうか?
ちょっと前にもARGVに気が付かず、コマンドライン引数を取得する方法に悩んでしまいました


623 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:03:53 ]
マニュアル読めよ

624 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:19:02 ]
>>623
まあそうなんですけど、私みたいな日曜プログラマはプログラム書きながらわからんところだけ調べるスタイルなので
それに、どの言語もそうですけど、マニュアル分厚くて読む気しない


625 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:23:36 ]
役に立つかどうかはわからんが、
逆引きRuby www.namaraii.com/rubytips/


626 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:25:08 ]
おまいらやさしいな
傍から見ててテンプレ嫁ググレカスとか書き込もうと思ったよ



627 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:34:27 ]
本を一冊読めば大抵のこと書いてあると思う。

628 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:47:04 ]
コンピュータのディスプレイで読めるリファレンスマニュアルに分厚いも糞も無いだろ






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

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

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