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


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

Ruby 初心者スレッド Part 35



1 名前:デフォルトの名無しさん [2010/03/04(木) 11:00:57 ]
プログラミング言語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を読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

369 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:13:40 ]
Unicode の U+2295 みたいな表記を Ruby1.8 で該当バイナリ文字列に変換する方法はありませんか

370 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:24:07 ]
>>369
「U+2295」が文字列という前提で

(0.入力文字列の書式をチェックします。)

1.分割します。

U+ … ポイ
22 … 1バイト目
95 … 2バイト目

2.1バイト目と2バイト目をごにょごにょします。Array#pack() 、かなあ?

371 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:27:09 ]
>>369
require 'nkf'
s = 'U+3042 U+3044 U+3046'
puts NKF.nkf('-w, --numchar-input', s.gsub(/U\+(\d+)/){"&#x#{$1};"})



372 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:32:54 ]
>>371
> /U\+(\d+)/
16進数じゃない?

/U\+([0-9a-fA-F]{4,6})/
でいける?

373 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:37:46 ]
>>371
間違ってるぞ

puts NKF.nkf('-w, --numchar-input', s.gsub(/U\+([\da-f]+)/i){"&#x#{$1};"})

374 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:52:39 ]
1.8では、量が多くない場合はNKFに頼るのが間違いないと思う
1.9だと簡単なんだけど

375 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 01:20:47 ]
$ cat a.rb
require 'nkf'
sikaru = NKF.nkf('-w, --numchar-input', %w(20B9F).map{|s| "&#x#{s};"}.join)
p sikaru
puts sikaru
$ ruby -Ku ./a.rb
a.rb:2: [BUG] Segmentation fault
ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux]

うひょう

376 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 04:18:36 ]
本来はiconv使うべきとは思うが、実用的なのはnkfだしなあ。

377 名前:デフォルトの名無しさん [2010/03/13(土) 05:37:51 ]
>>369
"U+20B9F".gsub(/U\+([0-9A-Fa-f]{4,6})/){[$1.to_i(16)].pack("U*")}

>>371
-w, の , が余計



378 名前:66 mailto:sage [2010/03/13(土) 05:57:18 ]
> File.expand_path('あ', '/'.force_encoding(Encoding::ASCII))
Encoding::CompatibilityError: incompatible character encodings: UTF-8 and US-ASCII
となるのですが、これはバグ?
ちなみに実際やりたいことは、Tempfile.open('あ') です。

環境:fedora11、ruby 1.9.2dev (2010-03-06 trunk 26825) [i686-linux]

379 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 06:46:02 ]
ライブラリのインストールに滅茶苦茶時間掛かるんだが
なにこれ

380 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 10:12:06 ]
gem search -r hoge
searchっていちいち入力するの面倒いだけど、searchの短いオプションって無いの?

381 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 10:50:10 ]
スレのバージョンお勧めに従わない人間は自業自得なのでスルー

>>379
そりゃ君のパソコンがプア過ぎるのだよ
気になるなら -V をつけて gem install -V hogehoge すると固まったような時間帯に何してるのか見える
"Building native extensions. This could take a while..." はCで書かれたファイルをコンパイル中(ものによっては遅い)

ごっついライブラリだと定番ライブラリを10個くらい追加インストールするからどんなマシンでも一見とても遅いぞ
来週くらいに gem -V update しても遅いならまたおいで

>>380
sea

なにこれ超中途半端
正確には先頭から文字列にマッチするコマンド探してるので、s と se では複数マッチしてエラー
$ gem s mechanize
ERROR: While executing gem ... (RuntimeError)
Ambiguous command s matches [search, server, sources, specification, stale]
$ gem se mechanize
ERROR: While executing gem ... (RuntimeError)
Ambiguous command se matches [search, server]
$ gem sea mechanize

*** LOCAL GEMS ***

mechanize (1.0.0, 0.9.3)


382 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:01:06 ]
質問ですが、

PythonのPython Image LibraryみたいなRubyの画像処理ライブラリってありますか?

383 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:13:21 ]
>>382
ありません
ImageMagickインストールしてgem install rmagickするしかないねえ

384 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:13:50 ]
用途にもよるけど、既存のCで書かれた画像処理ライブラリを
Rubyから呼び出して使うことが多いと思う。

RMagick(ImageMagickのライブラリを使用)
Ruby/GD2(GD2を使用)
Rcairo(cairoを使用)
など。

ImageMagickは機能過多だ、サムネが作りたいだけなんだという
人向けにImageScienceというのもあるな。サムネ作成専用。

385 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:15:29 ]
>>381
スレの勧めないバージョンインストールしておきながら
お勧めなら引っかからない基本的エラーで文句言うような人はスルー
というのが正しいかと思う

お勧めでなくても入り口以外で引っかかってるなら質問どうぞ

386 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:19:17 ]
>>378
バグっぽい気がしたのでチケット切ってみた。 #2955


387 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:21:38 ]
>>383-384
なるほど、ありがとうございます。
画像出力より入力の機能の方を重視したいので
PILと同程度のライブラリとなるとImageMagickをつかないといけないんですか・・・
FFIするならGIL辺りが良さそうですね。
参考になりました。




388 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:23:54 ]
春休みスレ

389 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:32:34 ]
>>388
間違ってるならあとから正せばいい

質問者には数時間くらいは待ってもらえるといいかもしれん

390 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:55:34 ]
>>380
俺は面倒だから工夫してる。何度も同じコマンドうつのはDRYじゃあるめえ

Windowsなら以下の内容をgems.batとしてパスが通ったところに置いておき、コマンドラインで gems hoge で検索
gem.cmd search --details --both --all %*

Unix系でbashなら、~/.bashrcに以下を書いておいて gems hogeで検索
alias gems="gem search --details --both --all"

あくまで例なのでコッチのほうがいいとか指摘してください

391 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:58:15 ]
あんまりコマンドのエイリアスは設定しない方がいいって
誰か言ってなかった?

392 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:03:40 ]
* 別の環境に移ったときになんぞこれってなるからエイリアスすんな派
* 自分好みに環境をカスタマイズしてこそUNIXのシェルだろJK派

どっちを選ぶも自由

393 名前:66 mailto:sage [2010/03/13(土) 12:03:56 ]
>>386
ありがとうございます!

文句を言いたいわけじゃなく、バグなのか仕様なのか自分の勘違いなのか自信が持てないから、
このスレを利用させてもらっちゃったんですが、相応しくなかったみたいですね。
すみません。
もう書くの止めときます。


394 名前:380 mailto:sage [2010/03/13(土) 12:46:52 ]
>>381
seaね、ありがとう
>>390
linuxを使っているならaliasを使うけど、
今はwindowsを使っているからそんな方法があるなんてわからんかったよ

395 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:55:19 ]
>>393
1.9.1だったなら俺も>>385に同意だけど、1.9.2devは本スレが妥当じゃないかな

396 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:55:54 ]
ライブラリが全然整理されてない印象<Ruby

397 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:11:18 ]
うおお、ライブラリが全然整理されてない印象さんがRubyと喋ったぞ



398 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:45:08 ]
<Rubyでなくて>Rubyだと思う
固定された意味はないけど

質問
エンコーディングプラグマ、通称マジックコメント、は、
該当するマルチバイト文字のようなもんが書かれてないようなライブラリを
自作して公開する場合はつけないほうがいい?

399 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:45:51 ]
あ、>>398は1.9.1の場合ね

400 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:48:35 ]
require 'Qt4'

app = Qt::Application.new(ARGV)

hello = Qt::PushButton.new('Hello World!')
hello.resize(100, 30)
hello.show()

app.exec()
テストコード(コピペ)を動かそうとしているんだけど、動かない
>C:\Ruby\lib\ruby\gems\1.8\gems\qtruby4-2.1.0-x86-mswin32\lib\ はちゃんとあるんだけどね
環境変数が問題なのかな?

401 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:52:19 ]
>>400
動かないのならエラーメッセージを貼っておくれ

スクリプトをダブルクリックして実行したのなら
コマンドプロンプトから実行して

402 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:59:36 ]
おー、WindowsでQtライブラリ使ってる人初めて見た

403 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:08:03 ]
rubygemsでインストールしたパッケージのヘルプってどうやって見れますか?

404 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:09:59 ]
>>398
書かない場合は US-ASCII を指定したのと同義。
ASCII文字しかないなら書いても書かなくても結果は同じ。

8ビット目が立ったシングルバイト文字は入れてないよね?


405 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:12:27 ]
>>403
riかrdocか。
gem server を起動して localhost:8808/ でも読める。


406 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:13:09 ]
正規表現の動作が変わるんじゃなかったか

