- 1 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 08:39:14 ]
- プログラミング言語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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
- 303 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:51:12 ]
- >>294
それ面白そうだなw 使ってみるか
- 304 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:12:10 ]
- >>303
やめとけ 警告多すぎて森に隠れる木の状態になるぞ igonoreの指定も面倒だし
- 305 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:14:38 ]
- 何事も原理主義はよくないと思います
- 306 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:16:32 ]
- めちゃくちゃ実利だと思うが…
- 307 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:26:24 ]
- 定義済みのクラス特異メソッドをprotectedにするのってどうすればいいんでせう?
class DB protected self.new super end end してもクラス外で普通にDB.newできてしまったorz
- 308 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:28:00 ]
- protectedにしてどうしたいの?
- 309 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:31:07 ]
- 具体的には、DBのインスタンスを作成する手段をDB.openに限定したいんです。
db.closeするのを忘れたくないんで。
- 310 名前:307 mailto:sage [2010/02/07(日) 11:40:07 ]
- class Hoge
private def self.hoge puts 'hoge' end end Hoge.hoge でも動いちゃいますね…… そもそもクラスメソッドをprivateにするのってどうすりゃいいんでしたっけ?
- 311 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:40:33 ]
- 「DBクラスいじるならopen使え」とマニュアルに大きな赤い字で書いておけ
それとブロックつきopenの提供で充分
- 312 名前:307 mailto:sage [2010/02/07(日) 11:42:15 ]
- www.gesource.jp/weblog/?p=473
吊ってきたいと思います。 スレ汚しすいませんでした。
- 313 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:48:31 ]
- >>258
素直にgnuplot使うのが手っ取り早い rgplot.rubyforge.org/
- 314 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 12:24:44 ]
- rubyのprivateにはいつも混乱させられる
うまい覚え方はないものか
- 315 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 12:44:35 ]
- 俺も覚えられてない・・・
privateがC++なんかのprotected相当なんだっけ?
- 316 名前:デフォルトの名無しさん [2010/02/07(日) 13:01:40 ]
- rubyのprivateは、
「任意のレシーバに対する呼び出しが出来ない」 関数っぽく書く呼び出し方のみが可能ってことね。
- 317 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:06:54 ]
- 「RubyでC++やJava再現しようぜ時代」の負の遺産
こんなオモチャ機能は1.9で無くなってもよかった
- 318 名前:デフォルトの名無しさん [2010/02/07(日) 13:07:32 ]
- privateよりprotectedのほうが理解されていないと思う。
- 319 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:17:06 ]
- >>317
少なくとも名称は変えるべきだったよなあ
- 320 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:23:05 ]
- >>316
つまり、 class Chinko private def manko end end の場合、 class Chinko内で def sounyu manko end のような呼び出しはOKだが、 chinko = Chinko.new chinko.manko は駄目なんだっけ?
- 321 名前:デフォルトの名無しさん [2010/02/07(日) 13:29:10 ]
- ifの条件文のレイアウトのことなのですが、改行が問題になるケースってあるでしょうか?
if name == "foo" || name == "bar" #do something end ()や:が必須の言語ですと気分的にも安心なのですが、 Rubyではあまり改行してるの見ない気もします。 一応、上のコードは問題ちゃんと判定されているし、 条件文内の代入文もきちんと評価されていますが、どうも不安です。 条件文の後にthenを入れておけば確実なのかなとも思うのですが・・・
- 322 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:30:37 ]
- マニュアルくらいは読め
Rubyのprivateは単に見栄え上の判断しかしない
- 323 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:33:43 ]
- >>321
カッコ書いて条件部分を式にすればいいじゃん 時々、カッコ書いたら死ぬ病の人が紛れ込んでるんだけど、そういう人は Ruby 使ったら駄目よ
- 324 名前:320 mailto:sage [2010/02/07(日) 13:36:27 ]
- こんなん書いている間にマニュアル読めよ、試せよという感じですね、すいません。
chinko = Chinko.new chinko.manko は private method `manko' called for #<Chinko:0xxxxxxx> (NoMethodError) で駄目ですね。 tansyou.send :manko みたいにsend経由だとOKなんですね。
- 325 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:37:53 ]
- 質問させて下さい。
たまにブログなどで見かけるように、 puts 1 + 1 # => 2 のように、出力結果をコメントで文の右に追加してくれるスクリプトがあったと思うのですが、 どなたか御存知ありませんか?
- 326 名前:325 mailto:sage [2010/02/07(日) 13:41:06 ]
- >>325 ですが、自己解決しました。
xmpfilter でした。 「ruby 実行結果 コメント」で検索したらでてきました。 xmpfilter で Ruby のコードに実行結果をコメントに表示 | すぐに忘れる脳みそのためのメモ jutememo.blogspot.com/2008/06/xmpfilter-ruby.html eigenclass - xmpfilter: automagic Test::Unit assertions/RSpec expectations and code annotations eigenclass.org/hiki/xmpfilter
- 327 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:13:27 ]
- クロージャとプロシージャの違いがわからないのですが…
sortメソッドを使うときに、a.sort{|a,b|a<=>b}とか書きますよね。この場合はどちら?
- 328 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:18:41 ]
- そんな小難しい外の用語を使わずに、ブロック引数、でよい。
- 329 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:38:31 ]
- クロージャとプロシージャは別概念
クロージャは生成時の情報(コンテクストと呼ばれる)を閉じ込めて保有するオブジェクト及びブロックの総称 一般的にbindingメソッドを持つ 例 Procインスタンス, Bindingインスタンス, ブロック プロシージャは手続きオブジェクト及びブロックの総称 一般的にcallメソッドを持つ 例 Procインスタンス, Methodインスタンス, ブロック >>327の例の場合 ブロック生成時の情報は特にブロック内に閉じ込められていない。 だからクロージャとしては使われていない。 もっぱら手続きを実行するためのブロックなのでプロシージャとして使われている。 クロージャの例 def hoge var = "hoge" Proc.new{var} end closure = hoge #p var #=> undefined local variable or method `var' p eval('var', hoge.binding)
- 330 名前:329 mailto:sage [2010/02/07(日) 15:41:57 ]
- MethodインスタンスではなくUnboundMethodインスタンスか
- 331 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 16:02:44 ]
- 説明は
「Rubyではコンテキスト情報の保存にBindingクラスのオブジェクトを用いる」 でいいじゃん それ使えばコンテキスト依存の処理になるからおおむねクロージャだ 使わない(使わなくてすむ)ならただのプロシージャ(可搬性のある処理のかたまり)
- 332 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 21:28:39 ]
- 2年前に書いたスクリプトを流したら90秒もかかった
当時は14秒で終えてたのに
- 333 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 21:35:39 ]
- いつどこでどのように流されたんですか
- 334 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 23:54:49 ]
- 実行することを流すと言います。
- 335 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 00:08:40 ]
- スパゲティコードをまるでソウメンのように流すのですね
- 336 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 00:24:48 ]
- そうです。まさにスパゲティです。
- 337 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 01:23:06 ]
- ためしにVMware上のUbuntuで動かしたら2.4秒だった
- 338 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 07:43:24 ]
- IronRuby 6.4秒
- 339 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 18:16:30 ]
- Windows版Ruby 1.8 -> 1.9で
テキストモードでのファイル読み込みが10倍ほど遅くなってるのでそのせいか? 読み込み時のエンコーディングをASCII-8BITとかにしてもさほど変わらんので universal newlineとかいう改行コードの差異を吸収してLFに変換するのが遅いのだろうか バイナリモードで読んでからforce_encodingすると1.8と同程度になるよ 自分は趣味程度にしか使ってないので困らないけど 巨大なログを処理する人とかだと、地味にいやな性能劣化なんだろうな
- 340 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 18:34:44 ]
- 日英辞書テキストのEDICT(SJISに変換済み、5.3MB、10万行)を Mingw版Ruby 1.8.7p160 で
ruby -e "open(ARGV.shift,'r'){|f|f.read}" edict すると 0.42秒 Mingw版Ruby 1.9.1p0 では107秒 ちょっ、200倍遅いorz ruby -e "open(ARGV.shift,'rb'){|f|f.read.force_encoding('cp932')}" edict バイナリモードで 0.46秒 ruby -e "open(ARGV.shift,'rb'){|f|f.read.force_encoding('cp932').gsub!(/\r\n|\n|\r/,?\n)}" edict などと改行変換もすると 3.72秒 K6-2 450MHzのWindows2000なんでちょっと遅いし、Rubyも最新のじゃないですが
- 341 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 18:35:14 ]
- >>339
migw32使え
- 342 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 18:59:11 ]
- 10倍ですか...
へんに差異を吸収しようとせずエンコーディング毎に処理して欲しいもんだ コンパイラが古いとはいえ、まさか仮想環境や.NETに負けるとは思わなかった。 ↑↑↑はパズル問題を解くスクリプトで読み込みはほんの少し 書き出しは途中経過も出してるんでかなり多い 1.8.6: 220"、1.9.0: 14"、1.9.1: 90"
- 343 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:06:59 ]
- スクリプト foo が多重起動しないようにするにはどうやればいいですか。
後から起動した方をすぐに殺したいです。
- 344 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:23:33 ]
- ファイルを利用して排他的にするとか。
あまり好きじゃないけど。
- 345 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:27:46 ]
- ロックファイルがなかったらロックファイルを作る
ロックファイルがあったら「起動中です」と言ってexit(1)する スクリプト終了時にロックファイルを消去する こんなのがいちばん簡単だと思う 強制終了でロックファイル消去プロセスを飛ばすと使用者層によっては悲惨だけど
- 346 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:34:15 ]
- migw32どこ? 古いのしか見つからない
- 347 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:44:48 ]
- mswin32(ActiveScriptRuby、gem対応の標準)
ttp://www.artonx.org/data/asr/ mingw32(RubyInstaller/OneClickInstaller、gemの古パッケージはバイナリがなくDevelopment Kitが要ることも) ttp://rubyinstaller.org/download.html とりあえずp0 の1.9.1 は産業廃棄物なので使って文句言うの禁止で
- 348 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:42:28 ]
- ありがとうございます。ちょっとだけ速くなりました。
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mswin32] time:4.984375 ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] time:3.421875 IronRuby 0.9.3.0 on .NET 2.0.0.0 time:5.890625 ruby 1.9.1p243 (2009-07-16 revision 24175) [i486-linux] ※VMware time:2.392678477
- 349 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:03:02 ]
- まねしてもいいよ。
unless [ exp1, exp2, exp3, exp4, ... ].include? false puts "true!" end
- 350 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:22:03 ]
- >>349
釣りだよな? Enumerable#all? Enumerable#any? と同じ結果を望んでるなんてことないよな?
- 351 名前:sage [2010/02/10(水) 00:13:38 ]
- f=lambda{|x,y| x+y}
["sa","ka","wa"].map(&f.call(_,"by")) みたいに、第二変数の束縛を先にやってから procをつくりたいのですが、どうすればいいのでしょう? map{...}はなしで。
- 352 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:18:31 ]
- カリー化したいんでしょ?
おれそれ諦めた。
- 353 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:26:48 ]
- こう?
f=lambda{|x,y| x+y} p ["sa","ka","wa"].map(&f.curry.call("by"))
- 354 名前:sage [2010/02/10(水) 00:50:33 ]
- お!できてる。
順番は逆だったけど、あとは適当に。
- 355 名前:デフォルトの名無しさん [2010/02/10(水) 00:59:39 ]
- class Proc
$__ = Object.new def cut(*args_part) Proc.new{| *args | call(*args_part.map{| arg | arg == $__ ? (args.shift) : arg }) } end end f=lambda{|x,y| x+y} p ["sa","ka","wa"].map(&f.cut($__,"by")) # => ["saby", "kaby", "waby"] まったく勧めないけど一応
- 356 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 08:30:40 ]
- >>341
mingw版入れろはわかるけど面倒だからパッケージ作ってくれ頼む。RubyGemsとか入っているヤツ Windowsはaptとかねーんだよ 外人でもいいけど、こういうのはどこに頼めばいいの? ActiveScriptRubyに上書きしてもいいのかな >>347 OneClickInstllerも1.8系は1.8.6だから古いよね
- 357 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 08:32:02 ]
- しかし、RubyInstallerってmingw32版だったのね
そして、1.8.7版が来てる!!!サンクス 問題はアップデートだな。OneClickInstaller時にアップデートしようとしたらアンインストールしろ!とか言われたからな・・・
- 358 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 08:59:35 ]
- Ruby Installer はかなり昔から mingw32 だった
>>356みたいな人間が発展を阻害する
- 359 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:26:54 ]
- 阻害してるという意味ではどっちもどっちだと思う
まー、mingw32は正式版じゃないからな 正式版だけ使いたいという人にはお勧めしない 現状の正式版は中身のRubyが全然「安心の正式版」じゃないけどな インストーラーが未熟でも中身のRubyがバグフィックスされてることのほうが重要だと思う
- 360 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:44:31 ]
- >>359
正式版ってなによ どこにそんなことが書いてある
- 361 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:51:15 ]
- 解読してみた
まー、(現在公開されている)mingw32(のRuby Installer)は(まだrc2で)正式版じゃないからな (rcやベータではない)正式版(のインストーラー)だけ使いたいという人には(まだ)お勧めしない 現状の(唯一の)正式版(として公開されてるOne Click Installer)は中身のRuby(の本体のパッチレベル)が(古くて) 全然「安心の正式版」(と言えるような組み合わせ)じゃないけどな インストーラーが未熟でも中身のRubyがバグフィックスされてることのほうが重要だと思う こんなんでどう
- 362 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 10:03:30 ]
- わかりやすい
- 363 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 13:07:09 ]
- >>361
thanxよくわかったw
- 364 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:00:13 ]
- MSVC版では出来なくてmingw版だけで動く機能
あるいはその逆で どんなのがありますか
- 365 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:06:00 ]
- そーゆーもんはない
機能で分かれてるわけじゃない わかんなかったら mswin32 である ActiveScriptRuby 使っとけ
- 366 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:23:29 ]
- インストーラーとしてはmingwよりone click installerの方が正式版のため信頼できるが、
中身のRuby自体はmingwの方が新しい って理解でいいの?
- 367 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:28:38 ]
- thread とか lock とかは mingw の方が信頼性があるような気がする
- 368 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:31:35 ]
- >>367
GIL使ってる限り信頼性は変わらない
- 369 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:38:19 ]
- OneClickInstallerはインストーラー含めて正式版が作られてる
RubyInstallerはまだインストーラー含めてrc版(ベータと正式の中間) OneClickInstallerで入るRubyはmswin32で作られている RubyInstallerで入るRubyはmingw32で作られている mswin32は従来のタイプの「Windows版Ruby」でgemライブラリでは確実にバイナリがある 古いコンパイラで作ってあるせいか、環境によってはなぜか動作が遅いことがある どうせアップグレード時は全消し推奨なんで面倒の少ないこっち使って慣れろという説も根強い mingw32は今後主流になるもので最終更新日が古いgemライブラリではバイナリ自前コンパイルも 動作速度が遅くなる報告は少ないが、gemバイナリの自前コンパイル強要はめどい サイトのDevelopment KitをRubyを標準インストールしたディレクトリに上書きコピーすればいいだけだが あと、mingw32をWindows環境のRubyの印だと認識してないスクリプトがまだあるので手直しが要ることも
- 370 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:58:39 ]
- あああ、なんかわけわからないことに
mswin32 版を使う場合は ActiveScriptRuby のほうインストールしろ OneClickInstaller 使って数年前の Ruby をわざわざいまさらインストールする必要もない ■ とにかく迷いたくない普通の人 … ActiveScriptRuby 面倒がない mswin32 版のみ提供、ActiveTcl を別途入れると tcl でウィンドウも描けるぞ(要Tcl言語知識) ttp://arton.hp.infoseek.co.jp/indexj.html 1.9.1 を使いたい人は ttp://www.artonx.org/data/asr/ の「Ruby-1.9.1-p数字 Microsoft Installter Package」を使わせてもらえ なに、自分のとこだけ妙に処理が遅い? 宝くじ並の外れ環境だからマシン買い換えろ ■ トラブっても自分で手直しする根性あるから遅くなる可能性ないほうがいい … RubyInstaller 古いコンパイラ製ではない mingw32 版の提供がメイン ttp://rubyinstaller.org/download.html 古いgemパッケージでWindows環境だとみなしてくれずにコンパイラが走って「make がない」と言われること有り それを乗り越えるためにコンパイラ環境が入ってる「Development Kit」をインストールしておくのを推奨 ttp://wiki.github.com/oneclick/rubyinstaller/development-kit 上記解説にもあるが、RubyInstallerの標準ディレクトリ構成の場合は上書きだけでよい(設定ファイル記述不要) 7zip でないとダウンロードしたファイルを展開できないので注意 スクリプト内での条件分岐で「mingw32」をWindowsとみなさないものが稀にあるので、それは手動で書き換える必要あり
- 371 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:08:43 ]
- 長い
・ 初心者は ttp://www.artonx.org/data/asr/ の 1.8.7 だけ使え、トラブル起きたらここで聞け でいいじゃん
- 372 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:16:28 ]
- てか本来は arton.hp.infoseek.co.jp/indexj.html でいいんだよね
どうでもいいけどこのサイト meta charset と本文 HTML のエンコーディング食い違ってるぞ 見るたびに毎回エンコーディング指定やり直さないといかん
- 373 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:22:12 ]
- 先生,「1.8が許されるのは小(ry」と煽ってもいいのはいつ頃ですか
- 374 名前:デフォルトの名無しさん [2010/02/10(水) 20:22:56 ]
- 1.8.6はともかく1.8.7は数年無理。
- 375 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:24:29 ]
- 先生,JRubyが「Ruby 1.9 compatible now」になるのはいつ頃ですか
- 376 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:00:20 ]
- >>369-370
とりあえず Windows で Ruby がめちゃくちゃ面倒糞いということがわかりました ほんとうにありがとうございました
- 377 名前:デフォルトの名無しさん [2010/02/10(水) 21:01:13 ]
- >>375
見た感じ遠い未来に見える。 kenai.com/projects/jruby/pages/Ruby1_9Support
- 378 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:02:47 ]
- >>372
それは作者がUTF-8の普及だか何かのためにわざとやってるらしいよ
- 379 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:08:40 ]
- >>377
そもそもなんでそんな時間かかるんだよ 何がネックになってるんだ
- 380 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:12:04 ]
- >>379
Java からも読めるように作ること Java VM 上で単独で動く ruby インタプリタを作るだけなら たぶんもっと早くにプロジェクト完了してるんじゃないかな
- 381 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 21:55:57 ]
- つか1.8.7って鬼車使えるの?
- 382 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:18:29 ]
- 黙れカス
- 383 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 22:19:06 ]
- ごばく
- 384 名前:デフォルトの名無しさん [2010/02/10(水) 22:26:55 ]
- >>381
gem install oniguruma 組み込みになるわけではないので制約はあるが。 oniguruma.rubyforge.org/use.xhtml
- 385 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 23:22:59 ]
- oniguruma を使うようなひとなら mingw とか入れてるような
気がします・・・知らずに joni 使ってるひとも嫌少ないだろう・・・
- 386 名前:デフォルトの名無しさん [2010/02/10(水) 23:49:30 ]
- >>381 ってjrubyの話なん?
- 387 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 03:58:52 ]
- >>384
Requirements * Oniguruma regular expression library (>= 4.x.x) ってことは 自分でOnigurumaをコンパイルするか バイナリをどこからともなく拾ってくる必要があるってことか ./configure make make install で済む話ではあるが
- 388 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 22:37:00 ]
- irb> p "ねこだいすき"
"\343\201\255\343\201\223\343\201\240\343\201\204\343\201\231\343\201\215" irb> $KCODE="u" irb> p "ねこだいすき" "ねこだいす\343\201\215" なんだこれ
- 389 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:22:03 ]
- 下のようなループってrubyだとどう書きますか?
for (i = rect->lx, j = rect->ly; i <= rect->hx; i++) map[i][j] = TRUE;
- 390 名前:デフォルトの名無しさん [2010/02/11(木) 23:24:17 ]
- 最近出るようになった気がする。
$ cat test.rb # coding: utf-8 p 'ねこだいすき' $ rvm 1.8.7-p72,1.8.7-p160,1.8.7-p174,1.8.7-p249,mput ruby -Ku test.rb ruby-1.8.7-p72: ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin10.2.0] "ねこだいすき" ruby-1.8.7-p160: ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-darwin10.2.0] "ねこだいすき" ruby-1.8.7-p174: ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.2.0] "ねこだいすき" ruby-1.8.7-p249: ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin10.2.0] "ねこだいす¥343¥201¥215" mput-head: ruby 1.9.2dev (2010-02-10 trunk 26632) [x86_64-darwin10.2.0] "ねこだいすき"
- 391 名前:デフォルトの名無しさん [2010/02/11(木) 23:26:15 ]
- >>389
jは変化してないけどいいの? iだけならuptoでよいでしょう。
- 392 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:41:26 ]
- >>391
ありがとうございます! これをrubyに書き換えて勉強中でした。 ttp://racanhack.sourceforge.jp/rhdoc/coderect.html
- 393 名前:デフォルトの名無しさん [2010/02/11(木) 23:52:42 ]
- >>388
redmine.ruby-lang.org/repositories/revision/ruby-18?rev=26103 usa, 2009年12月15日 11:50 AM string.c (rb_str_inspect): wrong result of UTF-8 inspect because of the mistake of calculation. reported by eban via IRC. これかな。 あれ、1.8.7-p248 がクリスマスリリースだったはずだが…
- 394 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 23:56:35 ]
- Iconv::IllegalSequenceを見るのはもう飽きたお…
- 395 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 03:35:08 ]
- 何か一揆にperl5の時代に戻った気がするなw
教祖様が日本語処理ぐらい最初からまともに組み込んでてくれれば。
- 396 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 06:07:00 ]
- iconvとnkfってどう違うの?
どう使い分けたらいいの?
- 397 名前:デフォルトの名無しさん [2010/02/12(金) 08:13:29 ]
- nkfは
- shift_jis, euc-jp, iso-2022-jp, utf-8しか使えない。 - 改行コードの変換ができる。 - カタカナやアルファベットの全角半角変換ができる。 - base64のデコード/エンコードができる。 iconv - いろんなコードが変換できる。
- 398 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:28:43 ]
- >>372
ttp://www.artonx.org/diary/20100211.html#c01
- 399 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:33:31 ]
- 文字コード変換ならiconvが上で
その他機能がnkfにはあると そういうこと?
- 400 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 08:51:30 ]
- そもそも文字コード変換に上とか下とかあるんかいな
1.9のencodeとNKF/iconv/kconv/uconvの違いも教えてほしい
- 401 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:14:29 ]
- 動作が違うとかは置いとくと
対応してる文字コードが多いほうが上っていうことでしょ String#encodeはよくわからんが ttp://jp.rubyist.net/magazine/?0009-BundledLibraries
- 402 名前:デフォルトの名無しさん [2010/02/12(金) 09:17:58 ]
- encodeは文字列のバイト表現を指定のものに変換したStringを作り、エンコード情報を設定。
encode!は自分自身の持つバイト列とエンコード情報を変える。 force_encodingは自分自身のエンコード情報のみ変える。バイト列はそのままで解釈が変わる。 kconvはnkfをラッピングして文字コード変換のみ、簡単にできるようにしたもの。 uconvはたしか標準じゃないよな? euc-jp, cp932(shift_jisの亜種), utf16, ucs-4に対応している。 rubyでutf-8が扱えるようになったのはuconv作者の提案したコードがもとになってる。 ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/4186
- 403 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 09:28:13 ]
- >>400
NKFはguessができるので、現在のエンコーディングが何かわからなくても変換ができる ただ、日本語関連(とMIME)しか認識できないしLatin-1とかの指定もできない iconvはguessができないので、現在のエンコーディングを正確に(本当に正確に)指定しないと変換できない そのかわり、NKFではできなかったような文字エンコーディングの値の保持解釈ができる SHIFT_JISとCP932やEUC-JPとEUC-JP-MSを使い分けられる(可能性がある)のはiconvだけ ただし、相手のマシンにインストールされている外部iconvのバージョンと対応に依存するのでやや面倒 iconv実装にはでっかい版と小さい版があり、外人産は小さい版だけを使うことが多いのでファッキンガッデム 1.9のEncodingはiconvを使ってる kconvはNKFを使ってる uconvはめんどくさいからもう使うな、使わなくても用は済むはず
|

|