10/02/14 18:21:32
それを先に言ってください
517:デフォルトの名無しさん
10/02/14 18:32:48
無いなら自分で作ればいいってだけの話だな。
518:デフォルトの名無しさん
10/02/14 18:53:46
初心者にそれを求めるのは酷
519:デフォルトの名無しさん
10/02/14 18:59:13
というか普通に動くが
520:デフォルトの名無しさん
10/02/14 19:02:58
何を使っているんですか?
521:デフォルトの名無しさん
10/02/14 19:16:29
やり方わからなくて詰まるくらいなら経験たまるまで素直に1.8だけ使えやオラ、とか思わなくもない
522:デフォルトの名無しさん
10/02/14 19:38:21
コンパイルさえできればいいんだから、コンパイラ入れるかmingw32使ってみるというのはどう
523:デフォルトの名無しさん
10/02/14 20:48:23
妹にチョコもらってしまった…
524:デフォルトの名無しさん
10/02/14 21:59:36
やれるのかやれないのかハッキリしてよ
525:デフォルトの名無しさん
10/02/14 22:04:51
チョコくれたんだから実はOKという意思表示なのでは
526:デフォルトの名無しさん
10/02/14 22:07:05
女だってやりたいんだよ
童貞は知らないだろうけど
527:デフォルトの名無しさん
10/02/14 22:24:22
女がやりたがってるのは好きな男とだぞ
勘違いしちゃダメだぞ
528:デフォルトの名無しさん
10/02/14 22:25:07
やべ
勘違いしてた
529:デフォルトの名無しさん
10/02/14 22:26:22
インターフェースは同じはず
そこはポリモーフィズムで…
530:デフォルトの名無しさん
10/02/14 22:27:51
スレ違いだからもう終わりよ、みなさん。
いろいろと参考になりましたが。
531:デフォルトの名無しさん
10/02/14 23:25:51
童貞きめえ
女に植えてんだなかわいそうにおまえら
532:デフォルトの名無しさん
10/02/14 23:29:19
コンピュータばかりいじりすぎて
外の世界が見えません。
533:デフォルトの名無しさん
10/02/15 00:06:07
gemをインストールしたあと使おうとすると no such file to load になるんだけど
どうすれば使えるようになるの?
534:デフォルトの名無しさん
10/02/15 00:25:35
>>533
そのgemのインストール自体は正常に終わっているとすると、
require 'rubygems'
require 'gemのライブラリ'
で使えるようになるはずだが。(つまり、毎回rubygemsをrequireする必要がある)
たとえば、ちょっとjsonの場合はこんな感じ。
$ sudo gem install json
$ irb
irb> require 'rubygems'
irb> require 'json'
irb> JSON.parse('{"num":"123456789"}')
=> {"num"=>"123456789"}
535:デフォルトの名無しさん
10/02/15 00:26:04
require "rubygems"
536:534
10/02/15 00:26:52
書き途中で送信してしまった。
× たとえば、ちょっとjsonの場合はこんな感じ。
○ たとえば、ちょっと前のレスのjsonの場合はこんな感じ。
537:デフォルトの名無しさん
10/02/15 00:28:56
URLリンク(webos-goodies.jp)
538:デフォルトの名無しさん
10/02/15 00:57:22
sudoをつけてなかったのが敗因だった。ありがとう
539:デフォルトの名無しさん
10/02/15 01:12:58
--pre とか付けると no such file to load となる
すばらしいマイエンバイロンメント ruby 1.8.2、 gems 0.9
いきなり詰んだorz
540:デフォルトの名無しさん
10/02/15 01:19:53
URLリンク(ysky.vox.com)のオプション仕様が変わった.html
あした gems 自体を update させてもう一度やってみょ
寝るべzzz
541:デフォルトの名無しさん
10/02/15 01:30:34
いちはちに…
542:デフォルトの名無しさん
10/02/15 07:52:31
>>539
なんのための--preか知らんが、Rails 3βとかは1.8.7以降でないと動かんぞ。
543:デフォルトの名無しさん
10/02/15 08:05:05
ていうか1.8.2は5年以上前の不安定版なんだが
今更これ使うくらいなら俺はPerlをやる
544:デフォルトの名無しさん
10/02/15 08:13:11
Pythonは?
545:デフォルトの名無しさん
10/02/15 09:07:03
JSON is YAML って言っている人はいるけど、本当に上位互換になるのは 1.2 から。
で、Ruby 標準添付の syck は 1.0 なので
546:デフォルトの名無しさん
10/02/15 10:19:49
_why行方不明だし、どうなるんだろ Syck。
547:デフォルトの名無しさん
10/02/15 10:32:31
どうなるもなにも、これまでの「優秀だったがサポートがなくなったライブラリ」と同様の道を辿る
548:デフォルトの名無しさん
10/02/15 10:49:22
1.8用のtranscodeっぽいものってない?
バイト列とエンコーディングを投げるとバイト列の適切な区切り位置を記憶してくれるライブラリみたいな
549:デフォルトの名無しさん
10/02/15 10:59:07
>>546
Aaron さんが互換ライブラリを開発中
>>548
Iconv じゃダメですか
550:デフォルトの名無しさん
10/02/15 11:04:17
data = Array.new
data = [1, 2, [3, 4, [5]], 6]
多次元配列のデータがあります。
このデータを、次のように1次元配列に格納しなおしたいです。
p data
=> [1, 2, 3, 4, 5, 6]
多次元配列のデータは、今回のサンプルでは3次元ですが、
実際のデータは何次元になるかわかりません。
そのため、再帰の必要性があると思い次のようなメソッドを考えました。
def split_ary(ary)
local_ary = Array.new
return local_ary if ary.empty?
ary.each do |a|
if Array == a.class
split_ary(a)
else
local_ary << a
end
end
end
良く考えれば当然なのですが1次元にできません。。。
p split_ary(data)
=> [1, 2, [3, 4, [5]], 6]
1次元にするには、どのように改善すれば良いでしょうか。
551:デフォルトの名無しさん
10/02/15 11:17:25
[1, 2, [3, 4, [5]], 6].flatten
552:デフォルトの名無しさん
10/02/15 11:21:42
>>551
おおお!! このようなメソッドが既にあるのですね。
ありがとうございます!
553:デフォルトの名無しさん
10/02/15 11:34:29
flatten使うべきだけど、後学のために
def split_ary(ary, local_ary = [])
ary.each {|a|
if a.kind_of? Array
split_ary(a, local_ary)
else
local_ary << a
end
}
local_ary
end
554:デフォルトの名無しさん
10/02/15 11:47:28
>>553
丁度、ライブラリ set.rb の flatten メソッドのソースを眺めている所でした。
・Array クラスか判定するのに、kind_of を使うこと
・local_ary を引数(の位置?)で、Array.new すること
勉強になりました。
初めは set.rb を見ても理解できなかったのですが、
私が書いたソースを改変して貰ったおかげで、理解できました。
ありがとうございました。
555:デフォルトの名無しさん
10/02/15 13:07:36
すごく重要なことだけど、多次元配列はRuby標準では存在しない
ただの入れ子になった配列
多次元であるかのように振舞うことはない
556:デフォルトの名無しさん
10/02/15 15:28:12
irb(main):006:0> (5.6 * 10500).to_i
=> 58799
58800になってほしかったんですが、なぜこんな風になってしまうんでしょう?
557:デフォルトの名無しさん
10/02/15 15:31:43
URLリンク(www.google.co.jp)
558:デフォルトの名無しさん
10/02/15 15:32:04
>>549
バイト列 unsafe_str から制御文字を取り除きたいんです
んで、世の中にはたとえば iso-2022-jp のような \e を必要としてるエンコーディングもあるので、
そういう場合、「必要な制御文字」だけは残したいんです
display_encoding = "ISO-2022-JP"
unsafe_str = Iconv.iconv(display_encoding, "UTF-8", 'ねこだいすき').join
unsafe_str #=> "\e$B$M\e(B\\000\e$B$3$@$$\e(B\\e\e$B$9$-\e(B" # \000と\eが入ってるのがやだ
safe_str = kill_dangerous_ctrl_chars_on(display_encoding, unsafe_str)
p safe_str #=> "\e$B$M$3$@$$$9$-\e(B"
ちなみに日本語以外にも対応したいですというか日本語だけでいいなら悩みません
559:デフォルトの名無しさん
10/02/15 15:49:33
>>556
5.6を10500回足したものが、本当は58800よりもほんの少しだけ小さいから
irb> (5.6 * 10500) - 58800
-7.27595761418343e-12
より正確には、2進数で表現される5.6が10進数で考える本来の5.6よりもほんの少しだけ小さいから
Float#to_iは「切り捨て」を行うので、「58800よりもほんの少しだけ小さい数」の小数部を切り捨てて、58799になる
これを簡易に防ぐには、>>557の言うように四捨五入のメソッドを整数化処理として擬似的に使う
誤差が0.5を超すことは一般的用途ではまずないから
irb> (5.6 * 10500).round
58800
もし本当に厳密に計算を行いたいのならbigdecimalライブラリを使う
irb> require 'bigdecimal'
irb> (BigDecimal.new("5.6")*BigDecimal.new("10500")).to_s
"0.588E5"
560:デフォルトの名無しさん
10/02/15 15:59:21
>>559を>>557から読み取れというのは酷だな
561:デフォルトの名無しさん
10/02/15 16:01:17
「なんで期待した値にならないのか」の答えじゃなくて
「とにかく望んだ値を得る方法」だものな。
562:デフォルトの名無しさん
10/02/15 16:08:44
まあ、暇な人がリンクをたどって(または単に自前の知識で)説明してくれるだろうと期待して
情報のポインタだけぶん投げるというのは省労力的にはアリではある
どっちかっちゃFAQに近いし
563:デフォルトの名無しさん
10/02/15 18:36:31
BigDecimal.を見るとなぜかマルちゃんのでかまるを思い出す
564:デフォルトの名無しさん
10/02/15 18:58:21
rubyがメインにしているOSって何ですか?
565:デフォルトの名無しさん
10/02/15 18:58:49
linux
566:デフォルトの名無しさん
10/02/15 19:01:12
どのlinuxでしょうか?
567:デフォルトの名無しさん
10/02/15 19:02:15
debian
といってもubuntuやFedoraとかでもそう振る舞いは変わらないと思う
568:デフォルトの名無しさん
10/02/15 19:05:57
Linux上で適当にコンパイルされたRubyで動作させるスクリプトは、
Windows上で慎重にコンパイルされたRubyで動作させるスクリプトの倍以上の速度を誇る
569:デフォルトの名無しさん
10/02/15 19:06:13
DebianはPythonマンセーって感じだけどね。
570:デフォルトの名無しさん
10/02/15 19:12:46
debianはデスクトップにもサーバーにも使えるから使い勝手がいいんだよね
うちの会社は全PCdebian
571:デフォルトの名無しさん
10/02/15 19:13:21
Rubyをシステムスクリプトに組み込むなんて狂気の沙汰だ
しかもDebianのシステムを中途半端にRedHat系列に再現するとかありえん
572:デフォルトの名無しさん
10/02/15 19:14:04
とつぜん何を。
573:デフォルトの名無しさん
10/02/15 19:18:29
>>571
mphは目指すところは悪くなかったんだよ
しかしいかんせん当時のRubyの完成度安定度が低すぎた
良くも悪くもkondaraだな
574:デフォルトの名無しさん
10/02/16 01:37:19
cgi書いてるんだけど、CGI#out でHTMLを出力する場合、ソースを全部一度に吐き出す感じになるよね?
処理しながら少しずつHTMLを出力するにはどうしたらいいの?
575:デフォルトの名無しさん
10/02/16 02:05:35
ふつーに標準出力に書き出せばいいのでは
576:デフォルトの名無しさん
10/02/16 02:07:58
あんなもんつかわずに適当にテンプレートエンジン使ったほうがいい。
577:デフォルトの名無しさん
10/02/16 02:08:26
>>575
なるほど。
標準出力でいいんですね。
578:デフォルトの名無しさん
10/02/16 03:40:26
>>547
まじか
Ruby の未来は暗いな
579:デフォルトの名無しさん
10/02/16 04:13:51
>>574
リストに吐き出して最後に結合
580:デフォルトの名無しさん
10/02/16 07:08:05
Marshal.dump(obj[,port][,limit])を使って
データをグローバル変数に保存したいんですけど不可能ですか?
581:デフォルトの名無しさん
10/02/16 07:31:04
質問の意味がわかりかねるねるねるね
582:580
10/02/16 07:38:37
def save_bitmap
file = File.open("test.txt", "wb")
Marshal.dump(@data, file)
file.close
end
これだとtest.txt内に@dataを保存しますよね?
これをグローバル変数に保存したいのですが
def save_bitmap
file = File.open($data, "wb")
Marshal.dump(@data, file)
file.close
end
これじゃだめですか?
583:デフォルトの名無しさん
10/02/16 08:04:57
$dataと@dataってどうなの
$data = Marshal.dump(@data) は違うの?というかこれなら
$data = @data でいいじゃん
584:580
10/02/16 08:36:03
できましたありがとうございました
考えすぎていたようです
585:デフォルトの名無しさん
10/02/16 08:46:10
というかグローバル変数使うなかっこ悪いから
トップレベルのローカル変数とメソッドの引数でデータの受け渡ししろ
586:デフォルトの名無しさん
10/02/16 08:55:45
ディープコピーの常套手段ってやつか
587:デフォルトの名無しさん
10/02/16 09:16:12
引数と返り値で充分なやり取りだと思えるかどうかには自覚と時間が必要
・ グローバル変数いらねえ
・ クラス変数使う必要ねえ
・ これインスタンス変数でなくてもいい
と感じるにはちょっと時間が要る
他人から言われてもえーって感じでピンとこない
588:デフォルトの名無しさん
10/02/16 11:36:08
>>579
メモリ食いつぶした。
謝罪と賠償を(ry
589:デフォルトの名無しさん
10/02/16 14:39:42
配列で指定した要素を一つだけ削除する命令ってないですか?
[1,2,3,4,5,1,1,1,1,1]
これの1を一つ削除して
[2,3,4,5,1,1,1,1,1]
にしたいんですが。delete(val)だと全部消しちゃいますよね。
590:デフォルトの名無しさん
10/02/16 14:48:27
>>589
それなんかやたらよく聞かれるんだが、メソッド一発でやる方法は特にない
arr = ["a", "b", "c", "b", "a"]
arr.delete_at(arr.index("b"))
p arr
["a", "c", "b", "a"]
591:589
10/02/16 15:08:55
def delete_learn_data(delete_id)
$game_system.golem_learn_data.each_with_index{ |value, i|
if delete_id == value
$game_system.golem_learn_data.delete_at(i)
break
end
}
end
とりあえずこれでいけました。ありがとうございました。
592:デフォルトの名無しさん
10/02/17 13:47:36
メソッドhogeの引数としてフォーマット用文字列と任意個の文字列を渡して
formatで整形した文字列を作りたいんだけど
hogeの引数はどんな形で渡したらいい?
def hoge(引数)
s = format(引数1, 引数2, 引数3・・・)
end
以下のようにしたらsは1つの配列として扱われてformatに
too few argumentsと言われてしまいました
def hoge(f, *s)
s = format(f, s)
end
hoge('%s %s', 'aaa', 'bbb')
593:デフォルトの名無しさん
10/02/17 13:50:15
format(f, *s)
594:デフォルトの名無しさん
10/02/17 14:53:03
thx
595:デフォルトの名無しさん
10/02/17 15:23:25
Rubyやってて良かったことを教えて下さい。
596:デフォルトの名無しさん
10/02/17 15:37:21
自分用スクリプトでPerlを使わなくて済んだ
オブジェクト指向に触れてなんとなく理解した気になれた
597:デフォルトの名無しさん
10/02/17 15:47:09
railsに尽きるなぁ
rails無かったら何の価値も無かった
598:デフォルトの名無しさん
10/02/17 16:48:37
ニワカ乙
599:デフォルトの名無しさん
10/02/17 17:00:24
プッ
反論してみろよカス
600:デフォルトの名無しさん
10/02/17 17:34:43
論に対してしか反論はありえない。
601:デフォルトの名無しさん
10/02/17 17:36:48
mechanizeとnokogiri(hpricot)はなかなかいいライブラリだとは思った
あれら程手軽に使えるスクレイピングライブラリは他の言語では知らない
602:デフォルトの名無しさん
10/02/17 17:46:35
railsを作ってしまうような香具師がrailsが存在する前から評価してた言語ってだけで十分な気がする。
603:デフォルトの名無しさん
10/02/17 19:30:01
でも他のスレでRubyの4文字を出すと馬鹿にされる
604:デフォルトの名無しさん
10/02/17 19:31:33
>>595
Javaを使わなくて済むようになった・・・まあRubyじゃなくてもいいんだけど。
>>602
なんでやねん。そんな理由がだれをどう嬉しくするのさ。
605:デフォルトの名無しさん
10/02/17 22:00:29
>>603
難解な言語技術を修得しているという自負が
平易な言語に対する無体な態度につながるんだろうか
606:デフォルトの名無しさん
10/02/17 22:14:05
>>605
Ruby厨でぐぐれ
607:デフォルトの名無しさん
10/02/17 22:35:35
Java厨の嫉妬は凄いよな。
608:デフォルトの名無しさん
10/02/17 22:37:40
・ Rubyをちょっと齧ったばかりで興奮して他スレで煩いRuby厨
・ 生まれてこのかたJavaしか知らない自称中級者
を混ぜると危険というかひたすら面倒
609:デフォルトの名無しさん
10/02/17 22:39:16
そろそろ隔離スレ行こうね
610:デフォルトの名無しさん
10/02/17 22:40:08
・ Rubyには興味がないがRubyに関わった遣り取りにウンザリしてもう排除したいと思ってる人
を追加
というか本スレでやれ
611:デフォルトの名無しさん
10/02/17 22:41:40
変態同士仲良くしろよ
612:デフォルトの名無しさん
10/02/17 23:14:40
.. (.
. )
,―ヽ__(__、―
,/ ノ ヽ ~\
/ ノ IPA ヽ ~\
/ ノ ヽ、 `ヽ
| ノ / ̄\ / ̄~ヽ ヽ i
| ノ | ノ
\ | <●> <●> ( )
\ | | | i /
| / ヽ レ
i (●_●) /
i、 ,-―-、 ・ /
i、 <(EEEEE)> ∵/ IPA Rubyスレは誰でもウェルカム
i、 \ ./ /
\ ーー ,ノ
,,.....イ.ヽヽ、ー-―一ノ゙-、.
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||
613:デフォルトの名無しさん
10/02/17 23:18:26
>>612
いつも思うんだけど
この人だれ??
614:デフォルトの名無しさん
10/02/17 23:21:18
ミスターつこうた
615:デフォルトの名無しさん
10/02/17 23:33:15
>>613
こいつにレスしたのお前だけだぞ
616:デフォルトの名無しさん
10/02/17 23:39:16
申し訳ごめんなさい。
617:デフォルトの名無しさん
10/02/18 01:44:24
絶対にゆるさない
618:デフォルトの名無しさん
10/02/18 19:54:41
StarRuby今落としたんですが
この板にスレッドが無いのが気になりました。
ゲーム開発用であんまり需要無いんですか?
619:デフォルトの名無しさん
10/02/18 20:03:48
ありませんというかそもそもゲーム製作専用系は板違い
【Ruby/SDL他】Rubyでゲーム制作・総合スレッド
スレリンク(gamedev板)
620:デフォルトの名無しさん
10/02/18 21:07:28
>>595
手軽に短くかっこよくツールが書けること。
あと、Rails
621:デフォルトの名無しさん
10/02/18 21:11:38
Pythonから来ました。
自分用のプログラムを書くときに、クラス定義のときに組み込みクラスを
オーバーライドするのが怖いので、トップレベルにMyAppみたいな名前の
モジュールを作ってから、その中にクラスを定義しているのですが、
これはRuby文化に反するのでしょうか?
また、Pythonのように、組み込みクラスはすべて、Builtin::String, Builtin::Arrayみたい
になってたらなあ、と思ったのですが、何故こうなっていないのでしょうか?
622:デフォルトの名無しさん
10/02/18 21:36:19
適当なモジュールでくるむのは普通に行われているし、実質推奨になっている
まあ、それ自体が被る可能性もあるが
> 何故こうなっていないのでしょうか?
めんどくさいから
…まあ、オープンクラスっても限度あんだろ、とはみんなちょっと思ってはいる
ある意味初期の見通しミスをずるずる引きずってるわけで
623:デフォルトの名無しさん
10/02/18 21:57:05
本当のところはMatzに聞かなきゃ分からんが、
デメリットを勘案の上でオープンクラスを選択したのは間違いないわけだから
設計意図どおりだと思うけどなあ
オープンクラスの影響範囲を押さえ込む名前空間システムが
検討されてるらしいが、いつ実装になるやら
624:621
10/02/18 21:59:30
>>622
むしろ推奨でしたか。安心しました。有り難うございます。
トップレベルにすべての組み込みクラスがあるのは面倒くさいから。。。
実にRuby的だなと思いました(笑)。いいですね。
もし初期の見通しをひきずっているのなら、Ruby2.0なんてのが出る時には
改善されるかもしれませんね。
625:デフォルトの名無しさん
10/02/18 22:05:47
いわゆる Std:: を使わないのはオープンクラス主義と反するからであるのは間違いない
626:621
10/02/18 22:08:53
>>623
オープンクラスなのは、メリットがとても大きいと思うので気にならないのですが、
どうして、組み込みをすべてトップレベルにしてあるのかなと思ったのです。
自分用のクラスを定義するときには、組み込みクラスの名前はすべてすでに使われているわけで、
名前空間がクリーンじゃないなと。
> オープンクラスの影響範囲を押さえ込む名前空間システム
そんなのが実現したらすごそうですね。
627:デフォルトの名無しさん
10/02/18 22:22:54
selector namespace だっけ?
628:デフォルトの名無しさん
10/02/18 22:30:06
python も
str = 'hoge'
みたいなことすると
あほなことになるが
629:デフォルトの名無しさん
10/02/18 22:45:07
それは__builtins__.strを上書きしてるわけじゃないから、
モジュール外に被害は出ないだろ。
630:デフォルトの名無しさん
10/02/19 01:20:07
lambdaについて
lambdaはreturnがクロージャから戻り、また引数チェックを行うprocというところまで理解しました。
ですが、このlambdaメソッドはどのように定義されているのでしょうか?
引数チェックはなんとなくメタプログラミングでできそうな気がするのですが、returnの挙動を変える
なんてことができるのでしょうか?
Cで実装されているのかもしれませんが、もしRubyで実装するとすればどのようになるのか教えてください。
631:デフォルトの名無しさん
10/02/19 01:23:39
クラスメソッドを定義しようとして
def Fixnum.bar
end
と書いたら
1.bar
で
NoMethodError: undefined method `bar' for 1:Fixnum
になります。どうすればいいんでしょうか?
632:デフォルトの名無しさん
10/02/19 01:31:22
>>631
1.class.bar
Rubyのクラスメソッドは、その定数で表されるclassオブジェクトのインスタンスメソッドという程度の意味しかない
633:デフォルトの名無しさん
10/02/19 01:31:51
クラスメソッドはインスタンスからは呼べないんじゃないの?
1はFixnumクラスのインスタンスだし。
とりあえず、クラスメソッドと定義しているわけだから
Fixnum.barとすれば動く。
もし、1.barという風に実行したかったのなら
クラスメソッドではなく、インスタンスメソッドを定義したかったのだという事になる。
634:デフォルトの名無しさん
10/02/19 01:35:49
>>630
>このlambdaメソッドはどのように定義されているのでしょうか?
Proc.new
本当に理解したければBindingオブジェクトの知識が要ると思う
635:デフォルトの名無しさん
10/02/19 01:40:35
インスタンスメソッドを定義したかったのでした
636:デフォルトの名無しさん
10/02/19 01:51:27
>>635
それなら
class Fixnum
def bar
puts "bar"
end
end
と書いて、1.barとすればいい
637:デフォルトの名無しさん
10/02/19 01:53:33
Fixnumにメソッド追加するのはおおむねキモいけどな
キモいと自分で感じるまではこれは仕方ない
便利に使うといい
638:630
10/02/19 01:54:53
>>634
Proc.new == Kernel#procですよね?(Ruby1.9)
Bindingオブジェクトは雰囲気だけは分かります。どうか教えてください。
returnの挙動をどうやってメタプログラミングしたのかが知りたいのです。
すみません。
639:デフォルトの名無しさん
10/02/19 02:10:55
あー何度もすみません。特異クラスがおおもとの疑問でした。(試行錯誤の中で>>631へ)
特異クラスの動作を見てみようと
a = 1
def a.foo
end
とすると
TypeError: can't define singleton method "foo" for Fixnum
となるのでどうすればいいのかなと
640:デフォルトの名無しさん
10/02/19 02:20:38
>>639
俺もあまり詳しくないが、とりあえずFixnumとかSymbolとかは特異クラスが定義できない。
a = 1
b = 1
としたときにaとbのobject_idが同じ(aもbも同じオブジェクトを指す)になるのと関係あると思う。
String等その他大勢では
a = 'foo'
b = 'foo'
とするとaとbは違うオブジェクトを指すし、これらには特異クラスが定義できるはず。
641:デフォルトの名無しさん
10/02/19 02:21:31
>>639
Fixnux/Symbol/Nil/True/Falseあたりは処理効率の都合で特殊な実装になってるから
その手の実験では避けた方がいい
642:デフォルトの名無しさん
10/02/19 02:23:12
>>638
わああめんどくせえええ
一応ここはCで書いてあるはず
local_jump_error使ってるんじゃなかろうか
本スレ行き
643:638
10/02/19 02:28:13
>>642
すみません。わああ眠れねええって感じでしたので(笑)。
うは、LocalJumpErrorですか。なんかニオイますね。
初心者なのに、変なところに首を突っ込んでしまったようです。
644:デフォルトの名無しさん
10/02/19 07:31:17
分かりました。ありがとうございました
645:デフォルトの名無しさん
10/02/19 09:02:57
RubyForgeってところでrubyインストーラー落とせると公式に書いていますが
rubyinstaller-1.8.7-p249-rc2.exe
これを落としたいのですが10Mに7時間とかかかるんですが
他に落とせる所は無いんですか?
646:デフォルトの名無しさん
10/02/19 09:50:54
なんとなくRubyでゲーム書いてみたくなったんだけど
2Dで手軽にって感じだと何のライブラリ使うのがいいかね?
647:デフォルトの名無しさん
10/02/19 10:24:06
SDL
Miyako(SDL使用) 書籍あり
RPGツクール(古いか)
くらい?
648:デフォルトの名無しさん
10/02/19 10:27:01
>>645
回線速度で割り算して妥当でないなら時間置いてやり直せ
10MBくらいのファイルなのはRubyならどこも同じ
649:645
10/02/19 10:33:33
ブロードバンドスピードテスト 通信速度測定結果
URLリンク(www.bspeedtest.jp) v3.0.0
測定時刻 2010/02/18 10:27:07
回線種類/線路長/OS:光ファイバ/-/Windows XP/-
サービス/ISP:-/-
サーバ1[N] 23.7Mbps
サーバ2[S] 25.8Mbps
下り受信速度: 25Mbps(25.8Mbps,3.22MByte/s)
上り送信速度: 17Mbps(17.6Mbps,2.2MByte/s)
これで7時間とかおかしいと思うんですがなんででしょうか
firefoxとか関係ないですよね
昨日の12時ぐらいにやっても同じだったんでなんででしょう
650:デフォルトの名無しさん
10/02/19 10:37:40
>>643
何か目的があるの?
例えばthreadでeachのようなものを定義してreturnしたいとか?
651:デフォルトの名無しさん
10/02/19 10:41:16
>>649
こっちは転送率通常
回線経路の問題かも
現在のRubyInstallerはrubygemパッケージで未対応が存在するMinGW32版だけどその覚悟はある?
652:デフォルトの名無しさん
10/02/19 11:04:06
>>612
ぐぐっても見つからないんだが、どこにあるの?
653:デフォルトの名無しさん
10/02/19 11:06:45
>>652
こいつにレスしたのお前が2番目だぞ
654:645
10/02/19 11:17:08
他のPCでも試してみます
>現在のRubyInstallerはrubygemパッケージで未対応が存在するMinGW32版だけどその覚悟はある?
これの意味がよくわかりませんが初心者なのでテンプレ通り1.9.1やめて1.8.7落とそうと思ってます。
rubyinstaller-1.8.7-p249-rc2.exe ←これでいいんですよね?
star rubyってのをやりたいんですけどこれはrubyの拡張ライブラリ?っていう位置付けでいいんですか?
655:デフォルトの名無しさん
10/02/19 11:37:33
しかしなんでわざわざRubyなんかでゲーム作ろうと思うんかね
「○○がRuby経由でもできるようっひょー」が目的であって、Rubyから○○を学ぶのには基本不適だろうに
>>654
URLリンク(arton.hp.infoseek.co.jp)
こっちの入れれ
656:デフォルトの名無しさん
10/02/19 15:16:08
$KCODE ='s'
p Dir.entries(Dir.pwd)
とやると
[".", "..","う\202\311", "しのり\202\361", "すず\202\310"]
こんなのが返ってくるのですが$KCODE以外に何をすれば日本語フォルダを扱えるのでしょうか?
WindowsXP SP3 Rumixで導入した1.8.7を使ってます
657:645
10/02/19 15:32:08
activescriptrubyインストールできましたありがとうございます
hello_world表示できました
エディタがあるようですがRDEとかRDTがあるようですが
みたかんじRDEがとっつきやすそうにググったら見えたんですが
RDEでいいんでしょうか?
658:デフォルトの名無しさん
10/02/19 15:39:02
あー、Shift_JISでも起こるのか
早めに改定出して欲しいなあ
>>656
内部的には普通に扱えてる
p は内容そのものではなく、画面に表示しやすいように整形してから表示する
しかもバグがあって最後に日本語文字があると必ず化ける
putsで表示してみ
659:デフォルトの名無しさん
10/02/19 15:40:50
>>657
どっちも別にエディタじゃない気がするが、どうしてもどっちかを使いたいのならRDEでいいよ
660:デフォルトの名無しさん
10/02/19 18:12:36
>>658
バグですか
こっちはこっちで勘違いしたことやってたので全く気づきませんでしたw
ありがとうございます
661:デフォルトの名無しさん
10/02/19 21:30:25
文字コードを変換して読み書きしてくれるFIleクラスのラッパーライブラリってありますか?
イメージとしては
SjisFileWriter.open(path, "utf-8") do |file|
file << utf8string
end
とすると、sjisに変換して書き込んでくれるようなものを期待してます。
closeするまでStringIOに溜め込んで一気に変換しようとしたのですが、
データが大きくてサーバーがパンクするのであきらめました。
もしかしてコツがあって、こういうのは簡単に書けるものなんでしょうか?
662:デフォルトの名無しさん
10/02/19 21:35:25
改行があるのなら、改行ごとに読み込んで改行ごとに文字エンコーディングを変換して最後に連結すればいい
663:デフォルトの名無しさん
10/02/19 21:51:24
1.9だと希望とほぼ同等のことが出来るんだけどね。
1.8の場合、文字の途中をどうするかといったことを考えずにやるなら
出力に使うメソッドをひととおりコード変換するようにオーバーライド
すればよいと思う。
writeだけのオーバーライドでいいのかな。
664:デフォルトの名無しさん
10/02/19 21:53:08
>>661
1.8 と 1.9 で対処が変わってくると思うので Ruby のバージョン教えれ
665:デフォルトの名無しさん
10/02/19 21:59:19
>>662
Fileクラスの振りをしてそういうことをするには、どんな風なコードを書けばいいのでしょうか?
FasterCSVは内部で、
@io << row.map(&@quote).join(@col_sep) + @row_sep # quote and separate
こういうことをやっているので、コンストラクタで@ioに渡してあげると
書き込みのタイミングでエンコーディング変換してくれる
Fileオブジェクトがあればいいなと思っています。
666:デフォルトの名無しさん
10/02/19 22:00:39
>>663, 664
すみません、リロードしてませんでした。
Rubyのバージョンは1.8.7です。
667:デフォルトの名無しさん
10/02/19 22:03:48
これはひどい
668:デフォルトの名無しさん
10/02/19 22:04:38
すいませんリロードしてませんでした
>>667は>>663についてです
669:デフォルトの名無しさん
10/02/19 22:09:39
これはひどい
670:661
10/02/19 22:10:20
もしかしてこんなのでいいんでしょうか?動くかちょっと試してみます。
class SjisFileWriter < File
def <<(str)
str.kconv(Kconv::UTF8, Kconv::SJIS)
end
end
671:デフォルトの名無しさん
10/02/19 22:12:03
すいませんリロードしてませんでした
>>669は>>668についてです
672:デフォルトの名無しさん
10/02/19 22:13:13
これはひどい
673:デフォルトの名無しさん
10/02/19 22:15:56
末尾再起スレでやれ
674:デフォルトの名無しさん
10/02/19 23:23:37
なんなんだこの流れはw
675:デフォルトの名無しさん
10/02/20 15:25:28
二次元配列的クラスを定義して配列の配列と透過的になるよう要素に
a[i][j]
のようにアクセスできるようにしたいんですがどうすればいいでしょうか?
676:デフォルトの名無しさん
10/02/20 16:26:07
>>675
無理
…いや、2次元くらいなら無理じゃないんだが、
その見栄えを保持するためだけに計算する遅いクラスになるぞ
NArray の a[i, j, k] みたいな記法じゃだめですか
677:デフォルトの名無しさん
10/02/20 17:59:39
プログラマ三大美徳というものがありますが
Rubistにもそういったものがあるのでしょうか?
678:デフォルトの名無しさん
10/02/20 18:05:30
誰かの発言に影響されるのは嫌い。
679:デフォルトの名無しさん
10/02/20 18:09:12
>>677
なにもない
というか
> Rubist
というようなものがない
Railsやってる人とは仲悪いし
680:デフォルトの名無しさん
10/02/20 18:30:08
Railist vs Rubyist
681:デフォルトの名無しさん
10/02/20 20:07:31
>>676
ありがとうございました。
配列の配列ですでに書いてある奴をクラスに直したいなと思ったもので。
682:デフォルトの名無しさん
10/02/20 21:51:45
> Railist
むしろレースウェイズと呼びたくなるファミスタ脳。
683:デフォルトの名無しさん
10/02/20 22:28:14
Railsint(笑)
ポッポ屋でいいだろw
684:682
10/02/20 22:37:43
今さら誤字に気付いた。レイルウェイズだな。
オリックスと近鉄が合併するって時にゲームファンの誰もが口にしたっけ。
685:デフォルトの名無しさん
10/02/22 02:19:19
こんなコードを書きまんた
----------------------------------------
# test.rb
class Foo
def initialize(&func)
@func = lambda(&func)
end
def bar(x)
@func.call(x)
end
end
foo = Foo.new{ |x| return x**2 }
p foo.bar(2)
----------------------------------------
いごきました
$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10]
$ ruby test.rb
4
いごきませんでした
$ ruby1.9 -v
ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-darwin10]
$ ruby1.9 test.rb
test.rb:11:in `block in <main>': unexpected return (LocalJumpError)
from test.rb:6:in `call'
from test.rb:6:in `bar'
from test.rb:13:in `<main>'
どうして?
686:デフォルトの名無しさん
10/02/22 03:16:26
>> 685
難いww
とりあえず、lambdaとprocの違いはreturnの挙動の違いだよな。
そのreturnの挙動を決めるタイミングが1.8と1.9で違うんじゃね?
687:デフォルトの名無しさん
10/02/22 08:22:09
URLリンク(blade.nagaokaut.ac.jp)
ここらへんのか
688:デフォルトの名無しさん
10/02/22 10:53:49
んじゃ1.8と1.9両方で美味しく動作する
foo = Foo.new{ |x| return x**2 }
p foo.bar(2)
を実装するにはどうしたらいいんだべ?
foo = Foo.new(lambda{ |x| return x**2 }
p foo.bar(2)
なら作れたけどラムダラムダ五月蝿い感がある。
689:デフォルトの名無しさん
10/02/22 11:03:02
ブロックの中で最後に評価された式の値が暗黙で返るのを利用するのがエレガントだと思う
690:デフォルトの名無しさん
10/02/22 11:27:33
仕事でlambda使うケースなんて滅多にないけどな
691:デフォルトの名無しさん
10/02/22 11:32:27
class Foo
def initialize
@func = lambda
end
def bar(x)
@func.call(x)
end
end
foo = Foo.new{ |x| return x**2 }
p foo.bar(2)
イケルがなぜか
-:3: warning: tried to create Proc object without a block
と出る
692:デフォルトの名無しさん
10/02/22 11:52:51
なぜかもなにもそのまんまの理由だと思うが
693:デフォルトの名無しさん
10/02/22 12:33:42
>>692
class Foo
def initialize
@func = proc
end
def bar(x)
@func.call(x)
end
end
foo = Foo.new{ |x| x**2 }
p foo.bar(2)
だと警告がでないのはなんで?
694:デフォルトの名無しさん
10/02/22 12:36:28
lambdaとproc(とProc.new)は処理が違う
695:デフォルトの名無しさん
10/02/22 12:38:29
Rubyのめんどくさいとこベスト3に入るところだな
きちんとした解説ページとかないものか
696:デフォルトの名無しさん
10/02/22 15:12:28
# ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mswin32]
p lambda{return 0}.call #=> 0
p lambda(&lambda{return 0}).call #=> 0
p lambda(&proc{return 0}).call #=> 0
# ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mswin32]
p lambda{return 0}.call #=> 0
p lambda(&lambda{return 0}).call #=> 0
p lambda(&proc{return 0}).lambda? #=> false
p lambda(&proc{return 0}).call #=> unexpected return (LocalJumpError)
1.9だとKernel.#lambdaにprocを渡すとprocが帰ってくるんだな
仕様なのかBUGなのか
697:デフォルトの名無しさん
10/02/22 15:14:30
&lambdaは&lambdaの誤りね
698:デフォルトの名無しさん
10/02/22 16:44:02
自分は組込みの仕事なのでCを使っているんだけど、
Rails以外で仕事でRubyを使う場合、どんなものを
作っているの?
699:デフォルトの名無しさん
10/02/22 17:13:17
自分の効率アップ用途以外には使わない俺スクリプト
仕事に使う中間物の生成プログラム
社内オンリーの更新頻度が高い内製プログラム
Rubyソースコードを商品にすることはほぼ確実にない
Rubyスクリプトが作り出したものを売ったり配ったりすることも少ないかと
なくても無論なんとかなるしプロダクト自体には全く影響しないが、能率ががくっと落ちる
もちろん本質的にはRubyでなくてもよい
PerlやPython、JavaやC++(えー)で超速く安定に作れるならむしろそっちのほうがよい
700:デフォルトの名無しさん
10/02/22 17:23:18
>>699
なるほど、製品レベルとなるにはまだ先のことですかね。
自分にとって現時点ではRubyは業務とは無縁の存在だけど
勉強はしておこう。
701:デフォルトの名無しさん
10/02/22 17:25:26
プログラマーズベストフレンドという文言がそのまんまだな
言語オフィシャルレベルでこれを標榜してる傲ま…いや野心的なところは見たことがない
配布ライブラリなんかで言ってるところは少なくないんだけど
URLリンク(www.google.com)
702:デフォルトの名無しさん
10/02/22 17:30:15
> 製品レベルとなるにはまだ先のことですかね
永遠にないんじゃないかなあ、と最近思ってる
そういう方向には進化してない気がするし、製品を作ろうとしないほうがうまくコード書ける気がする
Eclipseがなくても製品は作れるが、ないと死ぬ、そんな位置にRubyが入り込むんじゃないかと
703:デフォルトの名無しさん
10/02/22 21:33:03
matzもRubyは同僚に差をつける秘密兵器として使ってほしいとか
なんとか昔言ってたしな。
704:デフォルトの名無しさん
10/02/22 21:43:16
Rubyに関わったせいで同僚と差がついてしまいましたorz
705:デフォルトの名無しさん
10/02/22 21:53:08
Rubyでプログラミングしてると「何とかして面白いコードは書けないか」と、そこに注力して仕事が進まないんだが。
どうしてくれる!Matzは責任とれ!
706:デフォルトの名無しさん
10/02/22 21:53:35
他社に差をつける秘密兵器だと思ってた時期がおれにもありました
707:デフォルトの名無しさん
10/02/22 21:58:44
>>706
間違いじゃないけどね
全員がRuby相当のものを修めてる会社は強いはずだ
708:デフォルトの名無しさん
10/02/22 22:00:55
しかしつまらんスレだな
709:デフォルトの名無しさん
10/02/22 22:03:43
ま、ここはRubyの開発者が名無しで書き込むスレだからな。
710:デフォルトの名無しさん
10/02/22 22:13:20
何かこうエロい話題は無い物か。
711:デフォルトの名無しさん
10/02/22 22:16:47
おっぱいクラスとか作れば?
712:デフォルトの名無しさん
10/02/22 22:43:44
>>710
このスレに何を求めてるんだw
713:デフォルトの名無しさん
10/02/22 22:45:02
Rubyのアイコンが亀甲縛りに見えるぐらいしか思いつかない
714:デフォルトの名無しさん
10/02/23 01:33:59
>>711
おまえのエロの限界はおっぱいまでなのか?
しかも虚構のおっぱいクラス
715:デフォルトの名無しさん
10/02/23 02:22:29
エロい話題のところすみません
半年ほど前は普通にgem installできていたはずなのですが、つい最近gemを新たにupdate、installしようとすると以下のようなエラーが出るようになりました
$ sudo gem install hogehoge
ERROR: While executing gem ... (Errno::EEXIST)
File exists - /opt/local/bin/gem
環境はMac OS X(10.4.11)で、
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.5
- RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [i686-darwin8]
- INSTALLATION DIRECTORY: /opt/local/bin/gem/:
- RUBY EXECUTABLE: /opt/local/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/bin/gem/:/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-darwin-8
- GEM PATHS:
- /opt/local/bin/gem/:
- /Users/******/.gem/ruby/1.8
- /opt/local/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["URLリンク(gems.rubyforge.org)", "URLリンク(gems.github.com)<)
- URLリンク(gems.github.com)
です
716:デフォルトの名無しさん
10/02/23 02:28:35
エラーが出るようになったのはわかった。で?
717:デフォルトの名無しさん
10/02/23 02:37:30
/opt/local/bin/gem か /opt/local/bin/gem/ の権限がおかしいように見える
718:デフォルトの名無しさん
10/02/23 02:53:53
>>717
opt/local/bin以下をls -lしたところgemは
-rwxrwxr-x 2 root admin 548 Feb 15 15:18 gem
となっていますがrootではなくユーザー権限の方がいいのでしょうか
719:デフォルトの名無しさん
10/02/23 04:06:02
権限をユーザ名にしてみたり-rwxrwxrwxにしてみたりしましたがやはり状況は変わりませんでした
なんとなく
- INSTALLATION DIRECTORY: /opt/local/bin/gem/:
の部分が
/opt/local/lib/ruby/gems/1.8
になるべきなんじゃないかという気がしてきたので今後はそちらから攻めてみようと思います
/opt/local/bin/gemは実行ファイルなのでDIRECTORYっておかしいですよね…
720:715
10/02/23 04:53:36
連投すみません
GEM_HOME変えたら直りました
昔入れたrailsとかも全部こっちに入ってたのでいつの間にか変更されてたみたいです
ご協力ありがとうございました
721:デフォルトの名無しさん
10/02/23 15:00:19
オッパイクラス マダー?
722:デフォルトの名無しさん
10/02/23 22:20:30
Ruby2.0まで待て