407 名前:400 mailto:sage [2010/03/13(土) 14:14:30 ]
>>401
test.rb:1:in `require': no such file to load -- Qt4 (LoadError)
from test.rb:1
見てのとおりライブラリの読み込みに失敗しています

let-your-heart-soar.txt-nifty.com/blog/2008/07/qtqtrubywindow_82d9.html
この通りにやって、C++のチュートリアルは動くようになっています
でも、こんな事をやってqtrubyに関係あるのか疑問

>>402
ruby gtk2を使おうかなと思ったけど、gtk+のライブラリ全然わかんないから
linuxでもqtrubyが動けば、linuxで開発してwindowsでexeを作ろうかな〜と

それに、2週間くらい前にこんな本を買ったし
>入門 Qt 4 プログラミング
>ttp://www.oreilly.co.jp/books/9784873113449/



408 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:15:52 ]
>>403
gemディレクトリ/ruby/1.8とか/doc/ の中にファイルが入ってるので好きなときに読め
ActiveSriptRubyの場合はC:\Program Files\ruby-1.8\lib\ruby\gems\1.8\doc\

409 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:17:57 ]
>>407
require 'rubygems'
require 'Qt4'

410 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:25:42 ]
>>406
US-ASCIIなソースにUS-ASCII以外のマジコメを書く場合?

411 名前:400 mailto:sage [2010/03/13(土) 14:26:51 ]
>>409
文法を覚える前にテストをするもんじゃないですねwww
助かりました、ありがとうございます

412 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:44:08 ]
>>403
HTMLファイルでいいならシェルから

gem environment

した出力の

- GEM PATHS:

の1行目(になかったら2行目)の場所の doc ディレクトリの中に

413 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:20:07 ]
#=>って習慣なの?

414 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:25:32 ]
>>413
doc.okkez.net/187/view/help

415 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:26:05 ]
習慣かどうかはしらん
ふつうコメントの直後にスペースをひとつ挟むから
# => value だよな
はちどりのRuby本もそうなってる

416 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:39:23 ]
個人的にはあまり好きではない
まあ、書籍向けの表現だと思う

417 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:23:40 ]
gem install -r XXXX
ERROR: could not find gem XXXX locally or in a repository
何これ?



418 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:33:32 ]
文字通り。


419 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:33:47 ]
>>417
その質問に至った経緯をまず聞こうか

420 名前:413 mailto:sage [2010/03/13(土) 17:37:04 ]
>>419
linuxでそう入力しただけだけど
得にそれ以外に何もしていない

421 名前:420 mailto:sage [2010/03/13(土) 17:37:46 ]
名前を間違えた
>>417

422 名前:420 mailto:sage [2010/03/13(土) 17:39:28 ]
ごめん、ただのスペルミスですたorz

423 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:39:54 ]
まずはgem search- rを使うんだ、でその結果から選ぶがよろし
自分で入力せずに素直にbash,zshの補完機能に頼った方がいいと思う

424 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 21:46:53 ]
他の言語のisXXXメソッドは、XXX?とrubyではなってるみたいですね
三項演算子とかと一緒に使うと読みにくいと思います
お前らはどうやっていますか?

return windows.visible? ? 値A : 値B

425 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:07:58 ]
それほどでも・・・
return (windows.visible?) ? 値a : 値b


426 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:10:57 ]
ぶっちゃけ、うっかり
window.visible? A : B
と書いて怒られることはよくある。


427 名前:424 mailto:sage [2010/03/13(土) 22:13:57 ]
そんなもんですか
そんじゃ気にしないようにしますわ



428 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:20:29 ]
条件演算子はぶっちゃけそれほど使わない
不自然感を感じてるうちにifとかに書き換わるのでむしろラッキー

429 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:03:17 ]
include Enumerable した場合、自分のクラスで each を定義しますが

def each
@array.each do |e|
yield(e)
end
end

def each(&block)
@array.each(&block)
end

どちらが好ましい書き方なんでしょうか?

430 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:27:40 ]
後者

irb1.9> class C; include Enumerable; def initialize; @a=[1,2,3]; end; def each(&b); @a.each(&b); end; end
irb1.9> p C.new.each
#<Enumerator:0x931483c>

irb1.9> class C; include Enumerable; def initialize; @a=[1,2,3]; end; def each; @a.each{|e| yield(e)}; end; end
irb1.9> C.new.each
LocalJumpError: no block given (yield)


431 名前:429 mailto:sage [2010/03/13(土) 23:43:14 ]
>>430
なるほど、ありがとうございます。

432 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:00:43 ]
前者は昔の名残だね。

433 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:10:16 ]
前者は return @array.to_enum unless block_given? を最初
にやればよさそうだけど、今回は無理に使うこともないな。


434 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:16:42 ]
javaかC++のプログラマのための、Ruby入門のサイトを教えてください

435 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:19:42 ]
www.google.co.jp/search?q=Ruby%E5%85%A5%E9%96%80&ie=UTF-8

436 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:21:15 ]
C++やJavaの特有事情は忘れて勉強したほうが習得はうまくいきそうな気がする
それこそBasicの制御構造レベルの知識だけある人のほうが吸収早そう

437 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:44:12 ]
>>424
return windows.visible?? a : b
疑問符を二個つなげてすげー疑問って雰囲気を醸し出す



438 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:48:41 ]
>>386 のチケット、 r26909 で修正された。
$ ruby -ve "puts File.expand_path('あ', '/'.force_encoding('US-ASCII'))"
ruby 1.9.2dev (2010-03-13 trunk 26909) [x86_64-darwin10.2.0]
/あ


439 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 02:15:40 ]
>>430
前者の書き方しか知らなかった。

440 名前:66 mailto:sage [2010/03/14(日) 07:03:08 ]
>>395
今度から本スレに書きます。

>>438
ありがとうございました。
確認しました。


441 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 08:44:47 ]
春休みで盛況だなw

442 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:49:30 ]
moduleってパッケージとMixinを、実現するための予約語なんだよね
Mixinは実装を持ったインターフェイスみたいなもんだから、
moduleはmoduleを継承する事ができるの?

443 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:18:51 ]
>>438
乙乙!!

444 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:24:46 ]
>>442
> moduleはmoduleを継承する事ができるの?
そもそも文法的に継承できない(module M2 < M1 は SyntaxError)

メソッド検索順位のひとつ上にモジュールをぶちこむ include を使う

module M1; def m; "M1!"; end; end
module M2; include M1; end # M2 の上に M1
module M3; include M2; end # M3 の上に M2
module M4; include M3; end # M4 の上に M3
class C; include M4; end # C の上に M4

p C.new.m
p C.ancestors # 継承とインクルード込みの検索優先順位を表示

結果

"M1!"
[C, M4, M3, M2, M1, Object, Kernel]

検索順位的には継承と同じなので実用上の問題はない

class C1; end
class C2 < C1; end
class C3 < C2; end
p C3.ancestors #=> [C3, C2, C1, Object, Kernel]

445 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:40:44 ]
じゃあ継承でいいじゃん

446 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:46:49 ]
>>445
よくねー

人間を継承した俺がいたとして、翼が欲しいと思ったら

class 俺 < 翼
end

するのか? 俺は翼の一種なのか? 俺は翼の子分か? 人間且つ翼の俺って何?
翼って機能だろ

class 俺
機能追加 翼
end

とするのが筋だろ、わかりやすいし、渾然一体になる継承よりは機能外すのも簡単そうだ
だから翼はモジュールにして、includeで追加する

実際は
俺 = 人間.new(params)
俺.extend(翼)
とするのが妥当ではあるがまあ細かいこと気にするな禿げるぞ

447 名前:442 mailto:sage [2010/03/14(日) 13:12:23 ]
>>444,>>446
ありがとう

>>445
なりすましっぽく見えるレスだな



448 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:18:08 ]
○引数で複数のディレクトリパスを与える
○与えられたディレクトリに対して再帰的にファイルを全て削除する
○ただし.txt拡張子が付くファイルのみ削除しない

プログラミングに不慣れながらこんなスクリプトを書こうと思い、以下のようになりました。

#!/usr/bin/ruby
require 'fileutils'
ARGV.each do |i|
FileUtils.rm(Dir.glob(i + '**/*[^(txt)]'), :force => true)
end

突っ込みどころなどありましたら教えていただけないでしょうか。
簡単なテストをすると意図したように動くのですが少し不安なので質問させていただきました。
自分で怪しいと思ってる箇所は以下の2箇所です。
@ i + '**/*[^(txt)]' こんな指定の仕方でいいのだろうか
AそもそもFileUtilを使うべきなのか

宜しくお願いします。

449 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:25:51 ]
>>448
他のスレから飛ばされてきたなら、
飛ばされましたって書かないとダメだよ

450 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:39:50 ]
>>448
死んでいいよ

451 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:41:46 ]
Dir.globのワイルドカードはあまり知らんが(Windowsユーザーなもので)
否定形なのはRubyでやったほうが無難だと思う

Dir.glob(i.sub(/\/?$/,'/**/*')).reject{|e| test(?d,e) or e =~ /\.txt$/i}


452 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:43:52 ]
i ってなんだろう?
そもそもグロブでいいのか。

453 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:45:01 ]
require 'fileutils'
noop = verbose = ARGV.include?(':noop')
ARGV.each do |s|
pathlist = Dir.glob(File.join(s, '**/*'))
pathlist.delete_if{|path| File.extname(path) == '.txt'}
pathlist.each do |path|
FileUtils.rm(path, :force => true, :noop => noop, :verbose => verbose)
end
end

$ ruby ./del.rb tgtdir :noop


454 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:45:48 ]
*[^(txt)] は、
最後の文字が 開き括弧 でも t でも x でも t でも(アゲイン) 閉じ括弧 でもない
という意味になるんじゃないか?





455 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:48:11 ]
>>453
next ですっ飛ばしていいと思う

require 'fileutils'
noop = verbose = ARGV.include?(':noop')
ARGV.each do |s|
Dir.glob(File.join(s, '**/*')).each do |path|
next if File.extname(path) == '.txt'
FileUtils.rm_r(path, :force => true, :noop => noop, :verbose => verbose)
end
end


456 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:48:38 ]
>>454
それはない

457 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:56:02 ]
$ ls
x.c x.doc x.tex x.txt
$ ruby -ve 'p Dir.glob("*[^(txt)]")'
ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]
["x.c", "x.doc"]




458 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:57:18 ]
はいはい勘違いゴルファーは帰ってね

459 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:58:40 ]
[^(txt)]を検証しただけじゃね?

460 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:00:42 ]
マニュアル嫁でよくね?

461 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:01:32 ]
どっちでもいいよ…

462 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:04:39 ]
ここは初心者スレだろ?
テンプレ読めない奴はカエレ
暴れるなら本スレでやr

463 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:05:49 ]
検証が漏れてないかどうかはどうやって検証すればいいのかという

464 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:11:10 ]
>>458
どこをゴルフと誤認したのか気になる。


465 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 01:18:47 ]
rmdir -rで綺麗さっぱり消せばいいのにw

466 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 01:54:20 ]
RubyをWindowsで開発環境構築する方法教えてください。
OSはWindows7です

467 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 01:55:11 ]
開発環境ってたとえばなーに



468 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 02:22:10 ]
>>448
「再帰的」と書かれていますが、別に find を使うような要件ではなく
引数のディレクトリ直下のみ走査すればよさそうなので、こんなかんじ
ではいかがでしょうか。

require 'pathname'
ARGV.each do |d|
Pathname(d).children.each do |f|
f.unlink unless f.extname == ".txt"
end
end

# Pathname は標準添付ライブラリだから使ってもいいよね

ところで、Ruby に限らず Perl でも Python でも glob ってシェルの
ワイルドカード展開のエミュレートだと思いますが、機能としては中途半
端(文字列の単純比較 < glob < 正規表現活用)ですし、プラットフォーム
毎に微妙な挙動差も考えるとムダにドツボにはまりそうですし、(少なく
とも「初心者」は)あまり積極的に使わない方がよくない?


469 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 02:33:02 ]
>>468
書いてるあなたがすでにglobの罠にはまっているという。
再帰的に走査したいんだよ。> **/

470 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 02:42:35 ]
Dir.glob('**/*') は許容されるべき
というか普通はこれしか使わない
残りは返ってきた配列に入った文字列を正規表現とかでどうにかする
短く1行で書かないと家にいる妻がスナイパーに撃たれるとかそういう時にのみグラブ条件を書く

471 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 04:18:21 ]
1行記述を強要する妻かw

472 名前:468 mailto:sage [2010/03/15(月) 05:11:59 ]
>>469
うへ、自分がドツボにはまっていました、というか **/* の意味を
知らんかった orz

>>470
を参考に Pathname.glob でも使えばよいのでしょうが、あえて
Find 利用ということで:

require 'pathname'
require 'find'
Find.find(*ARGV) do |f|
t = Pathname(f)
t.unlink if t.file? and t.extname != ".txt"
end




473 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 05:24:32 ]
>>471
強要しているのはスナイバーかと。>>470 は愛妻家なんですね。

474 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 08:55:46 ]
いや恐妻家なんだろうw

475 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 09:57:07 ]
要求を呑まないと何も知らない家族が射殺されるというのはわりとポピュラーな展開かと

グラブ文字処理はメソッド独自だから、明白な全抜き出し以外は正規表現などを駆使、という方向性は妥当
グラブ処理の時点で小細工すると後々遺恨になるぞ

476 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 10:41:36 ]
なるほど

477 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 12:43:17 ]
>>466
まずはテンプレくらい嫁よ

・ActiveScriptRubyをインスコ
・るびまのchmをダウンロード
・NetBeans IDE(統合開発環境)をインスコ

これでなんとかなるだろ。Rails開発ならcoLinuxかPortableUbuntu入れろ。



478 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 12:44:12 ]
>>466
あ、あと、c:\Program Files\以下にはRubyをインスコしない方がいいみたい。
RubyGemsが動作しないとかの報告があった
(今のバージョンはどうかしらん)

479 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 12:53:05 ]
ねこび〜ん勢力の工作を検知しました

480 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:02:44 ]
Windowsでも、XPなら
c:\usr\local\ruby
とかにインストールした方が精神衛生上よろしい気がする
UACとか入るとそう簡単にはいかないんだろうけど

481 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:17:04 ]
>>479
ねこび〜んはダメだね
コードの補完が遅すぎて使えない

482 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:35:16 ]
ActiveScriptRubyはデフォルトのインストール場所が性善説に過ぎる
ttp://d.hatena.ne.jp/kitamomonga/20100202/ruby_watir_crash_with_autoitx3
まあこれは間違えるほうが悪いんだけれども

483 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:06:24 ]
array = [1,2,3,4,5]とすると配列ができますが、わかんなくなりませんか?
javaとかだったら、IDEが配列だよって教えてくれるけど

やっぱり、最初にこうするべきなんですかね?
array = Array.new


484 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:20:31 ]
>483
ならない

Array.new はリテラルに比べると遅い。

485 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:21:39 ]
>>477
>・るびまのchmをダウンロード
リファレンスchmならASRに同梱されてたはず
それと初心者スレでるりまとは呼ばない方がいいよ

486 名前:483 mailto:sage [2010/03/15(月) 14:27:49 ]
>>484
そうですか
ありがとうございます

487 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:44:11 ]
a = [1, 2, 3, 4, 5] はわけわかんなくならないが

hogedata = []



hogedata = {}

との区別がわけわかんなくなることはある
ので、そういうときは

hogedata = Array.new

と書くことはある
要素が入ってれば配列なのか Hash なのかは一発なのでわざわざ初期化なんてしない



488 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:14:22 ]
>>485
> それと初心者スレでるりまとは呼ばない方がいいよ
なんで?


489 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:05:56 ]
というかるりまるびまってなんですか?

490 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:18:20 ]
ここは大喜利すべきか

491 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:21:11 ]
まあ、マニュアルという認識でいいよ
chm形式のマニュアル読んでれば十分

492 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:24:11 ]
>>488
マイナーな専門用語は避けるべき。初心者スレだし。

493 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:25:13 ]
>>488
まさにこの流れが理由
るびまと区別がついてないならなおさら

494 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:50:12 ]
何やら貢献できたようで何より
1.9.1は初心者向けじゃなかったのかー
今まさにダブルクリッコするところだったぜー
ここに来てよかった
ってことでActiveScriptRubyなるものをダウソしてきます

495 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:51:41 ]
ここIDないのね
494は489の人てことでw

496 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 17:31:53 ]
質問です
エクセルで書かれた名簿を整理して出力するプログラムを書いているのですが、
名前、郵便番号、住所の分離が上手くいきません
与えられた名簿は半角or全角スペースで区切られているのでsplitを使おうと試みているのですが、
例えば以下のように記述すると"―"や"県"が消えてしまいます

puts '山田 太郎   〒0000−0000 山田県山田333-333-333-333'.split(/[  〒]+/)

何か良い知恵があればなにとぞご教授お願いします
ちなみに元のプログラムではputsせず、分離後にある配列に入れています

497 名前:496 mailto:sage [2010/03/15(月) 17:34:18 ]
追記失礼します
rubyはver1,87を使用しております



498 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 17:48:49 ]
>>496
Excelってことなので、WindowsでSJISのソースコードとして、
スクリプトの先頭に

#! ruby -Ks

もっと推奨の方法があったかもしれない

499 名前:496 mailto:sage [2010/03/15(月) 17:51:44 ]
>>498
ご教授いただいたとおりにしたところ速やかに改善されました!
ありがとうございます

500 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 17:53:59 ]
Rubyが取り扱う文字のエンコーディングを指定しなければASCIIとして扱われてしまうのでそういうことになる
Ruby 1.8まででは
1 Ruby起動時にスイッチで -Ks とかで指定する
2 スクリプト先頭に
#!ruby -Ks
とか書いておくとスクリプト実行時にそのスイッチが考慮される
3 $KCODE を設定する
4 個々の正規表現のオプションでエンコーディングを指定する

ただし1,2はスクリプト自体のエンコーディングと正規表現の振る舞いの両者を変更するが
3,4だと正規表現の振る舞いを変えるだけなので
スクリプトがシフトJISで書かれていると
p "表"  # エンコーディングを正しく指定しないと 文字列リテラルが終了してないことに("\225\" と同じ扱い)
とかのいわゆるダメ文字(2バイト目が\)問題にぶち当たる

UTF-8やEUC-JPだとそのような問題は起きない(のかな?)


501 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:05:26 ]
るびまってRubyのマニュアルのことだったの?
Ruby Magazineの事だと思ってた

502 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:15:09 ]
>>491
どもです
礼するの忘れてやした

503 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:16:09 ]
るびま:Rubyist Magazine
るりま:Ruby reference manual

Ruby Magazineだと思いこんでると、無関係な記事が多すぎるように映るかもね

504 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:16:29 ]
>>501
どっちでもいいよ
いやよくはないが
初心者的にはるびまは読むべきではない
古くて有害な情報が渾然一体となっている

505 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:19:31 ]
>>503
それ、テンプレに入れたらどうかね?

506 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:24:13 ]
Rubyinstか。失礼。
上のほうよく見たらるびまとるりまの区別が付いてない(人がいる)って話だったのね
読み違えてたわ

507 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:27:44 ]
まだ間違ってるぞw



508 名前:496 mailto:sage [2010/03/15(月) 18:29:54 ]
>>500
亀ですが、ありがとうございます
これを気に文字コードにも意識を向けてみます

509 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 19:16:01 ]
くっ
Rubyist

510 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 19:51:11 ]
includeは名前空間を使えるようにするものってことで、おk?
C++@namespaceみたいな感じ

511 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 19:53:43 ]
なんというか include はふつうに include だと思うのだが
既存言語の機能になぞらえないと理解し難いほど複雑難解な概念なのだろうか

512 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:00:50 ]
includeの動作的には本当に>>444だよね
メソッドを探す順番の指定をする方法のひとつ

513 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:07:50 ]
モジュールの存在理由のほうがムズカシイかもしれない

514 名前:510 mailto:sage [2010/03/15(月) 20:34:24 ]
読んでいた記事が間違えていたらしい

本当の使い方は、結局なんなんだろ?
Mixinを実現するためにしか使わないのか

515 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:39:59 ]
モジュールは、メソッドを用途ごとにまとめるためのしくみ
メソッドがあるだけで、オブジェクトには依存しない機能のカタマリ

共通の機能をメソッドから追い出して別途メソッドを作るのと同じように、
共通の機能をクラスから追い出して別途モジュールを作る(でincludeする)というのも妥当

516 名前:デフォルトの名無しさん [2010/03/15(月) 20:45:11 ]
Mixinのためと単なる名前空間のため両方に使われる

517 名前:510 mailto:sage [2010/03/15(月) 20:54:21 ]
>>515-516
thx



518 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 22:17:04 ]
プロパティも実装されていない糞言語

519 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 22:27:30 ]
それで遊んでくれるのはPythonスレぐらいだぞ
ここは意外とDRY

520 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 22:52:35 ]
クラスインスタンス変数とは、そのクラスオブジェクトの特異クラスに属する
インスタンス変数という理解で正しいですか?

521 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 23:00:11 ]
ごめん、さっき違うスレで質問したけど理解してなかったorz

3 class Hoge
4  def self.set
5    @hoge = "dynamic"
6    $hoge = "static"
7  end
8
9  def self.out
10    puts @hoge
11    puts $hoge
12   end
13 end
14
15 Hoge.set
16 Hoge.out

実効結果
dynamic
static

$hogeと@hogeって何が違うのさ?

522 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 23:12:55 ]
理解してたらああは言わん
クラスインスタンス変数はクラスオブジェクトが存在する限り存在する

Hoge と書くことで定数 Hoge に Class クラスのインスタンスが Ruby によってセットされる
(同名のクラス定義がなかった場合は定数とみなされ、事前に代入されてない未定義定数でエラー)
で、Hoge.set を実行することでインスタンス変数 @hoge がインスタンスの中でふつうに設定される
それが属するインスタンスとは Class クラスのインスタンスで、つまり定数 Hoge が指すものだ
だから、無理矢理 Hoge の内容を nil にするとインスタンス変数 @hoge はスコープごと失なわれる

irb> class Hoge; def self.set; @hoge='hoge'; end; end
irb> Hoge.set
irb> p Hoge.instance_variable_get(:@hoge)
"hoge"
irb> Hoge = nil
(irb):4: warning: already initialized constant Hoge
irb> p Hoge.instance_variable_get(:@hoge)
nil


523 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 23:22:49 ]
特異メソッド上で書くからわかりにくい?

class Hoge
@hoge2="hoge2"
end

p Hoge.instance_variable_get(:@hoge2)

は "hoge2" を返すよ

524 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 23:38:33 ]
"プログラミング言語 Ruby" のp.326のなかほどに
クオート文字列にマッチすることを意図した正規表現の例が以下のように
載ってるんだけど,文字集合内で番号指定後方参照ってできたっけ?

/(['"])[^\1]*\1/

わがRuby1.9.1ではこうなった

re = /(['"])[^\1]*\1/
p %('\1')[re] #=> nil
p %('hoge'hoge')[re] #=> "'hoge'hoge'"

いちおう念のために言っておくと
クオート文字列にマッチする正規表現を求めているわけじゃなくて
文字集合内で後方参照や部分式呼出しができるか否かの確認ね

525 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:23:29 ]
>>457が何でそうなるのか解説求む

526 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:27:01 ]
>>525
>>454


527 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:28:31 ]
globってワイルドカードでも正規表現でもないのか
なんでこんな面倒なもん作ったんだ



528 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:31:15 ]
いや、zshの**を取り込んでるくらいで、
ワイルドカード(UNIXシェルの、だが)だよ。


529 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:31:34 ]
ああ勘違いしてたわ txtだけはじかれてるのかと思った

530 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:32:09 ]
ほぼワイルドカードじゃね?

531 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:32:50 ]
あら遅レス失礼した

532 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:33:41 ]
globにlsコンパチの引数受け付けるようにしてくれ

533 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:34:20 ]
>>532
UNIXで誰がファイル名展開をやってるか知ってるかい?


534 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:44:33 ]
えっ? 誰かがやってるなんてことあるわけないでしょう?

535 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 03:16:47 ]
echo *

536 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 03:27:47 ]
もうshellの機能をrubyに組み込むべきだなw
login shellを/bin/rubyshにできていいかもしれないw

537 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 07:53:49 ]
RubyShell って面白そうだな。
誰も使わないだろうけど。



538 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 07:55:47 ]
RashだかRushってシェルがなかったっけ

539 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 08:46:18 ]
イラネ

540 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 09:30:18 ]
とある人のウェブページに、perlをログインシェルとして使ってみた報告があるぞ。
一度読んでおくといい。

541 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 09:33:51 ]
いやRushが既にあるから

542 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 11:51:29 ]
コマンドライン引数は定数じゃないの?
普通に文字列を代入できるんだけど

543 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 12:01:40 ]
>>542
Rubyの定数は、警告 warning: already initialized constant ARGV
は出るけど代入自体はできる。

あ、あと、 ARGV << 'hoge' なんてのは「定数への代入」じゃないからな。


544 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 12:03:05 ]
$ ruby -e "ARGV=nil"
-e:1: warning: already initialized constant ARGV

いやきちんと定数として警告出ますが

というかただの定数に過ぎない
Rubyはこれを起動時から用意してるだけで、用意したあとは特別扱いをしない
ただの配列を指す定数で、配列としての動作に従う
配列だから、要素を弄る限りはオブジェクトIDが同一で、定数としての適正を失わない

irb> arr = [1, 2, 3]
irb> arr[0] = 'one'
irb> ARGV[0] = 'one'


545 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 12:18:43 ]
代入はできるけど、データのコンテナとして ARGV を使うのはおすすめはしない
ただ、これは

グローバル変数と定数を使う→
クラス変数を使う→
インスタンス変数だけを使う→
全部引数での受け渡しにする→
引数の数が大量になって鬱陶しいのでアクセサメソッド経由のインスタンス変数と引数の併用にする

というような変遷をどうしてもみんな辿るので今はまだ気にしなくてもいいとも言える

546 名前:542 mailto:sage [2010/03/16(火) 12:25:44 ]
とにかくコマンドライン引数には入れるなってことでしょ

547 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 12:47:18 ]
def hoge=
この=って何?



548 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:00:04 ]
>>547
そのまんま
「hoge=」 という5文字の名前のメソッド

ただ、末尾に = があるメソッド定義を Ruby は特別に扱うので、引数つきで定義しておいたほうがいい
あと、foo.hoge = と = の前に空白があっても、Ruby はとりあえず foo のメソッドの中から hoge= を探す

foo.set_hoge(v) とするよりも foo.hoge = v と書けたほうがなんかわかりやすくね、という理由で特別扱いされてる

549 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:07:59 ]
「プログラミングRuby 第2版 言語編」ですが、今から読むには
古すぎますか?それとも第3版が出て、絶版になる前に読んでおく
べき?

たのしいRuby、Well-Grounded Rubyist、初めてのRuby
は読みました。


550 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:08:28 ]
>>548
理解した、ありがとう

551 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:16:29 ]
>>548
>「hoge=」 という5文字の名前のメソッド

通常の方法では代入文でしか呼べないから、ただのメソッドではなく演算子定義の一種と見た方がいい

一応引数無しでも定義できるけど__send__使わないと引数なしでは呼べない

552 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:17:42 ]
>>551
Rubyの演算子はメソッドですよ

553 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:24:32 ]
Rubyのユーザーは学生と暇人が多いのか?
C/C++のスレには全然書き込みが無いんだけど

Rubyは簡単だから、学生に人気があるのかな

554 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:29:41 ]
最近質問が多いね、春休みなんじゃないの?
まあ俺も春休みだけど。。

555 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:30:46 ]
去年からずっとやすm

556 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:31:17 ]
仕事探せ

557 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:32:16 ]
>>555
勝った!



558 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:33:11 ]
>>557
お前は必死に仕事探せ

559 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:35:25 ]
学生と暇人とニートがいないとプログラミング言語は成長致しませぬゆえ

560 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:37:43 ]
学生と暇人なんて放っておいても沸いてくるんだから
無職連中はとりあえず生活基盤作れ

561 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:39:35 ]
暇な香具師を無料で奉仕させてこそオープンソースだしな。

562 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 14:18:15 ]
>>549
初めてのRuby(yugui本)を読んで自分のものと出来たのなら
好きに進んでいいよ。


563 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 14:43:10 ]
Rubyはいつになったら仕様が固定されるの?
安心して使えない

564 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 14:48:04 ]
1.8 は少なくともあと5年は使えるな。

565 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 15:06:10 ]
>>562
レスどうも。
ツール作りでもしてみます。

566 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 15:08:40 ]
本の内容が新しいかどうかという話なら、新しくはない

1.8.7の1.9新機能入りプログラミングができないというのはなんとも歯痒い
が、それはWebの情報でアップデートできる程度なので問題はなさそうかも
むしろ最初からこれ教えたら混乱しそう

567 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 16:19:22 ]
>>563
固定化されることはないと思う



568 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 16:22:33 ]
>>563はそもそも使わないからどうでもいい

569 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 18:52:28 ]
ちなみに今から使い始めるならどのバージョンがお勧めなんだ

570 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 18:58:53 ]
>>569はテンプレも読まないからどうでもいい

571 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 18:58:54 ]
始めるだけなら 1.8.7 の最新だと思うが、
最新(p249)はString#inspectで最後の多バイト文字が文字化けするという
デバッグや実験中に微妙にイラッとするバグがある。
気になるなら p174 で。
1.9系は夏に1.9.2が出るのでそのときまた判断だな。


572 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:16:27 ]
やっと1.9sp2が出るのか。

573 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:18:21 ]
それはまだ
1.9正式が出ただけ
sp1が今度出る

574 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:22:45 ]
>>571
$KCODE を設定した上で p で日本語を表示しようとした場合に最後の文字がバイト列のままになる


p で日本語を表示しようとさえしなければ問題はないし、俺は表示しようと思ったこともない
というかむしろ p を使うような事態のときは1.9でもデフォルトでバイト列表示しろやわかりにくいわぼけー

どういう日本語を普段扱ってるかで違うんだろうな、このへん

575 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:25:49 ]
p の意義からしてエンコーディングを考慮するほうが正当
ShiftJIS 文字列とか表示されて端末乱れるのはイラッとくるが

576 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:34:14 ]
オブジェクトを機能拡張するためにモジュールで拡張したんだけど
さらに状態の保持が必要な機能追加がしたくなった
モジュールへの修正じゃ対応できないの?

577 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:35:16 ]
require 'Hoge'
include Hoge
なんで、requireにはシングルクォートを付けないと怒られるのに
includeには付けなくても怒られないの?

たまたま、そうなっただけなのかな〜



578 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:41:28 ]
>>577
require は基本的にはファイルパス
実際のファイルの大文字小文字が考慮される
(が、あまりにも面倒なのでファイル名の時点で小文字だけにしようという取り決めがある)

include の引数はモジュール名、つまり定数

579 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:44:08 ]
>>576
すれば

include はするたびにその順番に機能する

580 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:44:15 ]
require 'Hoge' は主ファイル名だからじゃね?

581 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:46:41 ]
>>578-580
ありがとう

582 名前:576 mailto:sage [2010/03/16(火) 19:47:24 ]
>>579 (and all)
どうすれば状態を保持できますか?

583 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:51:32 ]
状態って何

584 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:52:35 ]
>>577
requireも単なる関数的メソッドとして実装されているのも理由の一つ
Hogeというキーワードはrequireの実行を終える前には当然定義されていないし
予約語でもないから、リテラルを使うしか渡す方法(requireメソッドを実行する方法)がない

「Hogeをrequireしろ」「Hogeってなんだ?」
「Hogeを読めばわかる」「だからそのHogeって何だよ」
NameError: uninitialized constant Hoge

Symbolでもよさそうだけどそのへんは>>578なんだろう

585 名前:576 mailto:sage [2010/03/16(火) 20:01:14 ]
もともとのオブジェクト以外に追加の情報を保持したいんですが
たとえば配列クラスに最大値を保持するなど

586 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 20:22:21 ]
>>585
エスパー発揮で

obj = [1,2,3]
obj.instance_eval{ @mymax = self.max }
obj.define_singleton_method(:mymax){ @mymax }
p obj.mymax

なんか頭の悪そうなコードですまん

587 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 20:25:30 ]
>>585
本当にしたいことを書いたほうがいいと思う

include ではクラスにもともとあるメソッドを上書きすることができる
でも、おそらくはそれが解決方法ではないと思われ

組み込みや標準添付のクラスを拡張することは好ましいこととは考えられてない(オープンクラスのくせに)
自分でクラスを作ってインスタンス変数とかにオブジェクトを保持するほうがいい
オブジェクトの操作は自作のクラスのメソッド経由で行う

class HogeData
def initialize(a)
raise ArgumentError, 'must be Array' unless a.kind_of?(Array)
@hogedata = a
end
def <<(e)
return if @hogedata.size > 2
@hogedata << e
end
def data; @hogedata; end
end


irb> hoge = HogeData.new([1,2])
irb> p hoge.data
[1, 2]
irb> hoge << 3
irb> p hoge.data
[1, 2, 3]
irb> hoge << 4
irb> p hoge.data
[1, 2, 3]



588 名前:576 mailto:sage [2010/03/16(火) 21:18:59 ]
では言い直します。
自分で書いたクラスのオブジェクトに追加の情報を持たせるには、
継承したり別のクラスに包含すれば可能だけど、すでにModuleで拡張しているので
そこはできるだけ触らずにModuleに少し書き足す程度で実現できないか?
Module内でインスタンス変数的な情報を保持する何かを定義できないか?

589 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 21:34:12 ]
>>588
よくわからんけどこれでダメ?
ダメならどうダメかをコードとして提示してくれると他の案を言えるかも

module M
end

class C
include M
def foo
@foo
end
end

module M
def bar
@foo = :bar
end
end

obj = C.new
obj.bar
p obj.foo #=> :bar

590 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 21:53:46 ]
>>586
Moduleの使い方・考え方が間違ってるような気がするなあ

あるクラスがModuleをincludeした時点でそのクラスのインスタンスは
存在していないわけだからインスタンス変数を設定したり保持したり
できないでしょ
アクセサの定義ならModuleでもできるけど

module M
 def data
  @data
 end
 def data=(arg)
  @data = arg
 end
end

class C
 include M
end

591 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 21:55:33 ]
591レス目
ズレている人はレスデータの再読み込みをしてください

592 名前:576 mailto:sage [2010/03/16(火) 22:01:45 ]
それだとobj.barを書かなければいけません。
質問は、Module内を書き換えるだけで、外側には一切手を加えずに@fooを初期化できるかということです。

593 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:02:14 ]
なにその出来の悪いGUIのリストみたいな現象

594 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:04:28 ]
module内でinitialize書き直したら?

595 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:08:09 ]
>>594
それはできない

596 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:16:53 ]
ほんとにできない?

597 名前:576 mailto:sage [2010/03/16(火) 22:18:32 ]
>>590
インスタンスが作成された時点でincludeされたmoduleを通して
何かしらinitialize的メッセージが送られるようなことは無いよねって話です
あるいはC言語で言うところのスタティック変数は無いよねってことでも結構です


>>594もう試した



598 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:20:06 ]
module M
 def self.included(klass)
  klass.class_eval do
   def initialize
    @foo = :bar
   end
  end
 end
end


class C
 def initialize
  @foo = :baz
 end
 attr_reader :foo
 include M
end

p C.new.foo #=> :bar

599 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:21:22 ]
>>595
めんどくさい、が正解だと思う
include先が継承とかしてたらsuper呼ばんといかん

600 名前:576 mailto:sage [2010/03/16(火) 22:51:09 ]
>>598
すばらしい!!
ありがとうございました。

601 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:02:54 ]
読み込むモジュールを変えるとinitializeが
スイッチされるってのは面白いかも

なんか騙されてるような気もするなあ

602 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:16:58 ]
まあ、あまり性質のよいものではない

603 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:26:10 ]
複雑なマッチ条件を使いたい場合、
if /hoge/ =~ obj.str and /huga/ !~ obj.str and ...
と延々と続いて見づらいのですが、スマートに書けますか?


604 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:27:24 ]
>>603
メソッドにしてしまうのがひとつの手ではある
基本的には全部書くしかない

605 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:31:44 ]
自分が時々やるのは
match1 = obj.str =~ /hoge/
match2 = obj.str !~ /fuga/
match3 = obj.str =~ /fuge/
if match1 and match2 and match3
 body_stmt
end
こう。

でも条件分岐だけで10行超えるなら独立のメソッドにする

606 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 01:02:19 ]
なるほど。ありがとうございます。

607 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 03:52:24 ]
&&= 使った方が無駄なマッチングがないんじゃないかな。
正規表現のマッチくらいでそんなに重くなったりしないけど〜。



608 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 08:17:07 ]
>>481
aptanaよりは軽いぞw

そもそもRubyの文脈考慮するコード補完でまともに高速に補完できるIDEみたことない。
俺もそれは困っているし、もっとよいIDEがあればぜひ教えて欲しい。

irbとかJavaとかC#みたいにバンバン補完できればいいんだけどねー。早々簡単にできないのわかってていってるけどw

テキストエディタレベルの単語補完ならばNetBeansでも高速できる(デフォだとたしかCtrl+K)。

609 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 08:43:03 ]
現在の単語に続く語を見つけるだけならEmacsでも超高速でできるぞ

610 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 09:03:06 ]
>>482
> ttp://d.hatena.ne.jp/kitamomonga/20100202/ruby_watir_crash_with_autoitx3
複数引数のsystemを使うべきところだな。
クォートだとなんだの気にする必要がなくなる。


611 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 09:33:26 ]
>>609
もちろん、vimでもxyzzyでも単語の補完はできるけど、>>481はそういうこといってるんじゃないんだろうし
インテリセンスみたいなやつだろ

612 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 09:52:28 ]
>>575
> ShiftJIS 文字列とか表示されて端末乱れるのはイラッとくるが
これは 1.9.2 の改善点の一つ

613 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:07:47 ]
実行しているスクリプトが置かれているディレクトリを調べる方法を教えてください

614 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:10:40 ]
__FILE__

615 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:12:36 ]
File.dirname($0)

616 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:19:01 ]
Dir.pwd

617 名前:613 mailto:sage [2010/03/17(水) 11:25:40 ]
絶対パスで欲しいんですが



618 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:27:05 ]
expand_path … は内部で呼ばれてるからいらないんだっけか

619 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:31:17 ]
ああ、やっぱいるよな

>>617
:~$ cat a.rb
p File.dirname(__FILE__)
p File.dirname(File.expand_path(__FILE__))
:~$ ruby a.rb
"."
"/home/ore"
:~$ ruby /home/ore/a.rb
"/home/ore"
"/home/ore"


620 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:38:49 ]
>>481
>>608

NetBeansの文脈依存補完ってどのレベルまで補完してくれるの?
変数の参照先オブジェクト(のクラス)を推測したり
メソッドチェーンの返り値を推測して
続きのメソッド名を補完できたりする?

621 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:40:27 ]
>>618
だいぶ前にあったのは expand_path の基点となる第2引数が自動で dirname されてるという話だと思った
dirname の中で expand_path が使われるということはないように見える

622 名前:613 mailto:sage [2010/03/17(水) 11:51:55 ]
>>619
ありがとうございます

623 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:53:48 ]
$0 と __FILE__ ってどうちがうんですか?

624 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:59:29 ]
$0 は実行中のスクリプトのファイル名
__FILE__ はそれが書かれているファイル自身のファイル名

スクリプトファイルを実行した場合は両者が一致する。
requireなどで他のファイルから読み込まれた場合は一致しない。


625 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:09:46 ]
相談です。
ttp://www.rubylife.jp/ini/japan/index5.htmlのページにある
1 #! ruby -Ku
2 print("表示する")
3 [EDF]
というプログラムをterapadで作り保存してコマンドプロンプトで実行すると、
そのページに依れば文字化けした言葉が出てくるはずなのですが、しかし
test1-3.rb:2: unterminated string meets end of file
test1-3.rb:2: syntax error, unexpected $end, expecting ')'
と表示されます。
でも「表示する」の部分を「日本語で表示」に変えるとちゃんと文字化けします。
原因がプログラムで解決できるものなのかエディタを変えないといけないと解決できないのかも分からないので、
どうしたらよいかを教えてくれないでしょうか?

626 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:29:10 ]
俺はこのサイト(正確には「このチュートリアルサイト群」)はあまり好きではない
初期のSEOがあまりに迷惑で悪い印象が残ってしまっている

はともかく

>>625
あんま気にするな
表示する端末のサポートするエンコーディングと
文字列のエンコーディングが合致していないとまともに動作しない、が本質

ぶっちゃけ、日本語文字列を直接書いてしまったファイルが、-Ks などのエンコーディング指定なしで
日本語文字列を含んだRubyスクリプトとしてきちんと解釈される保証はない
「うわーまともに動いてねーよ」と納得したら次のステップに行ってよし

627 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:36:07 ]
回答ありがとうございます。納得してから気にせず先に進みたいと思います。

どうしても出費を抑えたいのでそういったサイトに頼っているのですが…
自業自得か。orz



628 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:37:44 ]
文字列変えるだけでパースエラーになったりならなかったりってのは
エンコーディングの不一致とは関係ないんじゃない?

表 (SJISのダメ文字のひとつ) の位置が問題なのかな。


629 名前:デフォルトの名無しさん [2010/03/17(水) 12:41:59 ]
RubyってWindows用だといろいろあるじゃないですか
Linux用の場合は1つしかないのでしょうか?
このへんであまり考えたくない為、もしLinuxで1つしかなのでしたらLinuxで始めたいと思います。

630 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:42:37 ]
それエンコードの不一致でおきる問題ですがな

631 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:43:33 ]
>>629
1.6.x
1.8.x
1.9.x
いろいろある
Rails のバージョンによってもさらにバリエーションがw


632 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:43:42 ]
>>629
まあ動作的にはひとつとみなしてよいかと
少なくともWindowsのような面倒なことはない

633 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:44:44 ]
Windows 版のどこがどう問題なのですか

634 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:46:21 ]
スレでWindowsという文字を見ると不機嫌になってしまうおじちゃんからいじめを受けます

635 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:48:55 ]
Windowsで使いたければPython使った方が良いんじゃない?
RubyはWindowsのメンテナが不足気味。LinuxかMacで使うべき。

Rails だって Windows はサポートしてなくて、今までたまたま
動いてたけどいつの間にか動かなくなったとか聴いた。

636 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:50:04 ]
ほらな

637 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:51:34 ]
漏れもそう思う
RubyはWindowsと相性が悪い
Pythonの方がWindowsとの親和性は高い
*nixの場合はどっちでも相性が良い
つまりPython>Rubyであって
Rubyを選ぶ理由がないんだよなぁ



638 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:57:48 ]
つまりC#最強ということですね

639 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:57:50 ]
Pythonってインデントで書くから気持ち悪い

640 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:59:06 ]
VBみたいな記述のRubyのが気持ち悪い

641 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:02:12 ]
end ってw

642 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:04:56 ]
Rubyはプログラミングと関係ない部分で手間がかかる

643 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:08:02 ]
>>637
そんなポータビリティが常に必要か?
たとえばMacOSXで動作しないバイナリを吐く言語で書く意味は何?

644 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:11:22 ]
うん、あなたはRubyをWrite once, run anywhereの再来だと吹き込まれたのかもしれないが、それは違う
それを暴いたのは俺たちかもしれないが、殴るなら暴いた人間ではなくあなたを騙した人間を殴れ

645 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:12:45 ]
IronRubyが出る頃には、まともになってる?

646 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:17:27 ]
>>644
似たようなものに「Rubyは初心者にも簡単」があるな

パソコン初心者やプログラミング言語初心者の人にとって独習可能なほど易しいとはそれほど思えない

647 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:34:44 ]
初期(または現在も)の謳い文句に「Cで拡張ライブラリを書くのも簡単」があった
これも

 「(動作上速度等で不満があれば、あなたが使い慣れている)Cで拡張ライブラリを書くのも
 (たとえばこんなふうにC言語でずらっと書けばほら)簡単」

という意味だったからな

初心者として想定しているレベルがそもそもぜんぜん違う
C言語をある程度使えることは当然だし、Perlや主要UNIXコマンドの動作を知っていることや
文字エンコーディングの知識をもっていることも当たり前とされている
(初心者の想定としてはワークステーションの使い方教えられて慣れた感じの大学3年生くらい?)

それはマニュアル見れば一目瞭然
「Cのあれ」「コマンドのあれ」「Perlのやつ」という表現ばかりだ
最近は文章上は若干表現が砕かれたが、知識として知っていることが前提なのは何も変わらないのでむしろ



648 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:37:57 ]
隔離スレに帰れ

649 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:39:04 ]
質問スレだしなあ

 ・ Ruby自体は便利
 ・ ただしコンピュータ初心者やプログラミング初心者が独習可能なほど易しいかは怪しい
 ・ Windows上ではあまり便利ではない
 ・ Rubyは便利だが、儲かることや役に立つこととは別の便利さ

こんな感じ?

650 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:42:47 ]

 ・ Rubyは自分のため
 ・ Javaは給料のため
 ・ Pythonは他人のため
 ・ Rubyがコンピュータ初心者やプログラミング初心者が独習可能なほど易しいかは怪しい
 ・ Rubyは自分のために使うと便利だが、Windows上ではあまり便利ではない

こうだ

651 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:44:48 ]
Windows上で便利に使いこなしてるおれは勝ち組

652 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:53:45 ]
Ruby厨っていつも言い訳してるよねw

便利ってなんだよw
まともなIDEもないのに便利も糞もあるか
ライブラリはバグだらけで使えない
バージョン変わると言語仕様も変わってソース書き直しw

653 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:55:38 ]
>>620
(NetBeans勧めておいてなんだが)文脈依存補完は重くてあまりつかってないんだが、
あまり優秀でない感じがした。irbの補完とどっこいどっこい

静的型付けの言語みたいに hoge.(ドット) ってうっていきなりリファレンス替わりにいきなり補完の候補だして
書き始めることはできない感じだった。補完速度の遅さももちろんあるが、候補が多すぎる。
メソッド名途中まで書いてからならかなりしぼれる。この辺はirbもそうだけど。

どんな技術で補完してるかは詳しくないので公式サイトなりでも調べてもらった方がよい気がする

654 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:56:32 ]
なんか春を感じるな

655 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:57:21 ]
>>646
(Windowsユーザー以外の、パソコン初心者以外には)「Rubyは初心者にも簡単」

656 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:08:29 ]
>>655
それは初心者とは言わない

コンソールでちまちまやっているのが日常のやつなんて一部
それなのに「初心者がはじめるにはどの言語か」という発言だけで
Rubyすすめるバカがいるからな

657 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:12:21 ]
>>656
あれは意図的な悪意だろ
俺らが止めることはもはやできない



658 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:29:59 ]
>>625です。エディタので文字コード指定再読み込みをUTF−8
でしたらちゃんとエラー表示がなくなり日本語が表示されましたので一応ご報告を。

659 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:47:00 ]
なんでもできるなら迷わずC#だな
これでできないことはないし
非常に便利

Rubyのどこが便利なんだよwwアホかw

660 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:55:30 ]
>>652 >>659
もりあがっているところ申し訳ないのだが、その手の話題は本スレでお願いしたい。

Rubyについて Part 39
pc12.2ch.net/test/read.cgi/tech/1265467681/

661 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:06:32 ]
これから学ぶならPHPではなくパイソンかルビーがオヌヌメ
って記事読んでこのスレに来たけど騙されたか・

662 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:12:20 ]
>>661
C#がいいよ
未だに進化し続けている言語はこれぐらい

663 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:19:37 ]
>>662
Pythonは進化は一休み宣言してる
Rubyは進化のためなら互換性を切り捨てることを厭わない

664 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:20:58 ]
>>661
これから(   のために)学ぶなら(   な)PHPではなく
(   な)パイソンか(   な)ルビーが(   の点で)(   な人に)オヌヌメ

これが全部埋まってないようなものは与太
信じるほうが悪い

665 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:22:23 ]
女に嫌われるタイプだなw

666 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:22:52 ]
PHPっていらない子なの?

667 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:23:37 ]
>>666
>>664



668 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:37:34 ]
むしろRubyは初心者向け言語ではない難しい言語だっていう
イメージをもっと広めてもらいたい

Rubyが超得意ですキリッっていっても
初心者向け言語ねプッ初心者いらね
とあしらわれるのが現状の就職戦線だからな

669 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:39:20 ]
rubyをやる気なくしてきた…(´;ω;`)

670 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:41:50 ]
今のところプログラムの話題なし

Ruby擁護レス、批判レス、バグ報告レスだけ

671 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:44:53 ]
Rubyで就職狙うなんてありえんわww

これがWindowsもないころなら
簡単と言ってもよかったがな
今更文字処理得意ですなんて言われてもな
真っ黒い画面で文字打つだけって最近のガキじゃ無理だな

672 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:49:34 ]
Rubyをやりたくてやるんじゃない、やってしまうのがRubyist

673 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:51:22 ]
>>671
加齢臭がします><

>真っ黒い画面で文字打つだけって最近のガキじゃ無理だな
小学生でも出来るよそんな事^^

674 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:53:18 ]
Rubyistはスキルも性格もいいので開発メンバーからは良くたよりにされる
だがたよりにされたいからRubyをやってもダメだと言う事が最近わかった
Rubyをやるのは真にRubyistの人だからRubyをやりたくてやるんじゃないやってしまう者がRubyist
PHPerはざんねんがはっきりいってスキルはつかわないし性格も裏メールとかイマイチだから信頼されにくい

675 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:53:46 ]
つまんねっていってるんだよ

C#ならいきなりGUIが作れます

676 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:54:55 ]
>>674
妄想乙

Ruby信者は各スレを荒らしている
キチガイばかりが集まった低脳集団
だから就職でも嫌われるんだよ

677 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:55:50 ]
ブロントさんネタがどこでも通じると思ったら大間違い。




678 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:56:02 ]
>>661 >>669
結局、用途によるよ

(異論はあるだろうが)初心者=Windowsとして・・・

・ちょっとした文字列処理とかの書き捨てるようなスクリプトには便利
・mechanizeとか使って、コピペサイトや2chからエロ画像とか自動収集してきてzip化!!1とかに便利
・かっちょえー、webサービス作りたい!!11とかならcoLinuxかVMWareか入れてRails学ぶ
・別にちょっとしたCGI的webアプリならRailsじゃなくてもいい(やってる人はやってる)

他の言語でもできる、と言われたらそうだけどw

「Rubyはプログラミングを楽しみたい人のための言語」というように言われるが、それはあるとおもうよ。
(ただし、環境整えるの面倒とか、Windowsでこのライブラリ動かねーとか普通にあるのはおいておいてだな)

679 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:56:21 ]
Ruby信者=C++も使えないバカ

ここはC言語わからなくて逃げ出しちゃった子の巣窟

680 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:57:22 ]
一人変なのがすみついたな・・・

681 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:58:11 ]
初心者スレでここは云々言われても

682 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:58:51 ]
ぶっちゃけ、ここが本スレじゃないの?

683 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:59:44 ]


684 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:01:16 ]
>>678
それぐらいならC#で余裕で出来るな

まずインストールでこける

無事インストールできてもRubyは日本語リファレンスが充実していない
サンプルがない
ユーザー数が少ない
Rubyスレは低脳ばかり
就職で使えない
特異言語のRuby覚えても他の言語で応用が効かない
ライブラリはバグだらけ
メンテナンス作業をするために時間をとられてWindowsユーザーはまずプログラミングに集中できない

初心者=Windowsユーザーではない
大部分の初心者がWindowsユーザーということだ

685 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:03:11 ]
まともにレスするのが馬鹿らしくなってきた。。。

686 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:04:39 ]
>>684
C#スレから来ました

スレとは関係ないんですが、もしかしてニートですか?
僕も30歳ニートです。

687 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:09:21 ]
>>678
仮想osにubuntuでも入れれば使いやすくなると言うこと?
将来性の面ではrubyはいいと言うのをよく見かけるけど、
これに関しては他のと比較してどうですか?

> Rubyはプログラミングを楽しみたい人のための言語
個人的にはこれが気になる。
趣味だから楽しんでなんぼだし



688 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:11:19 ]
楽しくないよバグだらけで
GUIすらまともに作れない
IDEもないじゃねぇ

689 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:14:08 ]
オーケー
IDEをNGワードにした
WIDEとかAIANMEIDEN(ローマ字綴り)とかの話題をしないようにお願い

690 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:20:12 ]
>>687
とりあえず仮想OSの話だけ。

webアプリ作るのに便利なRailsというRubyで動く代表的なwebフレームワークがあるんだけど、
それを使うには仮想OSやcoLinuxでUbuntuでも入れた方が、格段にトラブルが少ない、ということ。

Railsのコア開発者がそもそもWindows使ってなくて、Windowsだとイマイチ不安定だったり起動が遅かったりするのと、
Windowsでそのまま動かせないライブラリなんかがあったりする。
最終的に動作させるOSもUbuntuとかのUnix系OSになるだろうし、
仮想OSにUbuntuかCentOS入れて開発した方が楽ということ。

ただし、そもそもRailsは共有レンタルサーバーだと動かしにくい(というか重い)のに注意。
だからRails使わずにCGIで頑張って作ってる人もいることはいる。Railsばかり注目されて目立たないけど。


ちなみに、ちょっとしたスクリプト書いたり学習する分には別に仮想OSじゃなくても問題ないだろう。

691 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:20:14 ]
I.D.Eもない糞言語なんて今時やってられるかよ
真っ黒い画面で文字打つだけで何が便利だよww
どこが楽しいんだよwww笑わせるなww

692 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:24:52 ]
ID欲しいな。
IDEは別にいいや。


693 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:30:07 ]
この荒らし他のスレでもいるっぽい?数日続くようなら後でまとめて運用に報告してくるんで、スルーしといて下さい。
下手にレスしてまきぞえ規制くらってもしらん

694 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:43:06 ]
批判されると荒しとかどんだけゆとりなんだよ

695 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:45:18 ]
>>694
荒らしかどうかは内容によらない

696 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:51:26 ]
>>693
C#スレにコピペ荒ししたのお前だな
報告しておいたから

697 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 17:16:52 ]
コア開発者というのはだいたい10人くらいなのだが、その半分くらいはWindows使ってるはず。
Windows向けのコードも数人書いてるし、定期的にビルドもされている。

Windowsで遅いってよく言われるのは、バイナリモードの話と、プロセスの起動が遅いって話じゃないかな。
前者はFAQだし、後者はcygwinのconfigureで顕著だけどWindows自体の話だからどうにもならん。

Windowsで動かないライブラリがあるのはその逆も真なはずだからいいよね。



698 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 17:39:30 ]
>>697
1.8.7-p160のような話も混じってるのかもね

ライブラリの不満は動くかどうかよりも
バイナリが用意されていない(gem install一発で使えない)のほうが多い気がする

もしかしたらASRでも一発でいける方法・設定があるのかもしれないけど俺は知らない

699 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 17:40:51 ]
てかRubyがJava|C++|C#|Pythonじゃないって、だからなんなのって感じ

700 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 17:41:38 ]
>>699
PerlやPHPもIDEがないから流行ってないんだよきっと

701 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:04:31 ]
ぶっちゃけインタプリタで最強なのはPHPしかないよ
Rubyはメモリ関係が弱いって言うじゃんしかもWinは動作保証してないんでしょ
Pythonはあの独特なコーディングと日本語訳がないから英語読めない人お断りじゃん


702 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:04:32 ]
IDEらっきょ

703 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:05:58 ]
いや別に最強とか決めるためにプログラム言語使ってるわけじゃないんで

704 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:09:19 ]
ASRをインスコしてデスクトップのショートカットをダブルクリックしたら
コマンドプロンプトが起動した…

WINのrubyってコマンドでプログラム書くの?
自分は何か致命的なミスをおかしてますか?

705 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:11:18 ]
>>704
実行環境であって開発環境ではない

706 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:12:23 ]
>>705
なる
もーちょっとあちこち見て回ります

707 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:13:10 ]
>>704
文法に沿って書いたテキストファイルをruby.exeに読み込ませると
ruby.exeが必要なRuby用ファイルを読み込んで
テキストファイル内で指定された動作を対象ファイルとかに対して行う

動作を指定したいことがないような人には無用の長物



708 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:15:54 ]
>>704
あれはRubyを実行するのに都合のいい設定済みのコマンドプロンプト

709 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:18:22 ]
>>704
コンパイルするときいちいちコマンドプロンプトで
ファイル名書いてやらないとだめだよ
またライブラリ使うとオプションも書かないとだめだし
何度もテストするのにいちいちファイル名を文字入力しなければならない

710 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:22:25 ]
スレ住民一同苦笑しております

711 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:23:23 ]
しまったコンパイラじゃなかったわ

712 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:27:58 ]
>>707-709
ども
開発環境はRDE?
なんか上の方でRDEは嫌われてるっぽいんですが
というか仮想OSでUBUNTU辺りでやった方が良いの?
もーなにがなんだかw

>>710
ここで自分の質問が問題あるならこれをもってROMに戻ります
問題あるならここにでも行って帰ってくんなと言う誘導でも下さいね

713 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:28:46 ]
>>712
>>709は無視
無視してないの君だけだ

714 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:33:34 ]
>>712
RDEはRuby無関係のRDE固有のトラブルを自力で切り分けて解決できる人向け
「普通のRubyではできるのにRDEでは違うということはRDEが悪い」という判断ができないと無理

基本はテキストエディタさえあれば作成は可能で、それだけで作ってる人もわりといるが、
そういうことに慣れていないならそれだけで嫌になる可能性はたいへん高い

715 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:36:46 ]
>>712
多分インストールする時点で挫折するでしょう
ここではインストール方法は教えないので自力でやってください

716 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:39:52 ]
>>712
>>710>>709 あて

とりあえずWindowsでやってみて不満が出るようなら
仮想マシン+Ubuntuへの乗換えを検討してみたらいいんじゃないか
出回ってる本で勉強するぐらいならWindowsでもまったく問題ないよ

コマンドプロンプトの使い方がわからなかったら
カレントディレクトリっていう概念とCD、DIRコマンドの使い方だけ抑えてくれ
テキストエディタは保存と編集だけできれば十分

717 名前: ◆Y4m3jU.1h. mailto:sage [2010/03/17(水) 18:47:27 ]
めんどくさ

>>712
なんらかの、IDEと呼ばれるタイプの開発環境を使用したことがないのなら何も勧めない
>>714の言うようにRDEは初心者が使うものではない

どうしてもウィンドウが3つくらいないと死ぬとかそういう病気の場合は
EclipseかNetBeansがいちおうRubyに対応している
ただ、IDEを使ったことがないなら使用は勧めない
IDEの余分な操作で余計に混乱すると思うから

メモ帳でも開いて

puts "Hello, Ruby!"

と1行書いて "a.rb" とでもしてファイル保存して
ruby console ダブルクリックして a.rb を黒い画面にドラッグアンドドロップしてEnterすると

Hello, Ruby!

と黒い画面の次の行に表示される
そんな程度



718 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:50:57 ]
>>713-716
了解
しばらくエディタでやってみます

>>715
インストールは何のインスコを指してるのか判然としないが
とりあえず自力でやります

>>717
めんどくさいことわざわざどうも

719 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:07:10 ]
ruby console ダブルクリックして a.rb を黒い画面にドラッグアンドドロップしてEnterすると

↑この作業を毎回しなければならないのは苦痛でしかない
C#ならF5押すだけで済む

720 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:09:45 ]
a.rbをダブルクリックでおk

721 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:10:33 ]
インタプリタの意味が無いな

722 名前: ◆Y4m3jU.1h. mailto:sage [2010/03/17(水) 19:12:12 ]
>>719
コマンドプロンプトの履歴は上キー
一覧から選びたいならF7
コマンドライン入力中に履歴補完したいなら入力途中でF8
ファイル名補完は設定によってはタブでも動作する

723 名前:デフォルトの名無しさん [2010/03/17(水) 19:15:35 ]
rubyで出来たpukiwikiのパーザってありますか??
pukipaはtableが使えないのでダメでした

724 名前: ◆Y4m3jU.1h. mailto:sage [2010/03/17(水) 19:16:09 ]
あと

>>719
> C#ならF5押すだけで済む
それはC#の機能ではない
そもそもC#に編集機能などない
それはVisualStudioの機能だ

725 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:25:26 ]
>>709
csc /t:winexe hoge.cs /r:PresentationFramework.dll /r:PresentationCore.dll /r:WindowsBase.dll

こうですね、わかりません

726 名前:デフォルトの名無しさん [2010/03/17(水) 19:53:08 ]
>>◆Y4m3jU.1h.
全レスはとても親切だと思うんだけど,
入門書の第1章を読めばわかるレベルの質問ならば
入門書を挙げるだけでいいと思う。

なにも読まずにつまづいて調べもせずに
いきなり人に聞こうとする質問者に
手を差し伸べてたらキリがない。

あと妙な書き込みにレスつけてると相手の思う壺。

727 名前: ◆Y4m3jU.1h. mailto:sage [2010/03/17(水) 19:55:35 ]
>>726
こうやって可視化すると文句言えるんだな



728 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:59:36 ]
この板はIDあったほうがいいなと思うことはある

729 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 20:21:10 ]
C#荒し厨(C#厨ではない)にはレスつけずスルー推奨
C#スレ見たけどあっちでも嫌われてるじゃねーか(そりゃそうか

730 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:01:16 ]
>>724
そんなのわかっているし、そういう発言自体がナンセンスなの
言語だけでプログラミングできるとでも思ってるわけ?
開発ツールがなければできないだろ
電波飛ばして直接ハードディスクにデータ書き込む気?

731 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:02:54 ]
>>727
名無しではみんな強気だからな

732 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:25:50 ]
匿名になると無責任になるってばっちゃが言ってた

733 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:26:00 ]
C#で湧いてくる人を見ると
『あぁブビ厨ってこんな感じだったんだろうなぁ』
と、当時が偲ばれてノスタルジックになれる
・・・かもしれない

734 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:29:36 ]
最近Rubyはじめた初心者だけど、IDEとか使わない方が
覚えることが少なくて楽だと思う

確かにDOSプロンプトで作業するとなんかイライラするけど、
cygterm (cygwin+teraterm) の端末なら快適

735 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:36:14 ]
cygwinならminttyもいいぞ
"mintty -"でログインシェルで起動するのを忘れずに

736 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 22:25:38 ]
DOSプロンプトなんてとっくに滅んで存在しないだろ。
NT系は最初から「コマンド プロンプト」だぜ。

つか、現代のコマンドプロンプトは、ヒストリついてるし、
最初からファイル名補完有効だし、意外と便利。

737 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 22:30:40 ]
UTF-8も満足に表示出来ないターミナルで便利とかちょっと
PowerShellならまあ…っていまだに使い方わからんけど



738 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 22:30:48 ]
最近はPowerShellとか言うやつじゃないのか。

739 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 22:35:13 ]
コマンドプロンプトからPowerShellを起動した場合はUTF-8表示できなかったような
ただPS用にISEっていう統合環境があってそれなら表示できる

ただPSは肝心の文法がキメラでして

740 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:03:53 ]
統合開発環境ってのはまずそいつの使い方を知らないと勉強を進められんからな
知ってりゃいろんな事がボタンひとつで出来るかもしらんが環境変わるとまた使い方を調べにゃならん
そしてWindowsはこれがないとプログラミングがまともに出来ない

741 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:17:35 ]
コマンドプロンプトUTF-8非対応のおかげで、rspecとかautotestで文字化けするから
spec_helperとかでモンキパッチで変換かますか、
autotestでCtrl+Cで強制終了してしまうのを我慢してUTF-8対応cygwinターミナル使うかという感じだ。

PowerShellだと表示出来るのかな、試してみるか・・・
結局、UTF-16に変換かまさないといけなかったらあまりおいしくないなあ

742 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:19:46 ]
>>740
IDEというか統合環境のいいところは、1つ覚えたら大体他もそれなりに使える、というところじゃないかなぁ?
そんなにカスタマイズしなくても馬鹿でも使えるからいいんであって。

emacsとかvimはカスタマイズしないとまともに使えないだろw

743 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:22:51 ]
エディタとコマンドプロンプトの切り替えにAlt+Tabがあれば基本なんとかなるだろ
必須になる意味がわからん
まさかマウスクリックでタスク切り替えしてるのか

744 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:27:18 ]
>エディタとコマンドプロンプトの切り替えにAlt+Tabがあれば基本なんとかなるだろ
そんな環境でプログラミングしてるのか大変だな

745 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:29:29 ]
>>741
ISEはあくまでPowerShell用の環境
コマンドプロンプトの上位互換的使いかたはできないと思われ

もしISEのプロンプトからirbとかしようものなら
延々入力を待ち続けてCtrl+Breakするまで戻ってきますん

746 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:30:16 ]
エディタカスタマイズ派
統合開発環境派
メモ帳+Alt+Tab派

他には?

747 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:30:46 ]
脳内にRubyインタプリタ実装派



748 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:33:58 ]
cmd.exeでUTF-8の表示だけできれば満足ならプロパティでフォントをMSフォントに変更してchcp 65001してやりゃいい
入力はあきらめた方がいいけど

749 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:45:08 ]
ここは本スレか

750 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:49:27 ]
本スレです。

751 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 00:12:00 ]
なんというかココ酷いね

752 名前:デフォルトの名無しさん [2010/03/18(木) 02:39:30 ]
rubyで出来たpukiwikiのパーザってありますか??
pukipaはtableが使えないのでダメでした

753 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 02:47:05 ]
なんでこんなに粘着アンチは毎日ネガキャンに必死なんだろうな
周囲の環境を否定することでしか自我を保てない哀れな野郎だ

754 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 03:31:29 ]
Windows厨なんで開発環境といったら
・メモ帳
・TeraPad
・RDE
・Eclipse
ぐらいしかしらんなぁ
IronRubyに限るなら
・SharpDevelop
っていうのもありだな

個人的には、RDEが好きなんだが
バグが多いのと、開発が止まっているのが難点だな
IDEは、どっちかというと、オレのように頭の悪いやつ向けだな
オブジェクトがどこにあるとか、どこにどのメソッドがあるとか
解りやすくしてくれる。
ただし、設定が面倒で、動作がもっさりしてる。

そういうのが嫌いなら、TeraPadとかの高機能テキストエディタがいいね
何にも設定しなくても、それなりに見やすい。
動作も、さくさくしてる。
IDE使ってると見落としがちな、Rubyそのものの動作を体感できる。
初心者は逆にこっちのほうが良いかもね。
しばらく、メモ帳つかってメンドクセーって思うようになったら、IDEつかってみたら?

755 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 09:12:18 ]
>>748
chcp 65001するとまともに使えない@Vista

756 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:53:23 ]
そういうのが嫌いなら、TeraPadとかの高機能テキストエディタがいいね
                               ^^^^^^^^^^^^^^^^^^^

757 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:59:46 ]
>>756
ttp://www.vector.co.jp/vpack/filearea/win/writing/edit/terapad/



758 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:01:13 ]
メモ用紙で充分

759 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:03:56 ]
自由帳と脳内インタプリタでおk

760 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:25:58 ]
require するファイルがたくさんある場合 thread を使って並列に読み込むと
速くなりますか?
何か副作用はありませんか?

761 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:27:54 ]
>>760
速くならない

762 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:35:30 ]
結局I/Oでブロックされそうだな。

763 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:44:42 ]
インストール時に1枚のファイルにするようにするとかの気遣いが欲しいところ
require 'hoge' するとでっかいひとつ
require 'hoge/foo' だと個別

764 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 12:00:57 ]
>>761-763
ありがとうございます!
>>763
それは自分がライブラリを作って公開する場合の心得ってことですよね

765 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 12:50:22 ]
Rubyのスレッドの実装っていまどうなってるんだっけ

766 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 12:55:03 ]
>>765
実装の話題は本スレで

767 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 12:57:23 ]
じゃあ質問を変えるよ

requireに限らず、ボトルネック回避以外の目的にスレッドを使って高速化することはできる?



768 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 12:58:17 ]
>>767
できない
少なくとも1.8ではできない

769 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 13:00:38 ]
C++で作られているライブラリのバインディングを使っているのですが、
列挙型ってどうすればいいんですか?

>Ruby には言語の機能としての列挙型がない。
>ちょっと使いたいことがあって、いくつかのパターンで列挙型ぽく振舞うものを書いてみた。

こんな事を書いてる記事もあるわけですが、いちいちこんなに面倒くさい事をしないとダメなのかな

770 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:34:37 ]
p true and false #=> true
p true && false #=> false

なんで?
あれなんか凄い勘違いしてる?

771 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:44:51 ]
>>770
p (true and false)

772 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:46:36 ]
>>770
演算子の優先順位のせい

ttp://www.ruby-lang.org/ja/man/html/_B1E9BBBBBBD2BCB0.html#and

p true and false #=> (p true) and false
p true && false #=> p false

773 名前:デフォルトの名無しさん [2010/03/18(木) 14:48:24 ]
www.ruby-lang.org/ja/man/html/_B1E9BBBBBBD2BCB0.html#and

まず、左辺を評価して、結果が真であった場合には右辺も評価します。and は同じ働きをする優先順位の低い演算子です。
and を伴う式をメソッドの引数に渡す場合は二重に括弧が必要となります。

774 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:49:36 ]
かぶりすぎワロタ

775 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:54:56 ]
>>771-773
thx 把握した
そして and or が嫌いになった

condition = hoge and fuga

condition = (hoge and fuga)

condition = hoge && fuga
としなきゃいけないわけか

776 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:57:11 ]
ちなみにPerl5の同様の演算子を踏襲している。
式2つをえせ英語として読めるように書きたいときはand/or を使う感じ。
do(it) || raise;
do it or raise;



777 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:02:08 ]
そだな
ttp://perldoc.jp/docs/perl/5.6.1/perlop.pod

集合とかの AND や OR とかのように and や or を使うことはできない
記号優先なのが Perl っぽいといえば Perl っぽいといえなくもなく



778 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:02:43 ]
a == 0 and b < 0

779 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:05:47 ]
perl のは or die と書きたかったがためだけにこうしたような気がしてならない

780 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:56:10 ]
>>779
十中八九そうだと思う・・・


781 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:57:03 ]
Perl はどうかしらんが Ruby で foo or bar and baz は (foo or bar) and baz なので注意。
foo || bar && baz は foo || (bar && baz)

782 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:03:27 ]
RubyもPHPみたいにCGIとして動作させることができるの?


783 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:05:01 ]
もちろん

784 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:15:00 ]
Rubyというか
標準出力を吐けるものならなんでもCGIで使用可能
むしろCGIって名前自体がそういう意味なんだと思うけど
httpdでハンドラが適切に設定されている必要はある

785 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:29:01 ]
>>782
ただしすこし遅い
PHPやPerlより確実に遅い(mod_rubyでも素のPHPに勝てるか怪しい)
遅くてもいいようなまったり用途向け

786 名前:デフォルトの名無しさん [2010/03/18(木) 17:29:44 ]
Full Book Now Available For Free!
blog.rubybestpractices.com/posts/gregory/022-rbp-now-open.html

sandal.github.com/rbp-book/pdfs/rbp_1-0.pdf

787 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:31:38 ]
>>783-784
サンクス
それ出来るならちょうどよかった
PHP以外に何か軽くでも使えるように勉強しようと思ってたんだ







788 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:44:01 ]
Perlすらgeekしか知らないような頃、CでCGI書いてる会社の先輩が
いて、あきれるやら感心するやら。
# もちろんCで書くことが必要な状況ならそうすべきだけど。


789 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:53:38 ]
なぜあきれるやら関心するやらなのか解りかねる。

790 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:56:59 ]
感心ならともかく呆れるのは理解できない

791 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 18:00:13 ]
rubyでcgi書いててそこから呼ぶモジュールはがんがんCで書いてたなあ

792 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 19:17:07 ]
>>754
つvim

793 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 19:55:06 ]
つい先日もCでCGIを書く仕事があった。
非常にアホ臭いとは思ったが、呆れるとか感心するとかいうようなものでもないな。

794 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 20:04:24 ]
で?

795 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:02:39 ]

文字列:ABC=DEFG
パターン:ABC
文字列がABCから始まるかを調べる方法ありませんか?

796 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:04:32 ]
/\AABC/

797 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:06:41 ]
>>796
それで理解できる人はそういう質問はしないと思う

str = "ABC=DEF"
if /\AABC/ =~ str then
puts "ABCから始まっています"
else
puts "ABCから始まってません"
end


「正規表現」についての知識は必須なので、
使いやすい簡単なのだけは覚えておくといい



798 名前:795 mailto:sage [2010/03/19(金) 00:09:40 ]
>>797
これくらいの事なら、メソッドで準備されているかな?と思ったので

799 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:11:05 ]
こういうのも。

s = 'ABC=DEF'
s.start_with?('ABC') #=> true


800 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:12:36 ]
正規表現で簡単にできる「これくらいの事」をすべて
メソッドで装備していたらかなり煩雑だと思う

801 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:13:45 ]
>>800
そこから先は本スレでどうぞ

802 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:14:31 ]
ruby -e 'p String.instance_methods - Object.instance_methods'
とかやって、それっぽい名前のメソッドがないか探してみるのもよい。


803 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:16:35 ]
>>799はRuby1.8.7以降とRuby1.9.1以降限定
初心者的に大きな問題はないとは思うが

>>800
String#include?さんなめんあ

804 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:19:18 ]
start_with? なのか
starts_with? 派との間で血みどろの抗争が繰り広げられたに違いない

805 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:21:37 ]
>>804
ruby的には、is_a? 以外は原形不定詞を使うとかいう約束だったと思う。
三単現派は ActiveSupport を使えば starts_with? を定義してくれる。


806 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:25:24 ]
JavaはstartsWith, endsWithなんだな

>>805
なるほど
この場合主語が単数なのはほぼ異論無いとして、一人称なのか二人称なのか三人称なのか。
意外と深い?のでその原則は結構ナイスかも。
って日本人ユーザからすると面倒なだけとか。

807 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:27:07 ]
>>804
1.9から降りてきて1.8.7からだよなという確信が持てなくて検索したとき
最初は starts_with? でやったことは秘密だ
ttp://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-talk/216680?216576-217484



808 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:33:55 ]
is_a? との類推で三単現にしてしまうんだよなあ
まったく is_a? は鬼っ子だ

初心者の皆さんにおかれましては is_a? は表記的に時代遅れなので kind_of? 使ってくださいね

809 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:36:36 ]
>808
is_a? と kind_of? は意味が違うことをわかってんの?

810 名前:804 mailto:sage [2010/03/19(金) 00:39:03 ]
>>805
興味深いマジレスありがとう
原型不定詞ってなんだっけってなったのは内緒

811 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:42:42 ]
>>809
横からだけど、kwsk

古いのと一応最新ぽいのでも同じ扱い(てか丸移し)だけど、違うの?
ttp://www.ruby-lang.org/ja/man/html/Object.html#is_a.3f
ttp://doc.okkez.net/static/191/method/Object/i/kind_of=3f.html

812 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:47:43 ]
>>809
あまり is-a と kind-of を区別してるとは思えないし、そもそも実装上区別してねえ
んなこと言うなら is_a? から kind_of? と instance_of? の機能を、kind_of? から instance_of? の機能外せ

813 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:48:17 ]
instance_of? と混ざったかな?


814 名前:804 mailto:sage [2010/03/19(金) 00:49:18 ]
>>807
d。読んできた

他の名前との一貫性からstart_withになったけど
Pythonに敬意を表してstarts_withにするのしないのって話もあったのかw

815 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 01:42:41 ]
File.exist?
File.exists?
みたいに両方あるのもあるよね。

816 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 01:46:21 ]
ポリシーのまったく無かった時代の古いメソッドだな
まあ今もポリシーとか薄いけど

817 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 01:59:49 ]
だからRubyは汚いんだよ。
Pythonの美しさをみ・・Pythonも似たようなもんか。



818 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 02:04:58 ]
メソッド(に相当するもの)の名前のつけ方は似たようなもんだな
どこも決定打に欠ける
永遠の問題なのかもしれない

819 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 06:22:30 ]
rubyはCASを目指しているのですか?

820 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 06:39:55 ]
カス

821 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 07:20:02 ]
そろそろrubyの次の言語で再出発する季節だな。
今度はguiとideとrails標準で。

822 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 08:16:52 ]
こうして >>821 は旅立って行ったのであった。

ー完ー

823 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 10:52:45 ]
アップキャストとダウンキャストがないから不便だ

824 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 11:02:38 ]
e-

825 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:03:05 ]
wxRubyをいじってみたくて導入しようとしたら
cygwin用が用意されてなくてコンパイルもそのままじゃ出来なかった
↓みたいに_rb_〜〜が見つからないって大量に言われるんだけど
Rubyのソースとか必要なのか?どっかのパス指定ができてないだけなのか?

/home/hoge/wxruby-2.0.1/src/Icon.cpp:1410: undefined reference to `_rb_define_class_under'

/usr/lib/ruby/1.8/i386-cygwin/ruby.h:697: undefined reference to `_rb_cFixnum'

色々いじってコンパイルしてみてるけど諦めてRuby自体mswinにするか・・・

826 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:10:31 ]
Makefile とか configure 読めないのに cygwin 使おうとする男の人って…

827 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:16:42 ]
なんかインストールだけでなく運用自体が茨の道のようにも見える
mswin32でやったほうがよさそうなふいんき



828 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:23:04 ]
>>826
そりゃここでこちょこちょ勧める人がいるからだろ
ぶっちゃけ初心者にはcolinux+Debianとか勧めておけばいいのに

cygwinはwin,*nix両方知らなきゃいけないから難しいよ

829 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:23:31 ]
>>825
こういうひとってなんでRubyやめようと思わないのかな

830 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:25:06 ]
はじめに Ruby ありきなんだよな
目的と手段を取り違えるタイプ

831 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:26:35 ]
>>828
俺は勧めてないしテンプレにも一文字もないぞ

>>830
Rubyで遊んでみるのが目的なのに他の手段でウィンドウ作ってどうする

832 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:51:22 ]
色々勉強足らずのようなので精進します
Rubyありきなのはどうしようもないですがcygwinありきだった点を直そう
おとなしくmswin32でいじることにします

833 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:52:10 ]
「Rubyの初心者」のスレなのに
「プログラムの初心者」と決めつけて・勘違いして回答してるのが何人かいるな

834 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:55:21 ]
>>833
「OS操作や他言語プログラミング等にある程度造詣があってRubyに挑戦しようとしてる人」
の質問はそれなりに洗練されている

そういうような質問にはそれなりの回答が返ることが多い

プログラミング経験者なのにPC初心者向けな回答をされたという場合は
そりゃ質問の書き方がまずいのだろ

835 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:14:38 ]
>>829
なんでRubyやめようと思うと思うの?

836 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:32:24 ]
なんでRubyやめようと思うと思わないの?

837 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:42:45 ]
思わないことに理由を求められても



838 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:53:56 ]
>>837
このひとはなにもかんがえてません
ずっといます

839 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 15:04:33 ]
いったい誰と戦っているんだ

840 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 15:07:15 ]
中高生の春休みにはまだちょっと早いと思うんだが、
ここ数日どのスレもなんか雰囲気違うな

841 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 15:13:29 ]
もっと簡単に使えるrubyみたいな言語が有ればいいのにね。
visual rubyとかmsが用意すればいいのに。

842 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 15:14:59 ]
諦めきれずにやってたらインストールできた
単純に-lrubyが足りなかっただけでした
やっぱり次につまずくまでcygwinで行こうと思います

843 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 20:39:12 ]
>>841
簡単に使えるってどういう意味よ。

844 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 22:09:24 ]
るび厨って未だにema糞だから言語、エディタ、デバッガ、ライブラリ、ドキュメントが
高度に統一された環境がどれほど快適であるか理解できないんだろうね。

845 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 22:11:15 ]
Rubyを使ってない人がなんでこのスレにいるの?

846 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 22:30:11 ]
かまってくれるからだろう

847 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 22:59:43 ]
1.9 への覚悟を決めた
さっき 1.8.7 を入れた








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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