Ruby初心者質問スレPart1
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNG雑談、ML・blogウオッチはこちらでどうぞ。
むーんうるふ Part13 【Rubyについて】
http://pc5.2ch.net/test/read.cgi/tech/1100533226/
Ruby Home Page
http://www.ruby-lang.org/ja/
前スレ - Rubyについて Part 12
http://pc5.2ch.net/test/read.cgi/tech/1100199861/
0002デフォルトの名無しさん
NGNG: Rubyについて Part 11
http://fun.kz/test/read.cgi/tech/1097984684/
: Rubyについて Part 10
http://fun.kz/test/read.cgi/tech/1095004337/
: Rubyについて Part 9
http://fun.kz/test/read.cgi/tech/1087999575/
: Rubyについて Part 8
http://fun.kz/test/read.cgi/tech/1079975637/
: Rubyについて Part 7
http://pc2.2ch.net/test/read.cgi/tech/1074235226/
: Rubyについて Part 6
http://pc2.2ch.net/test/read.cgi/tech/1067623825/
: Rubyについて Part 5
http://pc5.2ch.net/tech/kako/1063/10630/1063028224.html
: Ruby について Part 4
http://pc5.2ch.net/tech/kako/1056/10569/1056944114.html
: Ruby について Part 3
http://pc5.2ch.net/tech/kako/1042/10420/1042004759.html
: Rubyについて Part 2
http://pc3.2ch.net/tech/kako/1028/10289/1028906179.html
: Rubyについて
http://pc3.2ch.net/tech/kako/1012/10120/1012096319.html
0003デフォルトの名無しさん
NGNG: リファレンス
http://www.ruby-lang.org/ja/man/
: Ruby Weekly News @ Ruby Garden
http://www.rubygarden.org/rurl/html/
: ruby-cvs
http://rrr.jin.gr.jp/rwiki?cmd=view;name=ruby-cvs
: Ruby hotlinks 五月雨版
http://rrr.jin.gr.jp/~znz/samidare/
: 日本Rubyの会
http://jp.rubyist.net/
: Rubyist Magazine
http://jp.rubyist.net/magazine/
: <rubyXML/>
http://www.rubyxml.com/
: Matzにっき
http://www.rubyist.net/~matz/
= 関連スレ
: rubyを語るスレッド 4
http://pc.2ch.net/test/read.cgi/unix/1060537252/
: 【最高言語】 Rubyist Magazine創刊 【ルビま!】
http://pc5.2ch.net/test/read.cgi/tech/1094825807/l50
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGこれで住み分けが計れればいいでつね。
0007デフォルトの名無しさん
NGNGif dir[0] == ?/
の「?/」ってなに?
「/」のASCIIコードが返ってるみたいなんだけど…。「?」って演算子ですか?
0008デフォルトの名無しさん
NGNG数値リテラルの一種です。後続する文字のコードを表します。
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%A5%EA%A5%C6%A5%E9%A5%EB#a.bf.f4.c3.cd.a5.ea.a5.c6.a5.e9.a5.eb
0009デフォルトの名無しさん
NGNG直感的ではないとおもうのだけど。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGやっぱりオタク向け言語なんだな。
0013デフォルトの名無しさん
NGNG/|√ Ruby >>> Python >>> Perl ⌒/ ) ハッ!
Λ /)ζ
○
/|√ Ruby >>>>>>>>>>>>>>>>>>>> Python >>> Perl
Λ _○√ ヒョイ
<<
0014デフォルトの名無しさん
NGNGRubyには「文字」というのが存在しないから。
「文字列」というよりはむしろ「バイト列」と考えるとすっきりすると思う。
そもそも多言語化を考えると、文字そのものの扱いも複雑になり、「何文字目」
という情報を扱うにはその文字列の文字コード情報が必要になる。
確かに現状はあまり直感的ではないと思うが、そういうわけで言語の構造に大
きく依存するから、今の Ruby では対応は無理。 M17N 対応が進めばできると
思う。
とりあえず日本語でそれっぽくやりたいという場合には、 jcode を require
すれば大丈夫っぽくなる。
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=jcode.rb
0015デフォルトの名無しさん
NGNG00167
NGNGありがとうです。p66の数値リテラルのところを読み返したら書いてありました…
こういう記号ってリファレンスを全文検索しようにも、関係ないのがたくさんヒットして困るんだよなあ。
う〜む、
'abc'[0] == 'a'
が偽になるとちょっとべっくらしますね。
0017デフォルトの名無しさん
NGNGなら真ですね。
Lisp風なのかな?Lispはよく知らないけど。
0018デフォルトの名無しさん
NGNGこれって内容以前に型が違うって話?
0019デフォルトの名無しさん
NGNG型は違う。
ruby -e 'p "abc"[0].class'
Fixnum
ruby -e 'p "a".class'
String
でも当然
ruby -e 'p "abc"[0].chr'
"a"
0020デフォルトの名無しさん
NGNG今日の夕飯 <-見出し1
秋刀魚を焼いて食べたかった。 <-本文1
気づいたこと <-見出し2(次の見出しとの間に一行空けてない所もある)
机はいらない。 <-本文2
引き出しがあれば問題ない。 <-本文2(本文は複数行にわたることもある)
明日は朝早くにいかなければならないので、 <-本文3(見出しが無く、いきなり本文から始まるものもある)
近くの人の家に泊まる。
(以下、上記のような記述がランダムに続いていく)
これを読み込んで、「気づいた[こと | 事]」という見出しに続く本文だけを、配列や変数に取り込むにはどうしたらよいでしょうか。
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG1つのドキュメントに一箇所しかないなら、ちょっと変更すれば YAML になる
から、そうした上で YAML.load するのも楽かも。
何度も出てくる&見出しと本文の間が(全角ではなく半角の)空白だったとすれば、
Topic = Struct.new("Topic", :title, :body)
t = b = ""
res = []
while line = ARGF.gets do
case line
when /^$/
next
when /^\s/
b << line
else
res << Topic.new(t, b) unless t == ""
t = line
b = ""
end
end
とかで全部読み込んでおいて、
res.delete_if{ |e| e.title !~ /気づいた[こと|事]/ }
などで削るとかかなあ。
002320
NGNG本文は、全角や半角スペースで字下げをしている所もあれば、タブでインデントしてある場合もあります。
さらに字下げもインデントもいれずに本文を書き出しているところもある、という節操の無い書き方をしてあります。
□を全角または半角スペース、->をタブとすると、以下のようなパターンで書かれています。
見出し
□□本文
□□本文
見出し
->本文
->本文
見出し
本文
本文
0024デフォルトの名無しさん
NGNG「気づいた[事|こと]」は、頻繁にでてきます。
ゆくゆくは、「気づいた[事|こと]」 以外の見出しの本文についても抜き出してみたいのですが、
それは後で取り組もうと思っています。
教えていただいたコードをこれからよく読んで試してみます。
0025デフォルトの名無しさん
NGNGえと、本文か見出しか、というところが機械的に判断できないとなると、作業
は相当難航するでしょうね。それから正規表現の \s は半角スペースとタブは
含みますが、全角スペースは含みません。これも注意。
もしくは、見出し+本文が必ず空行によって区切られているのだとすれば、空
行を発見することで、
・空行の次の行が見出し
・その次から空行の前までが本文(先頭の空白は取り除く)
という戦略で、切り出すことができるでしょう。
それから、空行で切り出すんだったら、 ruby -00 を使うのも手です。
もしくは、見出しの方に
= ここが見出し
ここは本文
のように先頭に何かの記号(この場合は =、他には * なんかも使われることが
ある)をつけてやれば、やはり簡単に切り出すことができるでしょう。
0026デフォルトの名無しさん
NGNGやはり難しいですか。
これまではテキストエディタで 「気づいたこと」 を検索し、続き本文をコピー&ペーストする作業を
人が目で確認しながら行っていたのですが、手間がかかりすぎるためなんとかしたい、と思ったのです。
一気に解決は難しいようなので、まずは以下のことを実現するすべは無いでしょうか。
テキストファイルを読み込み、
行の先頭にある「気づいたこと」を検索し、
>・その次から空行の前までが本文(先頭の空白は取り除く)
>という戦略で、切り出す (省略させていただきました)
そして切り出したものを、変数や、配列に記憶する。
0027デフォルトの名無しさん
NGNG確実に空行で区切られるなら非常に楽。
res = []
while chunk = gets "" do
a = chunk.split('\n')
res << [a[0], a[1..-1].map{|e|e.strip}.join('\n')]
end
これで、 res は、「第一要素がタイトルで第二要素が本文となる配列」を
要素として持つ配列のリストになります。
後は、
res.delete_if{ |e| e[0] ~! /気づいた[こと|事]/ }
として res から無関係なものを削除してもいいし、
res に追加する段階でタイトルのチェックをしてもいいし。
ちなみに、>>22 では配列じゃなくて Struct を使ってますが、この辺は好みの範囲。
0028デフォルトの名無しさん
NGNGありがとうございます。
下記のコードでずいぶんとノイズを減らすことができました。
# kizuita.rb
require 'jcode'
$KCODE = "sjis"
res = []
#filename = open(ARGV.shift)
while chunk = gets("") do
a = chunk.split('\n')
res << [a[0], a[1..-1].map{|e|e.strip}.join('\n')]
end
res.delete_if{ |e| e[0] !~ /気づいた[こと|事]/ }
puts res
これを C:\work\ruby kizuita.rb < 備忘録.txt > 要点.txt としてから、
あとは人が取捨選択する方法でとりあえず明日作業してみます。
このコードを拡張、改良しながら、rubyの知識を広げていこうと思います。
丁寧にアドバイスいただきありがとうございました。
002927
NGNG[こと|事]
じゃなくて
(こと|事)
ですた。
上じゃたぶんまともにマッチしない……いや、これはこれでできるのかな?
0030デフォルトの名無しさん
NGNGもマッチする。
それと$KCODEに代入するのではなく一行目を
#! ruby -Ks
にしたほうがいいかも。
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNGこれからもメモ書きを増やしていくつもりなら以下のどれかにしなさい。
1.プログラムでの処理は諦める。検索は高機能なエディタとかgrepで。
2.RDとかYAMLとか何か決まったフォーマットで書く。
3.メモツールに移行。「紙」とか。
4.Apolloとかでメモツールでっち上げりゃいいじゃん。
フォームから書いてプログラムが読めるようにプログラムで整形する。
もしくはApollo|vruby -> ADO|ODBC|BDE -> Access|PostgreSQL|MySQL等
のほうが望ましいかも知れん。
5.何でも良いからWikiを使え。検索機能だってあるし。
もしメモを共有してるならサーバにWiki上げとけば簡単に共有できるし。
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG要点.txtとか出力する人がemacs使ってるとは思えない。
0037デフォルトの名無しさん
NGNGローカルの鯖ならいいが
日記サイト公開してるやつの気がしれん。
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGして読めません。文字のエンコーディング自体がおかしいようなんだけど、どこかに
修正されたものは公開されてないでしょうか?
0040デフォルトの名無しさん
NGNGにありますが、一年以上更新してません。
ごめんなさい、ごめんなさい、ごめんなさい。
0041デフォルトの名無しさん
NGNGRaccおすすめだよRacc
0042デフォルトの名無しさん
NGNG更新してほしいな〜。
0043デフォルトの名無しさん
NGNG付属しているドキュメントだけでは、yacc/lexとかかじったことがある人でないとつらい。
少なくとも初心者が付属ドキュメントだけで理解して使うのは難しい。
もう少しチュートリアルが充実してるといいんだけどな。
初心者お断りっていう方針なら、仕方ないけど。ものが良さそうなだけに、残念。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGでもあれだけ決まりがないフォーマットを扱うのに最適な解はRacc辺りと思われ。
0046デフォルトの名無しさん
NGNG文法がカッチリしてないと racc で扱うのは辛いぞ。
>>20 みたいのは正規表現をアドホックにいじりつつ
右往左往しながらパースするのが正解だと思う。
0047デフォルトの名無しさん
NGNG必ず空行を入れる というだけのルールだけでも
あとあと便利に扱えますよ。なにかメモするときに
ちょっとしたルールを作るのはいいことですね。
リファレンスマニュアルに gets の説明があるので
みてみてください。
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=IO
空文字列 "" を指定すると連続する改行を行の区
切りとみなします (パラグラフモード)。
空行区切りで読み込めば、あとは先頭の文字列で
判断できますね。
0048デフォルトの名無しさん
NGNGa = /perl|php|python|ruby-list|ruby-dev|ruby-talk/e
b = /p(erl|hp|ython)|ruby(|-(list|dev|talk))/e
こんな感じに手でやったほうが速いみたいだけど、自動化できないのかな。
0049デフォルトの名無しさん
NGNGなかなか辛そうに思うのだが、Rubyに限らずそういうのを自動化するのって
原理的に可能なものなのか?
数学的に正則な集合に対してはそういう正規表現を自動生成できるのも
分かるのだが。
0050デフォルトの名無しさん
NGNG最適化になってないような・・
bをaに勝手に最適化するならわかるが
0051デフォルトの名無しさん
NGNG% uname -a
CYGWIN_NT-5.1 hummingbird 1.5.12(0.116/4/2) 2004-11-10 08:34 i686 unknown unknown Cygwin
% ls -l kabefile
-rw-r--r-- 1 k なし 161620216 Nov 21 12:08 kabefile
% time ruby -ne 'BEGIN{$ex = /p(?:erl|hp|ython)|ruby-(?:list|dev|talk)/}' -e '$ex =~ $_' kabefile
6.08s user 0.47s system 99% cpu 6.575 total
% time ruby -ne 'BEGIN{$ex = /p(?:erl|hp|ython)|ruby-(?:list|dev|talk)/}' -e '$ex =~ $_' kabefile
6.19s user 0.34s system 99% cpu 6.553 total
% time ruby -ne 'BEGIN{$ex = /p(?:erl|hp|ython)|ruby-(?:list|dev|talk)/}' -e '$ex =~ $_' kabefile
6.11s user 0.39s system 99% cpu 6.542 total
% time ruby -ne 'BEGIN{$ex = /perl|php|python|ruby-list|ruby-dev|ruby-talk/}' -e '$ex =~ $_' kabefile
7.84s user 0.43s system 100% cpu 8.238 total
% time ruby -ne 'BEGIN{$ex = /perl|php|python|ruby-list|ruby-dev|ruby-talk/}' -e '$ex =~ $_' kabefile
7.93s user 0.34s system 100% cpu 8.230 total
% time ruby -ne 'BEGIN{$ex = /perl|php|python|ruby-list|ruby-dev|ruby-talk/}' -e '$ex =~ $_' kabefile
7.77s user 0.46s system 99% cpu 8.232 total
% time ruby -ne 'BEGIN{$ex = /p(erl|hp|ython)|ruby(|-(list|dev|talk))/}' -e '$ex =~ $_' kabefile
7.57s user 0.51s system 99% cpu 8.111 total
% time ruby -ne 'BEGIN{$ex = /p(erl|hp|ython)|ruby(|-(list|dev|talk))/}' -e '$ex =~ $_' kabefile
7.65s user 0.36s system 99% cpu 8.075 total
% time ruby -ne 'BEGIN{$ex = /p(erl|hp|ython)|ruby(|-(list|dev|talk))/}' -e '$ex =~ $_' kabefile
7.64s user 0.36s system 100% cpu 7.978 total
0052デフォルトの名無しさん
NGNGrequire "fileutils.rb"
all_files = []
all_files += Dir.glob("*.*")
file_hash = {}
all_files.each do |name|
size = File.size(name)
if file_hash.has_key?(size) == false
file_hash[size] = []
end
file_hash[size] << name
end
file_hash.each_value do |files|
size = files.size
size.times do |src|
(src + 1).upto(size - 1) do |dst|
if File.compare(files[src], files[dst]) == true
File.delete(files[dst])
end
end
end
end
005352
NGNGRuby修得中のみです。
「カレントフォルダ内で同じ内容のファイルを消す。」
というスクリプトを書いたのですが
>>52
よりRuby風味になるところがあろうかと思います。
ご指導お願いいたします。
0054デフォルトの名無しさん
NGNGend
end
end
end
end
end
end
end
end
end
end
0055デフォルトの名無しさん
NGNGfile_hash ||= [] # file_hash が偽のとき代入
File.delete(file) if File.compare...
とか。
0057デフォルトの名無しさん
NGNGxxx == false は unless xxx
でいいんじゃないかな。
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNGハッシュ値出すときって結局ファイル全部読み込むよな。
だったら普通にバイト切り出して単純比較の方が速いんじゃないのか?
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGFile.compare ってサイズしか比較しないの?
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNGそこでJavaですよ
0065デフォルトの名無しさん
NGNG一つ問題があります.
たまに,取得してくる文字列の中にnilと認識してしまう文字列があり,うまく書き出せ
ません.
これを回避する方法はありますか?
0066デフォルトの名無しさん
NGNGもっと詳しく!
0067デフォルトの名無しさん
NGNGSHIFT-JISを使ってるんですけど,恐らく,特殊文字と同じコードが含まれているような漢字を
読み込んだときに,その文字列を出力するとnilを出力してしまいます.
先頭で#!c:/usr/bin/ruby -Ksとオプションを付けてもダメでした.
処理自体は非常に単純で,Web上のHTMLにアクセスして,テキストデータを文字列に格納し,
ローカルのテキストファイルに書き出すという処理です.
その際に前述したような漢字を読み込むと,その行がnilと出力されてしまいます.
このような漢字がない場合は,正常に動くので,漢字コードが原因と考えてるんですが...
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNGそれは知らないです.
ヘッダの部分に宣言しとくだけでいいんですか?
0070デフォルトの名無しさん
NGNGただ、ひょっとしたら意味ないかも。ダメだったらスマソ。
0071デフォルトの名無しさん
NGNGもっと詳しく!
ていうか再現コードきぼんぬ
0072デフォルトの名無しさん
NGNG実は,ローカルファイルに書き出す際に,一行づつ読み込んだ文字列にそれぞれ条件に応じた
処理をしています.
様々な処理をしているので,ここでは書ききれないのですが,個人的にはこの部分がまずい
ような気がしてきました.
例えば,読み込んだ文字列からある文字列を取り除いたり,別の文字列で置換したりして
るので,その際に変換後の文字列に望ましくない文字コードが含まれる形になったように
思います.
0073デフォルトの名無しさん
NGNG「処理自体は非常に単純」ぢゃなかったの? 最初からきちんと書こうよ。
そんなことでは誰も答えてくれないよ。というか答えようが無い。まあ、
普通にGETしてwriteするだけならそんな妙なことになるわけ無いから、
文字列を何かいぢってるのだろうとは思ってたけど……。
問題のある行で変換処理すると nil と書かれてしまう、ということは、
文字コードの問題じゃなくて、単に変換する際に使ったメソッドの戻り
値が nil で、それが書き込まれてるって可能性は? gsub!とかは置換さ
れなかった場合 nil を返す。それをFile#printあたりで書き込んでるの
では?
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG当方,コマンドプロンプトで変数に文字や数字を代入したり
printで表示させたりするのができる程度なんですが,どなたか教えてください.
0077デフォルトの名無しさん
NGNGhttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Dir
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=File
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=IO
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNGC言語から組み込みRubyを利用してみたいのですが
どういう風な手順を踏めば、正しく利用することが出来るのでしょうか?
参考:http://takahr.dhis.portside.net/cgi-bin/rwiki.cgi?cmd=view;name=%C1%C8%A4%DF%B9%FE%A4%DFRuby
とりあえずRuby本とか↑のページとかを参考にしつつ
色々試してみてるんですが、さっぱりです。
version.h は見つからないし、 ruby.h をインクルードしたら
string.h 他いくつかのヘッダが見つからないと怒られるし。
ちなみにWindowsユーザーです。パラメータとかコンソールとかの使い方程度は解ります。
0081デフォルトの名無しさん
NGNG難しい。
逆に言えば、Makefile見りゃわかる。
008280
NGNGやはりコンパイル周りの技術を勉強するしかないのでせうか
0083デフォルトの名無しさん
NGNG> version.h は見つからないし、 ruby.h をインクルードしたら
> string.h 他いくつかのヘッダが見つからないと怒られるし。
というレベルではお話になってない。
ruby云々というより、Cの知識というか、自分の使おうとしている処理系の
知識が足りてないから。
コンパイル周りの技術というか、自分の書いたCプログラムをコンパイルする、
というあたりから始めた方がいいと思う。
0084デフォルトの名無しさん
NGNGruby 1.8.1 (2003-12-25) [i386-cygwin]
このバージョンのirbで以下のものを実行しました。
irb(main):001:0> a=[[],[]]
=> [[], []]
irb(main):002:0>
irb(main):003:0* irb(main):003:0> exit
p2c$ irb
irb(main):001:0> a=[[],[]]
=> [[], []]
irb(main):002:0> a.fill([])
=> [[], []]
irb(main):003:0> a[0].push("a")
=> ["a"]
irb(main):004:0> a[1].push("c")
=> ["a", "c"]
irb(main):005:0> a
=> [["a", "c"], ["a", "c"]]
この動きっておかしくないですか?
0085デフォルトの名無しさん
NGNGa=[[],[]]
a[0].push("a")
a[1].push("c")
p a
a=[[],[]]
a.fill([])
a[0].push("a")
a[1].push("c")
p a
a.fill(["abc"])
p a
0086デフォルトの名無しさん
NGNGp2c$ irb
irb(main):001:0> a=[[],[]]
=> [[], []]
irb(main):002:0> a.fill([])
=> [[], []]
irb(main):003:0> a[0].push("a")
=> ["a"]
irb(main):004:0> a[1].push("c")
=> ["a", "c"]
irb(main):005:0> a
=> [["a", "c"], ["a", "c"]]
0087デフォルトの名無しさん
NGNGstring.hがないってのはちょっとアレだけど
そこのサイト見ても組み込めるようになるとはとても思えないな。
SDKとして最低限必要なことが全く書かれていない。
なんか初心者でなくても茨の道って感じ。
008885
NGNG示せばいいだけか。最後の2行余計だし orz
0089デフォルトの名無しさん
NGNGぐぉ
a.fill([].clone)
とかやらないとだめですか…
もっとスマートな方法あります?
0090デフォルトの名無しさん
NGNGval の代わりにブロックを指定するとブロックの評価結果を値とし
ます。ブロックは要素毎に実行されるので、セットする値のそれぞれをあ
るオブジェクトの複製にすることができます。
ブロックのパラメータには start からのインデックスが渡されます。
ary = []
p ary.fill(1..2) {|i| i} # => [nil, 1, 2]
p ary.fill(0,3) {|i| i} # => [0, 1, 2]
p ary.fill { "foo" } # => ["foo", "foo", "foo"]
p ary.collect {|v| v.id } # => [537770124, 537770112, 537770100]
0092デフォルトの名無しさん
NGNGRipperTutorial
http://i.loveruby.net/w/RipperTutorial.html
RipperTutorial.TokenStreamInterface
http://i.loveruby.net/w/RipperTutorial.TokenStreamInterface.html
タイムスタンプを見たら、書きたてほやほやだった。
0093デフォルトの名無しさん
NGNG引数の数が1であることを調べるにはどうすればいいですか?
sendを使えばできるのですが、その関数を実行したくないときには
sendは使えません。
009493
NGNGmethodとMethod#arityを使ったらできました。
0095デフォルトの名無しさん
NGNG使い方がきれいさっぱり全く解らないのですが、どこか良いサイト無いでしょうか?
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNGまずman iconv_openを参照しなされ。Iconv::newのパラメータtoとfromに
与えられるものの一覧がある。たとえば、euc-jpのsをUTF8に変換したいとき、
ic = Iconv.new('UTF-8', 'EUC-JP')
ic.iconv(s)
ic.close
もしくは
Iconv.open('UTF-8', 'EUC-JP') {|ic| ic.iconv(s)}
もしくは
Iconv.iconv('UTF-8', 'EUC-JP', s)
で変換できる。
0098デフォルトの名無しさん
NGNGありがとん。
でも、SHIFT-JIS で保存したスクリプトで、
Iconv::conv('SHIFT-JIS', 'UTF-8', "あいうえお")
とするだけで IllegalSequence が出てしまう。EUC-JP 等でも試したけど駄目。
アルファベットなら無問題。
文字コードを合わせて保存したファイルを読み込んでも同様。
iconv コマンドは問題なく使えてるんだけど、原因等が良く解らんくて対処できんのです orz
以前、uconv 使って問題無かった記憶があるから探し出して真似て凌ぐか……
コンパイル面倒だなぁ。
009998
NGNG1時間以上気がつかなかった。とりあえず、寝よう。そうしよう。
今度は、何故か文字化けしちゃってるけど、なんとかなるかなぁ。
……穴を探して潜り込んできまつつ
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGたしかに分かりづらいというかなんと言うか。
もともとのiconv_openに準拠したんだろうね。
strcpyみたいな順番て覚えておけばいいんだろうか。
別に覚えなくてもいいか。
0102デフォルトの名無しさん
NGNGーのある文章(SJIS)を.chop.splitで単語単位に分け、WinXPのDOS窓に表示するプログラムを作ったんですが、
ーが・と置き換わってしまってうまくいきません。(テキスト形式で保存すると半角空白になります)
JISやEUC、UNICODEでは文字化けします。
ーを―に置換するしかないのでしょうか?
0103デフォルトの名無しさん
NGNG* chop じゃなくて chomp かも。
* 文字コードは指定してる? (起動時に -Ks オプションを付ける、とか。)
差し障りがなければ、最低限のコードを貼ってくれるとコメントしやすいかも。
0104デフォルトの名無しさん
NGNGすいません。
なんかよくわからないけどできました。
ちょっと原因を探ってみます。
0105デフォルトの名無しさん
NGNG今のままだと、"米俵"を含む行しか数えず、1行に複数の"米俵"があると、カウントされません。
また
米
俵
と改行されてしまうとカウントされません。
最終的には、”米俵”、”販売”など、複数の指定文字列とマッチするようにしたいのですが、
どうすればいいかさっぱりわかりません。
n=0
while text=gets
while (i=text.index(/米俵/))!=nil
n=n+1
printf "%s",text[i..-1]
text[0...i+4]=""
end
end
printf "「米俵」の出現回数は %d 回\n",n
0106デフォルトの名無しさん
NGNGwget を使って実現するにはどうすればよいでしょうか。
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGruby -e 'p File.read("filename.txt").scan(/米俵/).size'
0109デフォルトの名無しさん
NGNG一行ずつ gets じゃなく、一気に全部読んでいいなら
n = ARGF.read.scan(/米\n*俵/).size
とか。(printfの行が必要だったら、これじゃダメだけど)
複数項目だと↓こんな感じか?
kome_dawara = 0
hanbai = 0
ARGF.read.scan(/(?:(米\n*俵)|(販\n*売))/) do
if $1
kome_dawara += 1
elsif $2
hanbai += 1
end
end
printf "米俵: %d, 販売: %d\n", kome_dawara, hanbai
0110デフォルトの名無しさん
NGNGWindows環境用ならCP932の方がいいんじゃなかろうか。
Windowsで作ったファイルだと拡張文字なんかの駄目文字が出てくる予感。
まあ環境とファイル次第だが。
0111デフォルトの名無しさん
NGNGこんな方法もあるんですね。知りませんでした。
でもちょっとうまくいきません。もうちょい弄くってみます。
>>109
動きました。どうもありがとうございます。
回答ありがとうございました。
0112デフォルトの名無しさん
NGNGの出力結果を
printf "%8s に関しては %2dでした\n"
で出力されたように整形して出力したいのですが、
{key}の前に%8sとかやってもできませんでした。
どうすればいいでしょうか?
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNGできました。"〜",key,valueですね。
最初の,を忘れて苦戦した・・・
なにやってんだ俺は・・・
どうもありがとうございました。
0115デフォルトの名無しさん
NGNGString#% を使ってこういう風にも書ける。
puts "#{'%8s' % key} に関しては #{'%2d' % value} でした"
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=String#self.20.25.20args
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG・最初は「puts "#{key} に関しては #{value} でした"」と書く。
・後になって桁数指定したいと思う。
・修正がラクだから「puts "#{'%8s' % key} に関しては #{'%2d' % value} でした"」にする。
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG>>119
お前が思う読みやすく修正が楽なの書いてみて
0121デフォルトの名無しさん
NGNGそうだなあ、
"#%8s{key} に関しては #%2d{value} でした"
とか書けるようになると嬉しいかも。
0122121
NGNG一分間ほど眺めた時点で挫折しました。
0123デフォルトの名無しさん
NGNGそれ、読みやすく修正がラクかな・・・?
0124デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG今#の後で特別扱いされるのは{$@だけだから、それを入れちゃうと既存のコー
ドが動かなくなっちゃう可能性があるんだよね。悪くはないと思うけど。
0127121
NGNGと思って検索してみました。
% grep '#%' /usr/local/lib/ruby/1.8/**/*.rb | wc
7 40 629
思いのほか手強いですね。
0128デフォルトの名無しさん
NGNG#8{key} #2{value}
#@8{key} #@2{value}
#$8{key} #$2{value}
0129121
NGNG% grep '#[[:digit:]$@]' /usr/local/lib/ruby/1.8/**/*.rb | wc
173 949 16551
というふうに、そっちの方がハマるケースが多そうなのと、
できれば出力変換仕様 (sprintf フォーマット) を自由に指定したいのと、
できれば {} の中には任意の式が書けた方が嬉しいので、
ちょっと、うーん、という感じがしますね。
見ためにはわかりやすそうではありますが。
あ、そうだ、
"#{|8s|key} に関しては #{|2d|value} でした"
とかどうでしょう?
0130デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNGくちゅくちゅ。
0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGその中で今のsyntaxと衝突しないのは二つ目かな。
$ ruby -e 'p "#8"'
"#8"
$ ruby -e 'p "#@8"'
-e:1: `@8' is not allowed as an instance variable name
$ ruby -e 'p "#$8"'
""
でも、 #%8s{key} とかってどうもバランスがよくないように感じる。
0135デフォルトの名無しさん
NGNGそうしたらほら、外には記号の宝の山が待っている。
0136デフォルトの名無しさん
NGNGくらす = Class.new do
def self.にゅー() self.new; end
def initialize() @ふが = 'fuga'; end
def めそっど() [$ほげ, @ふが]; end
end
$ほげ = 'hoge'
p くらす.にゅー.めそっど
0137デフォルトの名無しさん
NGNG"♥3d{key}に関しては◎02d{value}です"
とか。
激しく打ちづらかったけど。
0138デフォルトの名無しさん
NGNGこんなお遊びにおいてさえ、やっぱしendは邪魔だなぁ…w
0139デフォルトの名無しさん
NGNGシングルバイトの是非はともかく
「記号が多く使えるから良い」というのは幻想のように感じる。
下手に記号を使っても混乱するだけ。
それはPerl譲りの特殊変数($~とか)ですでに実証済みだろ。
0140デフォルトの名無しさん
NGNG増やすんじゃなかったっけ
0141デフォルトの名無しさん
NGNGだな。やっぱマクロが欲しいな。
0142デフォルトの名無しさん
NGNGclass << self; alias にゅー new; end
define_method(:initialize) {@ふが = 'fuga'}
define_method(:めそっど) {[$ほげ, @ふが]}
}
$ほげ = 'hoge'
p くらす.にゅー.めそっど
0143デフォルトの名無しさん
NGNG#define で "."
#define に "."
#define を "."
#define の "."
#define して "."
p クラス の インスタンスを生成 して 処理する
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNGttp://jp.rubyist.net/magazine/?0002-WEBrickProxy
で作ったプロキシサーバ、しばらく使ってるとどんどん重くなって逝きます。
kill -INT して再起動すると復活。
こういうものなのでしょうか。
0146デフォルトの名無しさん
NGNG#if 0
eval `cpp #{__FILE__} 2>/dev/null`
$__PREPROCESS__ = true
#endif
#define HOGE "hoge"
unless $__PREPROCESS__
puts HOGE
end
0147デフォルトの名無しさん
NGNG可能だとは思うが、難しそう
0148デフォルトの名無しさん
NGNGCでいうところの
void func(char *p){ *p = 'c'; }
char c = 0;
func(&c)
printf("%c\n", c);
という処理を行いたいのですが、Rubyの場合どのようにして、
関数引数に、ポインタ/参照 渡しするのでしょうか?
0149デフォルトの名無しさん
NGNGその意味では、rubyは常に参照わたし。
でもそのへんわかってないなら、基本をわかってない可能性高い。
「破壊的メソッド」あたりを調べれ
0150デフォルトの名無しさん
NGNGdef hoge(obj); p obj.id; end
o=Object.new
p o.id # => -605356234
hoge(o) # => -605356234
0151148
NGNGすみません、やはりRubyの基本概念が判ってなかったようです。
Rubyの場合は、他の言語でいう「値の入れ物」的な変数とは違い、すべてオブジェクトの参照になるみたいですね。。
様はこういう事ですよね?
def func(r)
r.replace("c")
end
c = ""
func(c)
print(c,"\n")
0152デフォルトの名無しさん
NGNGそうなんだけど、ただ、
Ruby で引数に渡したオブジェクトを操作するって普通はやんない気がする。
根本的にロジック見直した方が良い悪寒。
0153デフォルトの名無しさん
NGNGですな。オブジェクトの状態を変えるのであれば、
そのオブジェクトが属するクラスにメソッドを定義するのが普通でしょう。
0154デフォルトの名無しさん
NGNGhogeの部分を変数で指定する事はできますか?
0155デフォルトの名無しさん
NGNG148じゃないけど、148と同じようなことを悩んでた。
>Ruby で引数に渡したオブジェクトを操作するって普通はやんない気がする。
わかりやすい。
>オブジェクトの状態を変えるのであれば、
>そのオブジェクトが属するクラスにメソッドを定義するのが普通でしょう。
なるほど。この言葉をチュートリアルにでものせて欲しい。
って、チュートリアルないからリファレンスか。
0156デフォルトの名無しさん
NGNG=> "hoge"
irb(main):002:0> /#{s}/
=> /hoge/
0157154
NGNGありがとうございます!
勉強になりますた!
0158デフォルトの名無しさん
NGNG当然といえば、当然だなぁ。
俺、今まで Regexp.escape とか使ってた記憶が。
0159デフォルトの名無しさん
NGNGhttp://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-list/38183?38059-38391
のなかにある、38183(及び38206,38233など)からはじまるスレッドには、ruby
における変数とは何か、それをどのように説明するのが適切か、の熱いバトルが
交わされています。われわれ初心者、中級者にも参考になりますよ。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGそうですか?
>Rubyの場合は、他の言語でいう「値の入れ物」的な変数とは違い、すべてオブジ
>ェクトの参照になるみたいですね。。
まさに変数入れ物説と変数ラベル説の論争が、matzさんを交えて行われたのです
がね。無関係としか読めないようではまことに残念です。
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNG0166165
NGNGRubyで、書かれてたらどんなんなるのかと・・・
ちょっとした好奇心です。
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNGParlやらで書かれた検索エンジンじゃね?
0169165
NGNGすみません
namazuだ。
「u」が抜けてた
0170デフォルトの名無しさん
NGNGんじゃそれで潜ってこい
http://www.geocities.co.jp/SiliconValley/1816/
0171165
NGNG0172デフォルトの名無しさん
NGNGそれがあまりに拡張しやすくてオリジナルを追い抜いてしまった
というようなプロジェクトってあるの?
0173デフォルトの名無しさん
NGNGそれがあまりに動作が速く組み込みやすくてオリジナルを追い抜いてしまった
というようなプロジェクトなら知ってる
0174デフォルトの名無しさん
NGNGmigemo は確か最初 perl で書かれてたな。
どういう経緯で ruby で書き換えられたのか知らないけど。
0175デフォルトの名無しさん
NGNG> を扱っているうちにプログラムがごちゃごちゃして修正が不可能になったため、
> あるとき Rubyで書き直すことにした。
横着プログラミング 第2回: Migemo: 日本語のインクリメンタル検索
ttp://namazu.org/~satoru/unimag/2/
0176デフォルトの名無しさん
NGNGもとはなにを!? VBか?
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGprint test #=> abc\def
p test #=> "abc\\def"
pで表示したときに、バックスラッシュが\\で表されているのに驚いたのですが
こういうものなのですか?
なんでこうなるんでしょうか?
0180デフォルトの名無しさん
NGNGエスケープして表示される。
0181デフォルトの名無しさん
NGNGRubyの内部で、バックスラッシュが\\で扱われるってことではないんですね。
0182デフォルトの名無しさん
NGNGRDE以外に、どういうものがあるんでしょうか?
0183デフォルトの名無しさん
NGNGどぞー
(´・ω・`)つttp://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Tools+for+Ruby
0184182
NGNGレスありがとうございます。
沢山あったんですね。
皆さんはどれをお使いなのでしょうか?
0185デフォルトの名無しさん
NGNG……漏れもトリ頭ですた orz
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGもっとスマートな方法があれば教えて頂けませんか?
count = 5
(1..count).each{ print(" ") }
print("hoge\n")
0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGprint("hoge\n")
Stringに数を掛けると繰り返し。
0191デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGちなみに、 count 回繰り返す、は Range#each より count.times { ... } がよさげ。
0194188
NGNGなるほど!そういうメソッドもあるんですね。
練習がてら、下の様なファイル列挙コードを作っていたのですが
もっと洗練されたコードに出来ますでしょうか?
def enum_files(path, layer = 0)
Dir.foreach(path){|f|
if f != "." && f != ".."
print(" " * layer)
if File.directory?(path + "/" + f)
print("[dir] ", f, "\n")
enum_files(path + "/" + f, layer + 1)
else
print("[file] ", f, "\n")
end
end
}
end
enum_files("c:/")
0195デフォルトの名無しさん
NGNGまぁいいんじゃないか
メソッド名や変数名がちょっとこなれてない感じするけど
漏れは
enum_files -> puts_files
layer -> level
にしたほうが好みだ
0196188
NGNGとりあえず、問題なさそうなのでよかったです。
puts_files もいいですね。
確かにlayerよりlevelですね。
それにしてもRubyのプログラミングは楽しいですね。
噛めば噛むほど味が出てくるという感じで。
最初Perlを覚えようとしていたんですが、Rubyやって正解でした。
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNGお前いい加減にしろよ。
ネタなら寒すぎるし、ネタじゃないなら何故レス無いかよく考えろ。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNGそれ以前にまだパラレルポートって載ってたっけ?
漏れの自宅マシンはもうそろそろ古株なのでシリアルもパラレルもまだあるが……
0203デフォルトの名無しさん
NGNGどこかweb上にあるでしょうか。日本語でなければ英語でもよいです。
0204デフォルトの名無しさん
NGNGrubyじゃできないのね。
了解です。
0205デフォルトの名無しさん
NGNG/dev/port
>>203
http://www.summa.jp/tutorial/index.html
0206デフォルトの名無しさん
NGNG英語が苦にならなければ
http://www.rubycentral.com/book/
がおすすめです。(邦訳あり)
最初の数章は良い入門書になります。
また、
Built-in Classes and Methods
という章は秀逸なリファレンスです。
chm形式のファイルがダウンロードができたんだが、場所を失念した。
ご存知の方、help.
まあ、2版を手に入れたほうが良いかもしれないが、
入門としてはこれで十分だし、良書であることは間違いない。
0207203
NGNGどうもありがとうございました。
0208デフォルトの名無しさん
NGNGchmはProgramming Ruby--onlineにある。そこの リンクスから辿れる。
0209デフォルトの名無しさん
NGNGThanks. Good job.
0210デフォルトの名無しさん
NGNG0211ねた?
NGNGExerb
http://exerb.sourceforge.jp/
0212デフォルトの名無しさん
NGNGありがとう
Microsoft .NET Framework 1.0が必要らしいのでいまだうんどーろしてます
ごめんねはじめてるびーしたからごめんね
0213デフォルトの名無しさん
NGNGMicrosoft .NET Framework 1.1じゃなくて?
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGApolloを使うという手もあるぞ
あっちなら.NETFrameworkも必要ないはずだし
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNGphi.so(Apolloの実体)込みでexerbでexeは作れるけど、
Apollo使うってことは結局Rubyをインストールするのと
同じなのであんまり意味無いと思う。
0218デフォルトの名無しさん
NGNGハッシュのキーにシンボルを使うと実行効率で有利ってのは
納得できるんですが、attr_readerとかにシンボルを渡すのは
実行効率からなの? だいたい1回しか実行されないだろうし、
文字列でもそんな変わんないんじゃないかと思うのですが…。
0219デフォルトの名無しさん
NGNG初めて知った。
0220デフォルトの名無しさん
NGNG個人的には、慣れてるし他人のスクリプト見ても Symbol 使ってることが多いから、
Symbol を使い続けるだろうけど。
むしろハッシュのキーにシンボルを利用するのは
相当差が出るケースくらいで、普通に文字列使ってるなあ。
0221デフォルトの名無しさん
NGNGあれ? Apollo で書かれたスクリプトを exerb で固めて使うとき
Apollo のインストールって必要だったっけ?
>>218
「メソッド名には Symbol を使う」という原則を、どこかで聞いた希ガス。
理由はよく分からない。正直、どっち使っても良いと思う。
0222デフォルトの名無しさん
NGNGSmalltalk のセレクタ(メソッド名)の実体はシンボルで、メソッド本体
(メソッドオブジェクト)へのアクセスや、その動的起動時のキーにシンボル
を使ったりもするけど、それとは関係あるのかな?
0223デフォルトの名無しさん
NGNGRubyでのバイナリ入出力の仕方が判りません。。
Cでいうところの、下の様な出力がしたいのですが。
------- C -------
FILE *fp = fopen("data", "wb");
int i = 128;
fwrite(&i, 1, sizeof(i), fp);
fclose(fp);
一応Rubyで下の様なコードを試してみたのですが
テキストに変換されて保存されてしまいます。
----- Ruby ------
n = 128
f = File.open("test.txt", "wb")
f.write(n)
f.close()
0224デフォルトの名無しさん
NGNG0225223
NGNGなるほど、pack/unpack というのがあるんですね。
構造体とかもこれでイケそうですね。
どうもありがとうございました。
0226デフォルトの名無しさん
NGNGいらないが、固めるときにちょっと面倒。
phi.soとphi.rbを一緒に詰め込んであげないといけないとか。
>>223
RubyのIO#writeはto_sされた結果が出力される。
Cのコードを見る限り128というコードを持った文字が出力されるのと同義なので、
File.open("test.txt", "wb") { |f| f.write(128.chr) }
でいいんじゃないだろうか。
というか中途半端だけどリファレンス見ろ。
0227デフォルトの名無しさん
NGNGhttp://members.lycos.co.uk/bakashin2/maripe0054.gif
http://members.lycos.co.uk/bakashin2/maripe0055.gif
http://members.lycos.co.uk/bakashin2/maripe0056.gif
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNGWi(ry
0230デフォルトの名無しさん
NGNG入力したキーを記録するプログラムを
作成したのですが,なぜか大文字のA,D,Bだけが
入力できません(キーを押しても何も表示されません).
Shiftを押さずに押すと,普通に小文字のa,d,bが
打てますので,機械的な問題ではありません.
他の大文字は入力することができます.
なんででしょう???
0231デフォルトの名無しさん
NGNGコードを見せれ。
0232デフォルトの名無しさん
NGNGぐぐってみたけどいまいちよくわからん
分かりやすいサンプルがあるとうれしい
こーかくとこういうhtmlができるとか
0233デフォルトの名無しさん
NGNGテストコードに埋め込む方がいいと主張してみる。
テスト==仕様みたいなもんだし、動的にメソッド定義する場合は
ソースのどこにドキュメント書いていいかわからないし。
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNGmatzがそれやってるって自白してたね。
0236デフォルトの名無しさん
NGNG>>232
http://www2.pos.to/~tosh/ruby/rdtool/ja/whats.html
http://www.rubyist.net/~rubikitch/RDP.cgi?cmd=view;name=RD
0237デフォルトの名無しさん
NGNGC言語で作ったものを移植してみましたつもりでしたが動きません。
どこがおかしいのでしょうか?
0238デフォルトの名無しさん
NGNGreturn の後にあるから)とか、入力してくださいというわりに gets とかじゃ
なくて ARGV から取ってるとかいうあたりがちょっと変なあたりかな。
また、 ARGV は文字列なので(gets等で読み取ったデータも文字列)、
get_total に渡す時は to_i しないといけないんじゃないか。
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNGありがとうございます。
さっそく修正にかかります。
>>239
すいません。阿呆で。
0241デフォルトの名無しさん
NGNGというわけで、ほれ
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RDoc%B3%D0%A4%A8%BD%F1%A4%AD
0242sage
NGNG0243デフォルトの名無しさん
NGNGこういう閉鎖的な奴がいるからrubyって普及しねぇんだろうなぁとおもた。
0244デフォルトの名無しさん
NGNG全然違う。
StringIOは文字列にIO風のメソッドを追加してIOっぽく使えるようにしたもの。
うまく使うととても便利。
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG「Ruby レシピブック 268の技」とか?
0250デフォルトの名無しさん
NGNGそういうのは普通コミュニティがコードを持ち寄ってサイトを作るものなんだけど
あいにくRubyコミュニティは普通じゃないので。
0251デフォルトの名無しさん
NGNG「逆引きRuby」とかは?
ttp://www.namaraii.com/rubytips/
0252デフォルトの名無しさん
NGNG待機以外の各行動は下一桁1→8を繰り返すというものなのですが。
1→8、でピタッと止めるようにしたいのですが。
どうすればよいのでしょうか_| ̄|○
0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG今はつながるけど、ちと重い
0255デフォルトの名無しさん
NGNGその16進を表示したいのですがどっかにサンプル無いでしょうか
ファイル開いて一バイトずつ読むのは出来たんですけど16進に戻せません
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGたとえばですね
f = open("Bank1.dbf","rb")
f.pos = 0
s = f.read(1)
puts sprintf("%x", s)
こうやってもエラーが出るです
エラーが出るのはsが文字として扱われてるからなんでしょうけど
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG下一桁ってどういうこと?
ちらっと見ただけだが、transgraphicのform_id_sは
form_id_s = "%.3d" % form_id
でできないか?
0261デフォルトの名無しさん
NGNGこれをもっと直接的にかけないでしょうか?
エスケープしないで直接目的とする漢字(亜、瑤)を使って
表現したいんですが。
0262デフォルトの名無しさん
NGNG/[亜-瑤]/e
じゃだめなん?
0263デフォルトの名無しさん
NGNGinvalid regular expression: /[\033$B0!\033(B-\033$Bt$\033(B]/
って言われて駄目です
0264デフォルトの名無しさん
NGNGんじゃー、スクリプトの最初の行に
#!/usr/local/bin/ruby -Ke
と書いておくとか。うちの環境じゃそんなの出ないな。こんな感じ。
$ cat a.rb
a = /[亜-瑤]/e
$ ruby -Ks a.rb
$ ruby -Ke a.rb
$ ruby -Kn a.rb
$ ruby -Ku a.rb
a.rb:1: unterminated string meets end of file
a.rb:1: syntax error
$ ruby -v
ruby 1.8.2 (2004-07-29) [i386-freebsd4]
0265264
NGNGそれ、ISO-2022-JPとかでスクリプト書いてるよね。
eucかshift jisのどっちかで書いてみて。
0266デフォルトの名無しさん
NGNGこちらこそごめん。
自分でもJISで書いてるのに気づかなかった。
eucにして実行したらうまくいっちゃいました、思い通りに動いてます。
0267デフォルトの名無しさん
NGNG>>260
しまった、こっち無いと分からないですよね・・・。
気が利かなくてすいませぬ。
0268デフォルトの名無しさん
NGNGにあったリンク先をを見てみたのですがRDocの書き方がよくわかりません。
このリンク先の説明のパラグラフは未稿なのでしょうか?
メソッドの説明をjavadocに習って @param, @return, @throws は書きたいのですが、
RDocにはそれに該当するタグはないのでしょうか?
ないのであれば、どのように書くのがRuby界隈のコメントの書き方なのでしょうか?
0269デフォルトの名無しさん
NGNGが
"question \\"
って表示されるんだから、
p 'question #{a}'
も、
"question \#{a}"
って表示されてもいい気がするのに、
"question #{a}"
って表示されるんですが、これっておかしくないですか??
というのも、"question #{a}"って、#{a}が展開されるから、別の文字列をあらわしてると思います。
0270デフォルトの名無しさん
NGNGb = a
b = 0
ってすると、aとbは別のもの(0,1)を指してしまいますよね。
3行目でbを破壊的(?)に0にするには、どうすればいいでしょうか?
つまり、aもbも同じobject_idの0を指すようにしたいです。
0271デフォルトの名無しさん
NGNGeval したら元に戻る文字列が欲しいって話なら、String#dump をどうぞ。
p の出力(String#inspectの値)を String#dump と同じにして欲しいって話なら、
見て分かるから現状でいいんじゃね? と思う。別にどっちでも困らないけど。
0272デフォルトの名無しさん
NGNG基本的に inspect した文字列を eval したら元に戻る、
というふうなしきたりになってると思い込んでたんですが、
そういうことでもないんですね。
0273デフォルトの名無しさん
NGNGinspectっていうメソッドを知りませんでした。
inspectで検索すると、るびまにも同じような話がのってました。
pって#だけエスケープしないんですね。
それならそうと、解説書もそう注意書きしてくれればいいのに、
なんかevalしたら元に戻るような感じで書いてあるから、分かりにくい。
0274デフォルトの名無しさん
NGNGできない。
0275デフォルトの名無しさん
NGNGそういう時は Array を使って
a = ['before']
b = a
b[0] = 'after'
p a[0] #=> 'after'
なんて手が使える。
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNGそっちの方がやりたいことが明確になるからいいかも。
class MyVariable
def initialize(v)
@var = v
end
attr_accessor :var
end
a = MyVariable.new('before')
b = a
b.var = 'after'
p a.var #=> 'after'
0278デフォルトの名無しさん
NGNG$ ruby19 -ve 'p %q[question #{a}]'
ruby 1.9.0 (2004-12-15) [i686-linux]
"question \#{a}"
$ ruby18 -ve 'p %q[question #{a}]'
ruby 1.8.2 (2004-12-15) [i686-linux]
"question \#{a}"
0279デフォルトの名無しさん
NGNG呼び出すと引数のsize,filenameに値を勝手に入れてくれるメソッドを使いたいのですが
size,filenameをどうやって取得したらいいかわかりません
現状はsize,filenameに適当に初期値当てはめてます
全然だめですが・・・
size=0
filename=""
returncode= READ(size:long , filename:string)
returncodeは正しくでてるんで実行はされているようです。
どうやったら取得できるんでしょう?
0280デフォルトの名無しさん
NGNGwin32ole使って、何のコンポーネントを使ってるのかも書いとくれ。
でないと話が見えん。
ファイルサイズならRuby標準のFile::Statでも取れるだろうし……
てか、ファイル名が分からないのに何を読もうとしてるんだ、そのREADメソッドは。
0281デフォルトの名無しさん
NGNG使ってるコンポーネントはJVDTLab.JVLink です。
仕様書は↓
http://www.jra-van.ne.jp/datalab/development/sdk/JV-Link211.pdf
今つまずいているのはP.13とP.20の以下のメソッドです。
Long JVOpen( String 型dataspec , String 型fromtime , Long 型option , Long 型
. readcount , Long 型downloadcount , String 型lastfiletimestamp );
Long JVRead( String 型buff , Long 型size , String 型filename )
P.13のJVOpenというメソッドでデータの取得を行った後にJVReadでデータを読みだすんですが
JVOpenは実行できるんですが(JVOpenでセットされるプロパティが変化している、エラーもなし)、
readcount,downloadcount,・・・など参照渡しになるとぜんぜんだめです。
WIN32OLE.ARGV[hoge]で参照できるとおもったんですけどできませんでした
0282デフォルトの名無しさん
NGNGついでに
class MyVariable
include Comparable
def =(v)
@var = v
end
def <=>(v)
@var <=> v
end
def to_s
@var.to_s
end
end
ってしておけばほとんどの場面でMyVariable#varを使わなくて済むかな。
0283デフォルトの名無しさん
NGNGだからなんなんだ?
0284デフォルトの名無しさん
NGNGうーむ、潮騒書いてもらってスマンのだがよーわからん。
ただ、ドキュメント読んでると、JVRead()は内部でバッファを差し替えるようなことを
やっているようなので、その辺でこけているのだろうか。
JVGets()メソッドでやってみたらどうだろう? うまくいくか分からんけど。
0285デフォルトの名無しさん
NGNG1.8.2以降は、p メソッドで#もエスケープされるってことか。
0286270
NGNGどうもありがとうございます。
結局、無理なんですね。間接的にしか無理なようですね。
Objectクラスにメソッド追加して、破壊的代入メソッドなんてつくれないですか?
ほんとに破壊的は無理なようなので(メモリの関係??)、一見、破壊的なメソッドとして
a = 1
b = a
としたあと、bの指してる1を2に変更すると、今まで1を指してた変数は全て新しい2を指すようになるメソッドとか。。
(これなら、あるオブジェクトを指してる変数を全部得られればいいですよね。そんなメソッドありますか?)
多分、こういうことも考えて無理と言われてるような気もするのですが、どうでしょうか?
0287デフォルトの名無しさん
NGNG変数はオブジェクトではなく、それを指すラベルでしかない。
例えば、一太郎(1)がイチ(a)というあだ名をつけられたとする。
他の人が一太郎に対してター(b)というあだ名を更につけたが、
それを止めて太一(0)に対してターというあだ名を付け直したとする。
イチ(a)というあだ名は依然として一太郎(1)につけられたものであって、
いつの間にか太一(0)のあだ名にはならない。
こういう世界。
0288デフォルトの名無しさん
NGNGFixnum(とnil, true, false)は実際には他のオブジェクトとは違って例外的に即値だから、
破壊的なメソッドは(今のところ)実装できんのよ。こいつらだけはCでいう入れ物としての
変数に納まってるというイメージなの。
もちろん、考え方としては>>287のように考えるのがまっとうです。
普段は内部の実装まで気にしてもしょうがないっす。
0289286
NGNGそれで、Fixnumが即値であることまでが問題になってきた。
でも、Fixnumに破壊的メソッドが今のところ実装できないっていうのは勉強になりました。
ありがとうございました。
0290デフォルトの名無しさん
NGNGUNIXではLF
WindowsではCRLF
MacではCR
ですが、全部、\nで扱えますよね。
じゃあ、\rってどういう時につかわれるんでしょうか?
あと、Windowsの環境で、LFという改行コードが使われると、\nでは扱えないのでしょうか?
さらに、Unix環境で、CRLFという改行コードがあるファイルのオブジェクトにeachとか使うと、
ブロックパラメータに渡される行の最後には、\rが入るってことでしょうか??
なんかわけわからなくなってきました。
自分で確かめろって言われても、頭が痛くて、確かめれないです。
だれか、明快な説明お願いします。
0291デフォルトの名無しさん
NGNG\x0D
\x0A
に分けて使っとけ。
それが一番安全。
0292デフォルトの名無しさん
NGNGdef =(v)
これって出来るの?Ruby1.8.2でsyntax errorになったけど。
>>289
捕捉しておくと、ローカル変数への代入はそもそもメソッド呼出にはならないです。
self.foo = bar と明示的に指定しないとそのメソッドを呼び出せないため、
破壊的代入が出来た所で、結局、クラス変数使う方法と同じになります。
0293デフォルトの名無しさん
NGNG例えば、あるテキストファイルの中から空行を洗い出したい場合
改行がCR+LFだと、/^\n$/ではマッチしない。
こういう場合には/^(\n|\r\n)$/とする必要がある。
0294デフォルトの名無しさん
NGNGどうすればいいですか。
exec, system, `` ではいずれも、アプリケーションの終了を待たなくてはいけませんでした。
0295デフォルトの名無しさん
NGNGすればできるよ
start /?でヘルプが
0296デフォルトの名無しさん
NGNGFixnumが即値になっているのは実装上の都合もあるだろうけど、
即値じゃなきゃおかしいからでもあるでしょ。
破壊的に 1 を 2 にされてしまったら、それ以降、1という数字は存在しなくなって
2 になってしまうけど、それでもいいの?
0297デフォルトの名無しさん
NGNG294は Ruby の話だろ(system に start ... で渡せばいいってこと?)。
Win の Ruby は使ったことないからわからないが、 fork してその中で exec
するのが普通じゃないの?
以下 Unix の話だが。
system はシェルなり何なりを起動して実行する。終了まで待つ。``も同様だ
が出力結果が文字列で帰ってくる。
一方、execはちょっと違って、自分自身がそのコマンドに変身する。だから終
了するとプログラム自体が終了する。
そこで fork を使って子プロセスをつくり、子プロセスの方で exec するのが普通。
例はこんな感じ。
pid = fork { exec(cmd) }
fork が呼ばれると子プロセスはブロック内を実行するので、cmdが実行される
(cmdが終了したら子プロセスが終了する)。一方、親プロセスの方はブロック
を実行せずに pid に子プロセスのidが確保される。これは何に使うかという
と、親プロセスの方で子プロセスの終了を待ちたいときに使われる
(Process.wait のあたりを参照)。
0298デフォルトの名無しさん
NGNGa = b = "abc"
a.send(:initialize_copy, "defg")
p a #=> "defg"
p b #=> "defg"
0299デフォルトの名無しさん
NGNGWindowsにforkはない。
0300デフォルトの名無しさん
NGNGfork/execという概念はUNIX独自で、Windows世界のプロセスはそういうものではない。
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNGあ、すごい、できてる。
しかもidも同じだし。
でも、initialize_copyっていうのがよくわからない。
dupとかcloneの初めに呼び出されるらしいけど。。
なんだこれ
0303デフォルトの名無しさん
NGNGa = b = "abc"
a.replace "defg"
p a #=> "defg"
p b #=> "defg"
これができるのはStringだからであってFixnumでは無理。本題から外れてるぞ。
0304デフォルトの名無しさん
NGNGString#replace持ち出して本題を外しているのはお前だ。w
0305デフォルトの名無しさん
NGNGsend(:initialize_copy, ...) だって Fixnum では無理でしょ。
ということが言いたいのでは。
0307デフォルトの名無しさん
NGNGhttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%C1%C8%A4%DF%B9%FE%A4%DF%B4%D8%BF%F4#spawn
spawn(cmd, [arg, ...]) ((<ruby 1.9 feature>))
子プロセスの終了を待ち合わせないことを除けば、system と同じです。
生成した子プロセスのプロセスIDを返します。
0308デフォルトの名無しさん
NGNG(128bit暗号化ページからデータ拾って画面に表示するものでつ)
があるとして、それをWideStudioとGCC+をベースに展開するだけで使える
でしょうか?
ライブラリとか適合しないかなとか、GUIがダメかもなとか思ってまつが
Linux導入とか互換用の部品を書くとかの時間を割くのも難しい状態なんで、
まったく出来ないというレヴェルだったらやめとこうと思ってまつ。
もちろんRubyすら知りませんが、技術的にはどこを直せば動くのか
わかる人、教えてくだちい。
0309デフォルトの名無しさん
NGNGなんかかなり危険なことらしいよ。
ttp://jp.rubyist.net/magazine/?0002-RubyConf2004Report
#becomeのところ
でも、これもたぶん仕組み上Fixnumでは無理。
0310デフォルトの名無しさん
NGNGむしろ >>270 のようなことができると恐いんだけど。
a には再代入してない訳で。
まぁ、>>287 の言う通りなんだけど。
0311デフォルトの名無しさん
NGNG結局、rubyのセマンティクスは >>287みたいになってるのと、
FixNumは即値なので、原理的にはそういうことはできないわけだけど、
Arrayなり>>282が書いてるような独自クラスなりでコンテナをさしこむ
のがスタイルとしてもスマートだと思うんだけど。
そもそも、そんなにいくつもの変数で値を共有したいことある?
もしそういう設計なら、それはデータソース(この場合1という値)が二重化されてて嫌なことになってない?
0312デフォルトの名無しさん
NGNGttp://www.geocities.jp/rubikitch/
0314デフォルトの名無しさん
NGNGruby 1.8.1(2004-05-06)
の環境で、Webrickを動かしているのですが、微妙なエラーが出て困っています。
require 'ming/ming'をしなければ問題はないんですが...
回避策はあるでしょうか?
/cygdrive/c/home$ ruby test.rb
[2004-12-18 10:39:21] INFO WEBrick 1.3.1
[2004-12-18 10:39:21] INFO ruby 1.8.1 (2004-05-06) [i386-cygwin]
[2004-12-18 10:39:21] INFO WEBrick::HTTPServer#start: pid=3176 port=80
C:\home\cygwin\usr\local\bin\ruby.exe (3016): *** unable to remap C:\home\cygwin
\bin\cygungif-4.dll to same address as parent(0x8C20000) != 0x8D10000
5 [main] ruby 3176 fork_parent: child 3016 died waiting for dll loading
---------------test.rb-------------------
require 'webrick'
require 'ming/ming'
module WEBrick::HTTPServlet
FileHandler.add_handler("rb", CGIHandler)
end
httpd = WEBrick::HTTPServer.new(
:DocumentRoot => '.'
)
trap("INT"){ httpd.shutdown }
httpd.start
------------------------------------------
0315デフォルトの名無しさん
NGNGrebaseallを実行。
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNGtext.gsub!(/^$/,"")
としてもうまくいきません。どうしたらいいでしょうか??
0318317
NGNG$は改行コードの手前までですね。
text.gsub!(/\n/,"")
でいけました。
0319デフォルトの名無しさん
NGNG誰か、簡単に説明してください。
これが使えるとどう便利なんでしょうか?
0320デフォルトの名無しさん
NGNG例えばコールバック処理を書くときに使える。
GUI のボタンを押したら中のテキストを書き換えるという処理を書くとして、
bottun = Button.new('before')
bottun.onclick = Proc.new{|b| b.text = 'after' }
みたいに書ける。
0321デフォルトの名無しさん
NGNGこの場合のButtonクラスのonclick=
って、どういうコードが書いてあるんでしょうか?
たしかに、Procは、なんか強力っぽいけど、まだ??って感じです。
0322321
NGNG0323デフォルトの名無しさん
NGNG0324321
NGNGどういう情報を保持していて、
その情報にどういう変更を加えたり、
どういう値を返してくれるかをオブジェクト的に簡単に教えてもらえませんか?
例えば、Stringは文字列をもっていて、
この文字列を切ったり、置換したりするメソッドを持っていて、
その文字列の何番目は、どういう文字コードを持ってるか返してくれる。 など。
0325デフォルトの名無しさん
NGNGあくまで擬似コードだけど。
class Button
attr_accessor :onclick, :text
def _some_process_on_click_
foo
@onclick.call(self)
bar
end
end
onclick= はインスタンス変数 @onclick への代入。
Proc#call で Proc の処理を実行できる。
Button オブジェクトはボタンが押されたら見た目を変えたり
色々するわけだけど(_some_process_on_click_ ね)、
その中で @onclick.call(self) とかしておけば、
自分をブロック引数にして @onclick の Proc の処理を実行できる。
つまるところ、インスタンスごとに振る舞いを変えたいという時に使う。
C なら関数ポインタを使うだろうし、
Java ならサブクラスや strategy パターンを使うだろうね。
0326デフォルトの名無しさん
NGNG手続きをオブジェクト化したもの。
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Proc
0327デフォルトの名無しさん
NGNGa.call(1) # => 2
0328321
NGNG>つまるところ、インスタンスごとに振る舞いを変えたいという時に使う。
なるほど。
ほんとだ。そう考えると、理解しやすいかも。
うまく使えるようになりそうです。
>>326
いや、その説明、むずすぎです(^^;)
ありがとうございました。
0329デフォルトの名無しさん
NGNG327 のように Proc 単体で使うこともあるだろうし
色々使い道はあると思うよ。
あんまし使いすぎると分りにくくなるけど。
0330デフォルトの名無しさん
NGNG処理を定義してあるところに、引数を渡すって感じでわかりやすいのに、
Procがでてくると
引数が先にあって、処理を渡すって感じがする。
ややこしい。。
0331デフォルトの名無しさん
NGNG自己レス。
そんなことないか。。
処理を入れておくオブジェクトだし。
def foo
pr = Proc.new
pr.call(1,2,3)
end
foo {|args| p args }
多分、この例がわかりにくいんだと思う。
これって、{|args| p args } を、fooの引数にしてるって感じですよね。
それで、それがProc.newの引数になってるって感じでいいですよね。
これだと、Proc.newっていうのに、ブロックを渡して、その処理を
飽くまで、Procの例は、Proc.new{}っていうのを100回くらい強調して、その後に、
上のような例をもってきてもらうとわかりやすいかも。
0332321
NGNG結局、
Procって、手続きをオブジェクト化したもので、普通の関数のようにも使えると。
さらに、あるオブジェクトのインスタンス変数として、Procオブジェクトを持たせると、オブジェクトごとに異なった働きをさせることができる。
この、2つ目って、オブジェクトにモジュール追加(extend)でも同じ(ような?)ことができますよね。
さらに、Tkでは、Procによるアプローチで、visualurubyでは、モジュールのextendによるアプローチっぽいので
結局同じことができて、特にどっちかに利点あるていう話ではないという気もするんですが、どうでしょうか?
もしこの二つに、長所、短所、があるなら、教えてください。(些細なことでもいいですので)
お願いします。
0333321
NGNGつまり、Procがなくても、困ることも起きないし、
Procがあっても、Rubyの目指す(?)省力化にも役立ってない気がするのです。
0334デフォルトの名無しさん
NGNGclass Proc
def initialize(&block)
@proc = block
end
def call(*args)
@proc.call(*args)
end
def [](*args)
call(*args)
end
end
で理解できるかな。
イテレータのブロックも実態は同じものだけど、振舞がちょっと違うので注意。
0335デフォルトの名無しさん
NGNG遅くて使ってらんね
やめた
0336デフォルトの名無しさん
NGNGhttp://www1.tf.chiba-u.jp/~shin/tutorial/index.rb?Chapter=10
は読んだかい?
0337321
NGNG考えて(読んで)みます。ありがとうございます。
あぁ、明日の試験(Ruby関係なし(泣))やばいので
ちょっと、Procのことは、また明日考えさせてもらいます。すみません。
他に、アドバイスあったらよろしくお願いします。
0338デフォルトの名無しさん
NGNG妖怪みたいな言語
0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNGでも本当はそれはうまいやり方じゃないんだけど。
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343試験もなんにもない
NGNG┏┓ ┏━━┓ /.,;彡;, ..,;,. ゙ミヽ、 ┏━━┓ ┏┓ ┏━┓
┏┛┗┓┃┏┓┃ /ソノ;彡;彡;彡;彡'゙ヽ;゙i;,ヽ ┃┏┓┃┏┛┗┓┃ ┃
┗┓┏┛┃┗┛┃┏━━━{i;゙|il|l!ノ彡';彡;'','⌒ ゙!l!l}i゙!━┓┃┃┃┃┃┏┓┃┃ ┃
┏┛┗┓┃┏┓┃┃ {ノl!|!;ソ;ノリノ'″lRubyノ;li|l!1 ┃┃┃┃┃┗┛┃┃┃ ┃
┗┓┏┛┗┛┃┃┗━━━'{i|{il{li゙!ソ;' ` ' `"″!l}!i|!━┛┃┃┃┃ ┃┃┗━┛
┃┃ ┃┃ '{;l!|{i!リ'' _ノ ;i|!レ' ┃┗┛┃ ┏┛┃┏━┓
┗┛ ┗┛ '゙i!|!;'、,_´__,ノ '″ ┗━━┛ ┗━┛┗━┛
0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNGっていうじゃない
残念!
鬼太郎の母親は死んじゃいましたから
ユウレイはお化けじゃないのかよ斬り
0346デフォルトの名無しさん
NGNG実引数と仮引数が同じ名前になっているが、実引数と仮引数はメモリ上で別々に確保されるので、メソッド側に値を変更されることが無い。
つまり、実引数と仮引数は、名前が重複していても別のものである。
そのため、同じ名前を使っても、実引数はきちんと表示される。
0347デフォルトの名無しさん
NGNG最後の一行だけ意味がわからないからそこだけは何ともいえない。
メソッド側で値を変更されることはあり得るよ。
def foo(s)
s.gsub!(/baka/, 'aho')
end
a = 'baka baka'
puts a #=> baka baka
foo(a)
puts a #=> aho aho
Cの変数のイメージだとRubyの変数は説明がつかない。
Rubyの変数はポインタ型の変数だと思っておいた方がまだまし。
0348デフォルトの名無しさん
NGNGRubyのメソッド呼び出しは値渡しなので、
実引数の値はメソッド呼び出しの前後で必ず同一のオブジェクトであって、
異なる値に変更することはできない。
まあ、なにをもって「値を変更する」と呼ぶのかが問題ではあるけども。
値の状態なら変更可能ではある。
0349デフォルトの名無しさん
NGNG意味不明。こいつぼけ
0350デフォルトの名無しさん
NGNGdef func()
print("func()\n")
end
def func(a)
print("func(a)\n")
end
0351デフォルトの名無しさん
NGNGdef func(a=false)
if a then
print("func(a)\n")
else
print("func()\n")
end
end
0352デフォルトの名無しさん
NGNGなるほど。わかりました。
でも、逆に言えば引数が違う同名メソッドは定義出来ないという事ですよね?
0353デフォルトの名無しさん
NGNG変数は指してるとこ同じでも、変数は違うからいいんじゃない?
a = 'x'
def test1(a) p a; a = 'y'; p a end
def test2(a) p a; a << 'y'; p a end
test1(a)
p a
test2(a)
p a
むしろ
> Rubyのメソッド呼び出しは値渡しなので
のほうが謎だ……
0354デフォルトの名無しさん
NGNG標準ライブラリに普通に引数の違うメソッドがあるけど。
0355デフォルトの名無しさん
NGNG確かに。
でも、それはどの様に実現しているのでしょうか?
0356デフォルトの名無しさん
NGNG例えばVisitorパャ^ーンとかどうb竄フかな?とbゥ思ったり。
0357デフォルトの名無しさん
NGNGその中で最大の数字のファイル名を取得するにはどうしたらいいのでしょうか?
1 2 3 .... 1092 1093 1097
とあった場合1097を得たいのですが
0358デフォルトの名無しさん
NGNGコンパイル時に型を特定できないからC++のような関数オーバーロードはない
が、引数を *args のような形で受けて、args.sizeや中身のオブジェクトの種類で
処理を分岐させれば宵。
0359デフォルトの名無しさん
NGNGDir.chdir "そのディレクトリ"
Dir.glob("*").sort_by {|fname| fname.to_i}[-1]
0360デフォルトの名無しさん
NGNGありがと
難しく考えすぎてた、ファイル名全取得して配列入れて、みたいな
0361デフォルトの名無しさん
NGNG>コンパイル時に型を特定できないからC++のような関数オーバーロードはない
最初、引数の個数で判断出来ないかなと思ってたんですが
def func() end
def func(a=0) end
func()
確かにこんな場合特定出来ませんね…
言われた通り、デフォルト引数を使ったり、args.sizeやオブジェクトの種類で分岐させようと思います。
答えて下さった方、ありがとうございました。
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNGstrongtyping ってのが既存でありますが。
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNGおお、この様なライブラリでオーバーロードも可能なんですね。
色々ありますね。情報をどうもでした。
0366デフォルトの名無しさん
NGNGある括りから出る際に、必ず呼ばれる処理を記述する仕組みは ruby にはありますか?
0367デフォルトの名無しさん
NGNGhttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%C0%A9%B8%E6%B9%BD%C2%A4#begin
を参照。
0368デフォルトの名無しさん
NGNG>>348
Cとはちょっと違うんですね。
どうもありがとうございました。
>>349
Cの本に書いてあった文そのままなんだけど・・・
0369デフォルトの名無しさん
NGNG「こいつぼけ」はNGワードですから〜
0370デフォルトの名無しさん
NGNG他の本嫁
0371デフォルトの名無しさん
NGNGCの関数呼び出し時の変数は値渡し。
渡したメモリのアドレス(ポインタ)を使って何でもできるが。
でもRuby使うだけなら逆に半端なCの知識は邪魔かもという気はする。
オブジェクト指向「設計」に慣れりゃいいんだろうが。
ということで368や、もうちょっと頭にスペースあけてから再挑戦汁。
なんか勘違いしてるっぽいから。
0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNG本は知らんが、勘違いしてそうだという認識は共通のようだ、ということはわかった。
0375デフォルトの名無しさん
NGNG遅レスだけど、その話題はimmutableかどうかであって、
即値かどうかはやっぱり実装上の都合だよね。
たとえばBignumは即値じゃないけどimmutable。
そのことに思いをはせると、じゃなぜRubyでStringはimmutableでないのだろうか
とか、
そのくせRegexpはimmutableじゃねえか
とか、
そもそもimmutableであるべきかどうかを、どこでどうやって判断してるんだろうか
とか、
考えるとキリがないので、とりあえずお茶を飲みます。
0376デフォルトの名無しさん
NGNG> Fixnumが即値になっているのは実装上の都合もあるだろうけど、
> 即値じゃなきゃおかしいからでもあるでしょ。
この2行に対するレス、という理解でいい?
ここで「即値」と言ってる概念は、「immutable」と呼ぶべき物だ、と。
ところで、>>296 の後半2行の
「破壊的に 1 を 2 にされてしまったら、それ以降、1という数字は存在しなくなる」
は、即値や immutable とは別の、唯一性の話と考えていいんだろうか。
0377デフォルトの名無しさん
NGNG俺も気になってた。
どうやって判断してるの??
誰か、教えて。
0378デフォルトの名無しさん
NGNGそれ以外のオブジェクトはクラスの実装者の体調・心境の変化に依存
0379デフォルトの名無しさん
NGNG漏れも、「破壊的に 〜 数字は存在しなくなる」という論理には違和感を感じます。
Integer::new(1).id != Integer::new(1).id
な yet another Ruby もありえる (ありえた) と思うんですが。
0380デフォルトの名無しさん
NGNGその場合「リテラルの 1 が何を意味するか」という話にもなりそう。
……質問スレでする話題じゃないな。続きはRuby本スレで。
0381デフォルトの名無しさん
NGNG同じく
a = 1
b = 1
p a.object_id != b.object_id #=> true
が自然だと思う。
こうしないで、今のRubyみたいになってる利点って何?
実装上めんどうって理由でもいいよ。
0382デフォルトの名無しさん
NGNG0383デフォルトの名無しさん
NGNGその二つの 1 を別々のものとして扱えて嬉しいことってあるんだろうか。
どの 1 だろうと同じ 1 だと思うけど。
0384デフォルトの名無しさん
NGNGうれしいことはないけど、(現状で全然困ってないけど)
別の1の方がオブジェクト指向としては、自然な気がするんだけ。
(遅くなってしまうなら、別に現状でもかまわない。)
0385デフォルトの名無しさん
NGNG0386デフォルトの名無しさん
NGNGある 1 に特異メソッドを定義して云々、みたいのはできそう。
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNGObjective-Cは……Cocoaの場合、immutableなNSStringがあって、
そのサブクラスにmutableなのがあるんだったか。(実際はもう少しややこしいが)
C++(std::string)、Perl、Rubyはmutable。
個人的にはmutableな方が好き。誰も聞いてないな。スマヌ。
0389デフォルトの名無しさん
NGNGが、どうせシンタックスシュガーでも実装できる。
あんま意味ない考察だった。
0390デフォルトの名無しさん
NGNGという話題に近いものがあるのかなあ。
0391デフォルトの名無しさん
NGNGRuby や Perl みたいに、文字列操作ガンガンすることの多いスクリプト言語だと、
immutable だったらえらいことになりそう。
0392デフォルトの名無しさん
NGNG0393デフォルトの名無しさん
NGNGxxx は selfを返すのに xxx! は self を返さない場合がある
→xxx! はメソッドチェーンに使えない
→xxx の方を使うか。
という流れ。文字列に限らないけど。
0394デフォルトの名無しさん
NGNGくような破壊的操作はしない?
まあ、 Fixnum#++ と同じように、 << が存在しなくて += を使う、という考
え方もあるが……。
0395デフォルトの名無しさん
NGNG>始まり、英文字、アンダースコア('_')または数字からなります。
(リファレンスより)
>真偽値を返すメソッド名は、動詞または形容詞に`?'を付け、
>形容詞に `is_'は付けない。
>例:
>visible?
(Rubyコーディング規約より)
下記の場合だけ例外的に?を許すんですか?
visible?の結果を返すために@visible?という変数を作ろうと
したらエラーでたんで違和感があったのですが。変数だけ
@visibleにするとattr使えませんよね?
あと詳しく調べたわけじゃないんですが、RDocがバカ正直に
上のルールを適用しちゃってるみたいで、?がついてる名前を
メソッドとして認識してくれないみたいです。HTML化したとき
リンクを貼ってもらえなくて困ってます。私の使い方が
間違っているのでしょうか?
皆様のアドバイスをお願いしたいです。
0396デフォルトの名無しさん
NGNG前者の質問は
def visible?
@visible
end
後者は知らん。
0397デフォルトの名無しさん
NGNG回答ありがとうございます。
ちょっと説明が足りませんでした。私が言う違和感は、
同じ意味を持つものなのにメソッド名と変数名が違うのは変じゃないか
って意味なんです。
例えばcountってメソッドがクラス内のある変数を返すとき
@countを返すのが自然ですよね?だとしたらvisible?
が返すのは@visible?であって欲しいってことです。
attrってそういう使い方を想定して用意してあるものだと
私は解釈してるので、真偽を表す変数だけ
attr :visible?
はできなくて
def visible? ; @visible ; end
とするというのがどうにもスッキリせんのです。
そもそもなんで名前に使えるキャラクタに含まれていない
はずの?が堂々と使われているのかが謎でして。どういう
経緯でこうなったのか知りたいわけです。
0398デフォルトの名無しさん
NGNG素直に変数名にも?を使えるようにすればいいと思うんだが……
0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNGvisible? と聞いているのに,@visible? と返ってきたら不思議じゃろ。
「聞いてるのはわしのほうじゃ、ちゃんと うんとか すんとか応えろ」
とは思われんかのう。行為と状態じゃよ。
0401デフォルトの名無しさん
NGNGメソッドと変数は違う意味を持ちます。同じ値を返すとしても。
0402デフォルトの名無しさん
NGNGつまりな。見えるけ? という質問しとる感じを'?' で出しとるんじゃな。
せやけど、状態を管理するには、可視(見える、見えん)ちゅう言葉を
使うようにしよやないか、いちいち 見えるけ? とかいう変数があったら、
読んどるほうもせわしない感じやからのう、ちゅうふうに考えたんちがうか。
attr :visible よりも visible? を定義したほうが、メソッドの意味が
直感的にわかりやすい、というサービス精神、ということでまけてもらえんか。
0403デフォルトの名無しさん
NGNGある日、「それはバグでした」とか言う
よくわからん理由でいきなり使えなくなり、
俺はプログラムのあちこちの修正を余儀なくされた。
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG変数名はダメ、とそれだけのことじゃないのかな。
0406デフォルトの名無しさん
NGNG0407397
NGNG同じ疑問を持つ方もいらっしゃるようなのでもう少し突っ込んで
みることにします。
>400 さん >401 さん
行為と状態が別物であるというのは理解しているつもりです。
となると、別物である変数とメソッドをいっしょくたにしてしまう
attrは少々乱暴な存在のようですね。
attrは便利だしソースも見通しがよくなるのですが、使い方を
誤ると混乱のもとになりそうです。自分の中ではattrは原則
使わないようなルールにすることにします。
>403 さん
となると、メソッド名でも「それはバグでした」で変更される可能性も
ありってことになりそうですね?「使ってよい」とはどこにも明記
されていない(?)ようですから。使うほうの立場としてはどこかに
明記してくれないと怖くて使えないですね。
>405 さん
エラーにはならない=使ってよいではないと思います。
単に私の調査不足ってだけで、ホントはどこかに「使ってよい」
と記述されているって話ならそれで納得できるし安心して使って
いけるのですが。
このへんのところがはっきりしていないからRDocの作者も
名前の識別を[A-Za-z_]にしちゃったんじゃないでしょうか?
RDocはRuby標準添付で、標準ライブラリにはRDoc文書を
添付せよという話になっているようなので、このまま放置
するとあちこちで不都合が起きるんじゃないかと思います。
0408デフォルトの名無しさん
NGNG特に ? で終えたい変数って真理値が多いだろうし。
0409デフォルトの名無しさん
NGNGとはいえメソッド名に?がついても十分ややこしくなると思うのよなあ。
0410デフォルトの名無しさん
NGNG> メソッド名には通常の識別子の他、識別子に ? または ! の続いたものが許されます。
> RDocで ? がついてるメソッドとして認識してくれない
再現手順を希望。オレは RDoc 使ったことないからよく分からないけど、たとえば
$ rdoc -f html array.c
で、Array#empty? とかも他のメソッドと同じように表示されてるようだが。
0411デフォルトの名無しさん
NGNGよう考えてはる。勉強になるわ。
ほんでな、
>別物である変数とメソッドをいっしょくたにしてしまう
>attrは少々乱暴な存在のようですね。
まずインスタンス変数ありき。
それへのアクセサ(引用(および設定)機能を持つ、変数と同一名のメソッド)
を簡易に定義するメソッドとしてattrがあると思うとるんじゃが、
いっしょくたにとは、どないな意味?
0412デフォルトの名無しさん
NGNGclass Module
def attr_boolean(symbol_name)
attr_reader symbol_name
define_method("#{symbol_name}?") do
self.__send__ symbol_name
end
end
end
if $0 == __FILE__
class Foo
attr_boolean :visible # Generate visible? method
attr_boolean :readable
def initialize
@visible = true
@readable = false
end
end
p Foo.new.visible?
p Foo.new.readable?
end
0413デフォルトの名無しさん
NGNG名前がアレかもしれないけれど、それイイね。
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNGゆうれいは足がない
お化けは足がある
0416デフォルトの名無しさん
NGNGhttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=File#File.2echown
0417デフォルトの名無しさん
NGNGcygwin版とVCでビルドされたもの両方から呼べる?
0418デフォルトの名無しさん
NGNG呼ぶだけなら
require 'dl/win32'
func = Win32API.new('kernel32', 'OutputDebugStringA', 'p', '0')
func.call('hoge')
でもこのAPIって、Visual Studioなり、なんかIDEのデバッガの中でプロセスが動いてないと
何にも表示されないんでない?
# ちなみにcygwin版は試してない。スマソ。
0419デフォルトの名無しさん
NGNG0420397
NGNG>410 さん
当たり前のところに当たり前のように書いてありましたね。
ロクに調べもせずに発言してるのがバレバレですね(恥。
>再現手順を希望。
Ruby1.8.1をMS-Winで動かしてます。
#Foo#bar
#Foo#buz?
class Foo
def bar ; end
def buz? ; end
end
これでどうでしょう?Foo#barはリンクできてます。Foo#buz?は
リンクできてません。
Methodsリストにはちゃんとbuz?があるのでClass#method
表記のときだけ動作がおかしいのかも?
array.cの例ですが、RDocのファイル構成を見ると、C用とRuby用の
パーサがあったので、Cだとうまくいくのかもしれません。またロクに
調べずに書いちゃってますけど。
>411 さん
>いっしょくたにとは、どないな意味?
>変数と同一名のメソッドを簡易に定義するメソッドとしてattrがある
このまんまです。変数名とメソッド名が同じものがattrの裏で
連結されているみたいなニュアンスでした。
>412 さん
なるほど。そういう手があるのですか。勉強になります。
叩き台どころかそのまま使えそうですね。attrは使わない
方針になりそうですが、いざというときには使えそうです。
0421デフォルトの名無しさん
NGNGうまくいきました。
# 本当は宣言済みのものがあるのかと期待してたんだけどさすがにないか・・・
>でもこのAPIって、Visual Studioなり、なんかIDEのデバッガの中でプロセスが動いてないと
>何にも表示されないんでない?
全てのプロセスのODPの出力を受け取ってstdoutに吐く
コマンドラインツールを作ってあるのでそれを起動してれば取れます。
これでcgiのデバッグがかなり楽になります。
ありがとうござました。
0422418
NGNGfunc = Win32API.new('kernel32', 'OutputDebugStringA', 'S', '0')
の方がよさげorz
0423デフォルトの名無しさん
NGNGうーん、一本とられたわい。
もうこの話は終わりのようじゃが念のため。
メソッド名はvisible、変数は@visibleで、「@を除いて」を省略した言い方をし
とるんだが。別にメソッドと変数を一緒くたにはしてないがのう。
変数名に?が利用できないのは事実じゃが、それは別にattrのせいでもなかろう。
「かなえられない夢(?の利用)」を思い出して嫌なんかも知らんが、attrファ
ミリー自体は、attr_accessor(読み書き両用),attr_reader,attr_writerとそ
ろっておって、クラス属性の宣言手段として結構なものだがのう。特に変数の数
が多いときはカンマで続けられるから便利じゃ。attrを毛嫌いするのは、attrが
不憫じゃ。まあ、好きずきじゃが。
単純な参照(および設定)だけならattrファミリーで良し。細かいことしようと
思えば明示的にメソッド定義して、使い分けすれば良いだけの話じゃ。
0424デフォルトの名無しさん
NGNG現在製作している WikiClone に、差分表示の機能を取り込みたいと思っています。
しかし「Ruby 差分」でググってみても、それらしいライブラリが見つからず……。
自力で差分表示のアルゴリズムを実装するしかないのでしょうか?
0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNGCVSかRCSか何かを利用したほうが良い。
当然このなかに差分をとる機能があるから、これを使う。
0427デフォルトの名無しさん
NGNGでも、別途インストールしろというのは無理があるのでは?
好きな人がいるのは理解できるけど。
0428デフォルトの名無しさん
NGNG履歴なんて後からどうにでもなるし。
# どーでもいいけどRWikiの差分diffの結果をべたっと貼るだけって手抜き杉
0429デフォルトの名無しさん
NGNG直前のだけだとよくわからないことがよくある (typo修正しか見えなかったりね)
0430424
NGNG情報ありがとうございます。無事見つかりました。
>>426
ごめんなさい、バージョン管理はすでに独自のもの(コピーマージ式)を実装済みです。
一度はCVSを使おうかとも思ったんですが
組み込み方がさっぱり分からなかったので止めてしまいました。
ところで、RAAの中のアルゴリズム実装を探してみたところ
「diff」「simple-diff」「diff-lcs」「argorithm-diff」の四種類が見つかったのですが
そのうち、はじめの二つはリンク切れで落とせず。
残ったdiff-lcs と argorithm-diff 、いったいどういう違いがあるのでしょうか?
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNGdiff-lcs は perl での実装を移したもの。
argorithm-diff は、rubyによるWiki実装であるTikiから切り取ったもの。
(登録者はTikiとは関係ありませんが。)
採用しているアルゴリズムも異なるかもしれません。
代表的なものでも数種類あるので。
双方に対して、速度とかテストしてみてよかった方を採用しては?
将来的なメンテナンスという面では、diff-lcs かな。
0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNGぱっと思いあたるのが
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/40360
あと、eclipseとか(Rubyのプラグインあったよーな)、ぐらい。
質はあんま良かないのかな。
0439デフォルトの名無しさん
NGNG俺は vim 使ってるけど。
0440デフォルトの名無しさん
NGNGhttp://www.mimikaki.net/
0441デフォルトの名無しさん
NGNGプログラムが大きくなると、
いちいちメンバの名前を覚えられない。
0442デフォルトの名無しさん
NGNGUnitTest 書いてクラス作ってと足場を固めるように
作成するから一度に把握しなければならない範囲ってそう広くないし。
0443デフォルトの名無しさん
NGNG一字一句までごもっともです。いい勉強になりました。
お付き合いありがとうございました。
0444デフォルトの名無しさん
NGNG詳細希望。blade見たけど探しきれなかった。
0445デフォルトの名無しさん
NGNGむしろ >>403 に詳細希望。
0446デフォルトの名無しさん
NGNGRDEは?
0447デフォルトの名無しさん
NGNG変数名の?!の件は、
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/9702
から始まるスレッドだろうね。
9756の原さんは、今回の397さんとまったく同じ主張しているね。
ところで。たまに昔のruby-listを読むことあるけど、いい文章結構あるね。
ruby-list/37426の中島さんの文章なんかは、物事の理解とはどういうことか
を教える一級品の文章だね。勉強になるなあ。
0449デフォルトの名無しさん
NGNGVisualStudio か Eclipse 以外は良いとは認めない人だと思う。
0450デフォルトの名無しさん
NGNG-コードアシスト
-デバッグ情報表示
-クラスビューワー(クラスのプロパティ、メンバの表示)
(メンバをクリックすると定義部分へジャンプ)
-定義文へのジャンプ
あと、できればGUIエディタかな。
RDEって後ろの2つないよね。
>>449
ちなみにEclipseでRubyできるよ。
0451デフォルトの名無しさん
NGNGは
>IDEに最低必要な機能
を満たしてるの?
0452デフォルトの名無しさん
NGNG>RDEって後ろの2つないよね。
待て。クラスビューワーは普通にある。
あと「定義文へのジャンプ」は、そもそもRubyの文法上難しいと思う。
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGソースなめただけで解る分だけ作ってるのかな。
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNGどっちが早く実現するんだ?
0457デフォルトの名無しさん
NGNG% ruby -v
ruby 1.8.2 (2004-12-25) [i386-freebsd4]
% cat utf8.rb
#!/usr/local/bin/ruby
require "kconv"
print Kconv::kconv(DATA.read, Kconv::UTF8)
__END__
日本語 EUC-JP
% ruby utf8.rb | wkf -C
stdin newjis
%
0458457
NGNGcase out_code
when ::NKF::JIS
opt << 'j'
when ::NKF::EUC
opt << 'e'
when ::NKF::SJIS
opt << 's'
when ::NKF::UTF8
when ::NKF::UTF16
opt << 'w'
when ::NKF::NOCONV
return str
end
って ::NKF::UTF8 のところ、条件すり抜けとる気がするのですが、気のせいですよね?
0459デフォルトの名無しさん
NGNG誰だこれ書いたの…
0460デフォルトの名無しさん
NGNG正式リリースを震えて待て
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGこれってどういう意味ですか?
連想配列?
variables = [:site_name, :author_name, :mail, :theme, :password,
:theme_url, :sidebar_class, :main_class, :theme_path,
:mail_on_update, :use_sidebar, :auto_link]
0464デフォルトの名無しさん
NGNG普通の Array 。要素は全て Symbol 。
0465デフォルトの名無しさん
NGNG感謝。
シンボルというのはenumみたいなもので、
他のシンボルとは被らないランダムな値が入ってるもの
ってことですね。
MD5みたいな感じですか。
0466デフォルトの名無しさん
NGNG> シンボルは任意の文字列と一対一に対応するオブジェクトです。
ランダムじゃないし(ていうかランダムってどういう意味だ? シンボルは数値じゃないぞ? (実装は数値だが))、
MD5のようなハッシュ関数(ごく希に重複する)とは違い、完全に一対一に対応している
0467デフォルトの名無しさん
NGNGだいじょぶです。
今、hikiのソースコードを読んでrubyを覚えよう作戦を
実行中なんですが
rubyのwikiで一番有名なのってなんですか?
0468デフォルトの名無しさん
NGNGhttp://www9.ocn.ne.jp/~ymt/wiki/#RUBY
rubyのwiki一覧
これはすごい
http://www.mikihoshi.com/wema2/test/
0469デフォルトの名無しさん
NGNG階層化可能だと思うのですが、
モジュール内部のみで有効なんですよね・・・
0470デフォルトの名無しさん
NGNGん?どういうこと?
0471デフォルトの名無しさん
NGNGそれってメソッドでも同じことが当てはまるような…
0472デフォルトの名無しさん
NGNG(つーか、たまにはソース嫁自分orz)
Jcode.pmとかベタ移植したら使い物にならんもんだろうかと言ってみるテスツ。
0473デフォルトの名無しさん
NGNG「それ」を具体的に言ってみてください。
0474デフォルトの名無しさん
NGNGKconv は単なるガワだからね。いずれ deprecated になるんじゃないかな。
nkf2 使えばいいかと。
0475デフォルトの名無しさん
NGNG単に好みの問題なのですが、
NKF.nkfメソッドってnkf(1)のオプションをそのまま書くところが
なんか生々しすぎてなかなか慣れないです。
そこらへんをKconvが和らげてくれているもんだと思ってました。
require 'nkf'
NKF.nkf('-e', "あいう")
require 'kconv'
"あいう".toeuc
0476デフォルトの名無しさん
NGNGモジュールが違えば、シンボルの名前が同じでも指してるものは異なるんでしょうか?
インクルードしちゃうと・・・
あれれ。
sendにはまった。
sendメソッドはどこにあるんだーってrequireしてるファイルを全部
探してみたけど見つからなくて、実は組み込みだったという・・・
関数定義部分が探しづらいのはrubyの短所かも。
0477デフォルトの名無しさん
NGNGやっぱオブジェクトブラウザ必要だね。
0478デフォルトの名無しさん
NGNGそのままエンコーディング変換の用途で使うなんて正気の発想じゃない。
0479デフォルトの名無しさん
NGNGシンボルはモジュールが違っててもひとつの Ruby プロセス内なら同じ。
0480457
NGNGいや、そういう理解で良いんじゃないでしょうか。
deprecated にはならないように思います。
というか nkf2 はもうマージされてますよね。
>>478
げ、ホントだ。
確か nkf は本家の方もバージョンによって
デフォルトで MIME デコードしたりしなかったりしてた気がするしなあ。
せめて Kconv の方は MIME デコードしないというか、
余計な変換はしないようにしてもらいたいですが、
互換性の問題とかあるかなあ?
0481send難しい。。
NGNGdef test_print
p "jikken"
end
end
test = SendTest.new
#ここで、次の二つどっちを使っても、結果は同じですよね。
test.send(:test_print)
test.test_print
sendと、インスタンスメソッドとしての呼び出しって、どういう違いがあるんでしょうか?
私は日曜プログラマというか、プログラミングの講義っていうものを受けたことがないので、
推測ですが、sendを使うと、testというオブジェクトがtest_printというメソッドを持ってるか不明でも、
test_printメソッドが使えるってこと(自分で書いててうまく説明できない)なんですよね。たぶん。
メソッドを持ってるかわからないけど、実はほんとにメソッドを持ってて、sendを使わないといけない状況って
どんな時でしょうか。
sendの使いこなしかたとか、こういう時は、絶対sendっていうのがあれば、教えてください。
0482デフォルトの名無しさん
NGNGがーん。
グローバル変数と同じくらい危険じゃないですか。
>>481
個人的な考え
sendはリフレクションAPI(だと思う)から
基本的には使わないことがベター。
保守性を無視して楽したい時に使うといいと思う。
可読性とセキュリティーの点でsendは使うべきじゃない。
0483send難しい
NGNGなるべく使わない方がいいってことは分かったんですが、
保守性を無視して楽になるって、どういうことですか?
もうちょっと、楽できるってことを、具体的に教えてもらえませんか。
0484デフォルトの名無しさん
NGNGrequireの順番入れ替えたらエラーorz
グローバル変数は使わず
インスタンスに渡してあげよう。
も1つ
違うファイルで定義された関数を呼び出すとき
その定義場所がわかるように記述しよう。
例えば、クラスのメソッドにして、クラス名から
どこのファイルに記述してあるかわかるようにする。
(1クラス1ファイルでクラス名=ファイル名にするといい)
rubyも使い方を誤ると簡単にperl化しちゃいますね。
0485デフォルトの名無しさん
NGNGなんでわざわざ send 使おうと思っているのか、そっちの方が気になる。
0486デフォルトの名無しさん
NGNG危険かね?危険な状況に陥るケースが思いつかないけど、例えばどんな?
0487デフォルトの名無しさん
NGNGシンボルがモジュール毎に異なってたら使いもんにならんよ。
0488デフォルトの名無しさん
NGNGstr.replace("") ですかね?
0489デフォルトの名無しさん
NGNG例えば、オブジェクトをハッシュに詰め込むときに
オブジェクトのクラスはハッシュ値としてシンボルを返すとすれば
シンボル名が重ならないように他のクラスを全部調べなきゃいけない。
>>483
コマンドラインにメソッド名を入力すると、それを呼び出してくれるってのは?
./game help
ってやると
help()が呼ばれるとかさ。
./game start
ってやると
start()が呼ばれる。
switch/caseをすっ飛ばせる。
./game deleteAllとかされて悲劇が起こることも。
0491デフォルトの名無しさん
NGNG>例えば、オブジェクトをハッシュに詰め込むときに
>オブジェクトのクラスはハッシュ値としてシンボルを返すとすれば
ちょっと意味不明。 Hash とは別に独自のハッシュテーブルを作る話?
489 のレスはどっか全体的にズレてるというか、
途中の思考過程をすっとばして書いてるように感じるんだよなあ。
長文になってもいいから、順を追って書いてくれると助かる。
0492デフォルトの名無しさん
NGNGrubyマニュアルによれば、sendの意味は下記のとおり。
send(name[, args ... ])
send(name[, args ... ]) { .... }
オブジェクトのメソッド name を、引数に args を渡して呼び出し、メソッドの
実行結果を返します。ブロック付きで呼ばれたときはブロックもそのまま引き渡
します。
メソッド名 name は文字列かSymbol です。
send は、呼び出し制限 にかかわらず任意のメソッドを呼び出せます。
以下は実際に使ったことはない私の単なる想像上の用途。識者の指摘を待つ。
(1)nameを動的に変更して何らかの作業をさせたいとき。
(2)privateなメソッドでもsendは実行できるから、呼び出し制限はあえて破りた
いときに使う。
0493デフォルトの名無しさん
NGNG例えば。
class Robot
def walk;puts "I'm walking";end
def jump;puts "I'm jumping";end
def dance;puts "I'm dancing";end
end
class Automation
attr_accessor :robot, :script
def run
@script.each{|command| @robot.send(command)}
end
end
am = Automation.new
am.robot = Robot.new
am.script = [:dance, :dance, :jump]
am.run
#=> I'm dancing
# I'm dancing
# I'm jumping
0494デフォルトの名無しさん
NGNG(2)は下記のスレッド参照されよ。
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/25550
privateはうっかりミス防止程度らしい。sendはprivateを無視して実行
しちゃう。だけど、そんなに傍若無人になりたい時って、どんな時?
ちょっと素人には想像しかねる。
0495デフォルトの名無しさん
NGNG今からでも遅くないから、リファレンスマニュアルのkconvのとこに
"内部でnkf使ってるので、MIMEエンコードに見える文字列はデコードされます"って
書いてきてくれよ。
自分で書けばいいのかもしれんけど、俺もうRuby見捨てちゃったからさ…
0496デフォルトの名無しさん
NGNG月狼か?
0497デフォルトの名無しさん
NGNGうーん。プロファイラとかデバガとか開発環境に使いそうな使わなそうな。
他には、proxy しているオブジェクトの public メソッドを置き換えるとか。
人の作ったライブラリのバグ/仕様を
元のコードに手をつけずに修正したいときに使えると思う。
そんな機会があるかどうかは知らないが。
class HiddenOne
def foo; puts "foo";end
def hoge; hage; hige;end
private
def hage;puts "hage";end
def hige;puts "hige";end
def fuge;puts "fuge";end
end
class Proxy
attr_accessor :delegatee
def foo; @delegatee.foo;end
def hoge; @delegatee.send(:fuge);end
end
o = HiddenOne.new
o.foo
o.hoge
p = Proxy.new
p.delegatee = o
p.foo
p.hoge
0498デフォルトの名無しさん
NGNGありがとうございました。代理パターンですか。
なるほど、勉強になります。
libをgrepすると結構sendは使われてますね。
0499デフォルトの名無しさん
NGNGテスト・ケースでprivateメソッドを単体でテストをしたい場合。
0500デフォルトの名無しさん
NGNGフレームワーク的なクラスを作ってるときは(1)の用途でよく使う。
「このクラスを継承して、"on_ほげ" ってメソッドを定義すると"ほげ"ってイベント
を受けたときに自動的に呼びだします、とか。
0501デフォルトの名無しさん
NGNG行指向パーサだからだ
0502デフォルトの名無しさん
NGNGおめでとう。そして、さようなら。
0503492
NGNG481さん、こんなところでいいかな、sendの件。
おかげで勉強になったよ。やっぱり存在してるものは、それだけで尊いんだな
あ。
0504デフォルトの名無しさん
NGNG行指向だからどうなんだ
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNGなぜ、行指向は嫌いなのか
0507デフォルトの名無しさん
NGNGmethod1(a,b,c) +
method2(a,b,c)
みたいな変態なソースを書かされるから。
hoge =
method1(a,b,c)
+ method2(a,b,c)
だろ不通。
0508デフォルトの名無しさん
NGNG俺は他の言語でも前者。
0509デフォルトの名無しさん
NGNGwin32oleを用いてEXCELファイル'paste.xls'に
----------------------------------------------
excel = WIN32OLE.new('EXCEL.Application')
excel.visible = true
book = excel.workbooks.open('paste.xls')
sheet = book.worksheets('Sheet1')
cell = sheet.cell(1,1)
cell.value = "002A"
----------------------------------------------
のように16進数を貼り付けているのですが、このcell(1,1)を
参照しているHEX2DEC関数がシート内にあり、その値が#NAME!と
なってしまうのです。visible=trueで表示されたEXCELを一旦
保存して閉じ、再度(Rubyからではなくて)paste.xlsを開くと
その#NAME!が数値に置き換わるのです。
自分で調べたところRubyで起動したEXCEL上では分析ツールの
アドインがチェックされているにも関わらず、関数などが有効
になっていないみたいなのです。Ruby上から分析ツール、分析
ツール(VBA)を組み込んでみたりしたのですが、状況が変わり
ません。
どなたか、#NAME!とならない方法を知ってる方いませんか?
0510デフォルトの名無しさん
NGNG上は変態で下はノーマルなのか?
フェラはいいけどアナル舐めはやめてね、みたいな話だな。
まあ個人の好みの話だからどうでもいいが。
0511デフォルトの名無しさん
NGNG下のほうが変態だ
上のほうがmethod2との関連性が明白だ
それとも、まだ何か漏れの知らない変態要素があるのだろうか
ソースの切り貼りするときのこと考えても、べつにどっちでも変わらんし
0512デフォルトの名無しさん
NGNGその意識があれば上を変態的と思うのは間違っていない。
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNGruby で作られた有名な中規模〜大規模の Web サイトはありませんか?
0515デフォルトの名無しさん
NGNG俺は下だから変態か。メンテが楽なんだよね。昔どこかのソースで
hoge=[1,
2,
3,
]
って書き方見て蕁麻疹でそうだったよ。最後のカンマは
何なんだ?
0516デフォルトの名無しさん
NGNG要素の追加時に変更が追加行だけで完結するので有利。
0517デフォルトの名無しさん
NGNGC言語でもやるじゃん
int main(){
int a[] = {1, 2, 3, };
}
0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNG人それぞれだから要注意だねというお話でした。
0520デフォルトの名無しさん
NGNGCのプリプロセッサはやっぱり一切使わないのだろうか…
0521デフォルトの名無しさん
NGNGRubyはどっかで勝手に改行したり空白入れるだけで
意味が違ってくるからヤバイってことだろ
0522デフォルトの名無しさん
NGNG空白入れるだけで意味違ってくるのは
プリプロセッサも同じなんすけど…・
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNGでもCのプリプロセッサはどうなのよ、って単純な疑問でもありました。
0525デフォルトの名無しさん
NGNGリファレンスマニュアル
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%A5%EA%A5%C6%A5%E9%A5%EB
に、シンボルの例として、:+(演算子に:をつける)が書かれています。
具体的に、これはどのような使い方になるのでしょうか。
そして、こうすると、どのあたりがうれしいのでしょうか?
または、うれしくなくても、どういうときに使わなければならないのでしょう。
もひとつシンボルについてよく分かりません。
0526デフォルトの名無しさん
NGNG古い処理系だと怒られるからダメ。
0527デフォルトの名無しさん
NGNGRuby では演算子でさえもメソッド。
と言えばあとはわかるよな?
0528デフォルトの名無しさん
NGNG知らなければ知らなくてもいいと思うんだけど。
アクセサ系を作るときにインスタンス変数の@を:に変える、って程度で考えておけば。
あとHashのkeyによく使うかな。
:+の使い方としては、
1.send(:+, 2) # 3
とかかな。
実際のところはRubyでのシンボル(変数名やメソッド名など)を
識別するのにシンボルを当てて使うというインタプリタ内部の
実装を表に出して解放したって感じ。シンボルの実装は整数だから、
文字列をあれこれするより圧倒的に速い。
0529デフォルトの名無しさん
NGNG両方同じ言葉を当てて説明してしまった。
適宜文脈から読み替えてくれ。わかるよね(汗
0530デフォルトの名無しさん
NGNGそうすると、
変数 変数名 シンボル
------------------------------
? 文字列 整数
というような対応関係があるんですね。(?のところはポインタみたいなものですか?)
そして、(sendのような?)メソッドの時は、変数名(文字列)を書く代わりに、
シンボルを引数にしたほうが、はやくなるんですね。
>:+の使い方としては、
>1.send(:+, 2) # 3
>とかかな。
そうか。1.send("+", 2) と書くかわりになるんですね。
引数がシンボルでも良いのは、組込みメソッドの中ではattrやsendくらいですか。
これ以外にもありますか?
もうひとつ教えてください。
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Symbol;em=%A5%B7%A5%F3%A5%DC%A5%EB
というところにもシンボルの説明がありました。
「オブジェクトに対応する整数(Object#id で得られます)と Symbol に対応する整数は別のものです。」
と書いてありました。
シンボルとObject#id というのは目的が違うんですね。どうちがうんですか?
0531デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNGうそついちゃいかん
0534デフォルトの名無しさん
NGNGhttp://www1.tf.chiba-u.jp/~shin/tutorial/
0535デフォルトの名無しさん
NGNGそれはわかるんだけど、最後に一個余分な要素ができる(んだよね?)
からsizeとかでひどい目に会うって話はない?
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG$ ruby -v
ruby 1.8.2 (2004-11-06) [i686-linux]
$ irb
irb(main):001:0> hoge=[1,
irb(main):002:1* 2,
irb(main):003:1* 3,
irb(main):004:1* ]
=> [1, 2, 3]
irb(main):005:0> hoge.size
=> 3
0539デフォルトの名無しさん
NGNG> 91 名前: デフォルトの名無しさん Mail: sage 投稿日: 04/12/29 23:41:06
>
> Rubyのバナーが投下された模様。
>
> http://d.hatena.ne.jp/hihumiyoitsumu/20041229
>
> 92 名前: デフォルトの名無しさん Mail: sage 投稿日: 04/12/29 23:42:50
>
> made withが非常に読みにくい
0540デフォルトの名無しさん
NGNGひどい目に会ったことない奴発見!
0541デフォルトの名無しさん
NGNGないよ。俺はそういう書き方しないしね。
0542535
NGNG0544デフォルトの名無しさん
NGNG書く前にちょこっと確かめてみりゃいいじゃんよ。
ruby -e 'p [1,2,3,].size'
だけで確認できるんだから。
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNGそれぞれインストールはうまくいったものの、
$ ruby -S migemo
ruby: No such file or directory -- migemo (LoadError)
となります。このとき、
$ ruby -e 'puts $:'
/usr/lib/ruby/site_ruby/1.8
/usr/lib/ruby/site_ruby/1.8/i386-cygwin
/usr/lib/ruby/site_ruby
/usr/lib/ruby/1.8
/usr/lib/ruby/1.8/i386-cygwin
となっており、
$ ls /usr/lib/ruby/site_ruby/1.8
migemo-cache.rb
migemo-convert.rb
migemo-dict.rb
migemo-index.rb
migemo-regex.rb
migemo.rb
と出るので、LOAD PATH にファイルは存在しているようです。
$ mount
は、
C:\cygwin\bin on /usr/bin type system (textmode)
C:\cygwin\lib on /usr/lib type system (textmode)
C:\cygwin on / type system (textmode)
c: on /cygdrive/c type user (textmode,nomount)
となっております。進退きわまっているので、他に設定ミスの
可能性があったら教えてください。
0547デフォルトの名無しさん
NGNGそのエラーは Ruby が migemo の実行プログラムを発見できてないというエラー。
-S はサーチパスから探すんだから、 まずやるべきは which migemo だと思う。
正しくロードできるかどうかの確認は、
ruby -e 'puts(require("migemo"))'
とか。この場合、 true と出るなら正しくロードできている。
0548デフォルトの名無しさん
NGNGそれは migemo.rb(ライブラリ) ではなく migemo(本体) が見つからない、というエラー。
どうやって入れたか分からないけど、/usr/local/bin あたりに入ってない?
$ which migemo
してみるといいかも。
0549548
NGNG0550デフォルトの名無しさん
NGNGruby -r migemo -e ''
でエラーにならなきゃいいんじゃない?
0551530
NGNGの質問に対して、
>知らなければ知らなくてもいいと思うんだけど。
と回答もらいました。たぶん、これが正解だと思いました。
初心者にとっては、何が重要かわかりにくいです。
かたや、すべてのオブジェクトに対し番号をつけてオブジェクト同士が同一であ
るかをチェックする目的で使い、かたや、文字列にユニークな番号をつけて引用
参照などの際の引数に使う。
前者は同じ名前でもidは変わり得るが、後者は常に一定に保たれる、
ぐらいに考えておきます。ありがとうございました。
0552デフォルトの名無しさん
NGNG「目的」もなにも、まるっきり関係ない別物。
一から十まで違う、としか答えようがないんだが。
0554デフォルトの名無しさん
NGNG,,iiii,,,,,iii,, ,,,,,,,,,_
.______゙!lllll!l!llll!! ,llllllllllllllliiiiiii,,,,,,,、
.llllllllllllllllllllllllllllllllllllllll` ゙゙゙゙゙!!!!!!llllllllllllllll!
.l!!!!!!!!!!!!!!!!!!!!!!llllllllll .,iiiiiii,,,,,,,,゙゙゙゙゙!!!l゜
llllllllll lllllllllllllllllllliiiii,,,
llllllllll `゙゙゙゙゙!!!!lllllllll゜
_______,llllllllll .,illllliiiiiiii,,,,,,,, ゙゚゙゙′
lllllllllllllllllllllllllllllllllllllllll l!!!!llllllllllllllllllllliiiii,,,,,,、
'!!!!!!!!!!!!!!!!!!!!!!!lllllllll| ゙゙゙゙゙゙!!!!lllllllllllll!:
゙゚゙゙゙!!°
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,、 ,,,,,,,,,,
.lllllllllllllllllllllllllllllllllllli、 lllllllllll
.'゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙lllllllllll゙′ llllllllll
,illllllllll゙` .llllllllll| ,,,i,,
,,iillllllllll゙` llllllllll| ,,,iilllllllli,
,,,iillllllllllllllllii,,, .lllllllllll .,,,iiilllllllllll!!゙゜
,,,,,iilllllllllllll!!!llllllllllllii,,、 llllllllll|.,,,,iiillllllllllll!!゙’
..liillllllllllllllll!!゙’ ゙゙!llllllllllllii、 .llllllllllllllllllllllll!!゙゙`
: ゙゙lllllll!!!゙゙` ゙゙!lll!!゙゜ .゙!lllllllllll!!!゙゙゜
.゙゙゛ : `゙゙゙゙″
0555デフォルトの名無しさん
NGNG.,,、 、 ,,,,,,,,、 .,ii,,,,,,,、 .iiiiiiiii、
.llllii,,, lllii,,, ,,illlllllll .,llllllllll′ .llllllllll
゙!!llllllii,,, .゙!!llllllii,,、 liiiilllllllllllllll: llllllllll″__,,,,,,llllllllll,,,,,,,,,,:
.゙゙゙!lllllliii,,, ゙゙゙!lllllliii,,, ゙!!!!!!!lllllllll: .,lllllllll″ llllllllllllllllllllllllllllllllllll!
.゚゙!!llllllii,,_ `゙゙!lllllliii,,_ lllllllll: .llllllllll l!!!!!!!!!!!llllllllll゙゙゙゙゙゙゙゙
゙゙lllllllllil. '゙!llllllliii,. lllllllll| .lllllllll" lllllllll
.,,,iillllll!!゙° ,,,iillllll!!゙゙` lllllllll| .lllllllll:、 _,,,,,,lllllllll:
,,,iillllll!!゙° ,,,iillllll!!゙゙` .:lllllllll lllllllll,iliii, .,,iiilllllllllllllllllllliiiii,,,,、
,,,iiillllll!l゙° .,,,iiillllll!!゙° lllllllll: .'lllllllllllll!゚,llllllllll゙゙゙゙゙llllllllllllllllllllll‐
.llllll!l゙° .:llllll!゙゙゜ lllllllll: llllllllllll゙ .!lllllllliiiiiiiillllllllll「゙゙!!l!°
.゙゙° .l!゙゜ :!!!!!!l .'!llllll!! .゙!!!lllllllllllllll!!゙′
` ̄`
0556デフォルトの名無しさん
NGNG__,,,,,,,,,ii,,
liiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiillllllllllllllllllllllli,, ,lllllllllll
lllllllllllllllllllllllllllllllllllllllllllllllll!!!!!!!!゙゙′ lllllllllll「
lllllllllll!!!!!!l゙゙゙゙゙゙lllllllllll|` .lllllllllll,,ii,,、 .,,,,,,,,,,,,,,,,、
lllllllllll: 'llllllllll| liiiiiiiilllllllllllllllllllll,,iiillllllllllllllllllllii,,、
lllllllllll,,,,,,,,,,,,,,,,,,lllllllllll,,,,,,,,,,,,,,,,,,,,,,,,,, llllllllllllllllllllllllllllllllllll!!!!!!llllllllllllllli,
llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll: ゙゙~` lllllllllllllllll!!゙° .゙!llllllllllll、
lllllllllll!!!!!!!!!!!!!!!lllllllllll!!!!!!!!!!!!!!!!!!: ,,llllllllllll!゙° 'llllllllllll
lllllllllll: .llllllllllli、 ,,illlllllllllll| _,,,,,,_. ,llllllllllll
lllllllllll: llllllllllll, ,iii,,,、 ,,illlllllllllllllll .,,iiiilllllllllllllllllllllllllll_
lllllllllll: ._,,,,,, ゙llllllllllli,、 ,lllllllllli! .,illlllllllllllllllllll: llllllllllll!!!!!!llllllllllllllllllliiii、
_llllllllllliiiiiiiiilllllllllllli, ゙lllllllllllli,,,,illlllllllll「 ゚゙!llll!゙.lllllllllll llllllllllli,,,,,,,,,illlllllllllllllllll°
.'lllllllllllllllllllllllllllllllll!!!!ト.゙!lllllllllllllllllllllll!゙ ″ llllllllll| '゙!lllllllllllllllllllllllll!゙゙゙゙゙゙′
.゙lllllllll!!!!!!゙゙゙゙゙゙″ ゙゙!lllllllllllllll!° !!!!!!!! ゙゙゙゙゙!!!!!!!゙゙゙°
` ゙゙゙゙゙”
0557デフォルトの名無しさん
NGNG691 名前:デフォルトの名無しさん 投稿日:04/12/31 17:31:18
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
691 名前:デフォルトの名無しさん 投稿日:04/12/31 17:31:18
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
691 名前:デフォルトの名無しさん 投稿日:04/12/31 17:31:18
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
691 名前:デフォルトの名無しさん 投稿日:04/12/31 17:31:18
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
691 名前:デフォルトの名無しさん 投稿日:04/12/31 17:31:18
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
691 名前:デフォルトの名無しさん 投稿日:04/12/31 17:31:18
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
691 名前:デフォルトの名無しさん 投稿日:04/12/31 17:31:18
Ruby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0558デフォルトの名無しさん
NGNGruby-devの中の人、解決望む。
Map from acceptable argument types to pattern and converter pairs.
opt, sw, val = sw.parse(val, argv) {|*exc| raise(*exc) if eq}
rescue Errno::ENOENT, Errno::ENOTDIR
rescue
o = notwice(Object, klass, 'type')
: "=MANDATORY", "=[OPTIONAL]"
nolong
opt, sw, val = sw.parse(rest, argv) {|*exc| raise(*exc)}
: OptionParser::OPTIONAL_ARGUMENT
: ((|msg|))
Shows option summary.
mlen = left.collect {|s| s.length}.max.to_i
第三者が読んで含蓄のある批判をしてみたまえよ、みっともない。
NoArgument.each {|el| ArgumentStyle[el] = Switch::NoArgument}
raise ArgumentError, "#{arg}: incompatible argument styles\n #{self}, #{t}"
== ((:OptionParser::MissingArgument:))
: Hash
exception message
=== Instance methods
format, (({Float})) for float format.
Parses ((|self|)) destructively, and returns ((|self|)) just contains
nolong << q
el.send(id, *args, &block)
分析・設計時間に比べればコーディング時間なんてほんの一瞬だから、
== ((:OptionParser::NeedlessArgument:))
option definition:
0559デフォルトの名無しさん
NGNGこんなところでネチネチ陰湿に文句いうくらいならさっさとRubyアンインストして忘れろよ
In addition, I also need some good information and tutorials on how to program with Ruby.
- 構文が複雑。シンプル化も進まない。
むしろここでやれ
自尊心を慰めてるにすぎない。
1000ゲット
I'm currently new to Ruby and would like to start developing with it.
ってチンポ立ててる自分を
数倍マシ?寝言は寝て言えよこの恥知らず野郎。
で、iconvはどうやってインストールしてどこにあるの?
Matzの言う通り「マイナーな言語のまま」終わるだろう。
/|√ Ruby >>> Python >>> Perl ⌒/ ) ハッ!
開発者個人の趣味でここまで来たけど、これからも趣味というスタンスが続くなら、
(シンタックスシュガーが充実している反面でもあるけど)
/usr/local/include
『Windowsでexeが作れない』『自己記述ができない』『マイナーすぎてレンタル鯖で使えない所が多い』・・・
2. バグトラッキングシステム
おまえらの自慢の批評眼で自己批判して見ろクズが(゚Д゚)、ペッ
RubyもPHP並にデータベースを意識すればいいと思うよ
ので、Makefileに追加してbuildしたところ、coreを吐かなくなりました。
12月は年末厨で酒が飲めるぞー(酒が飲める飲めるぞー、酒が飲めるぞー)♪
るびべんになる呪い
3. 公式サイトにPostgreSQL/Pythonみたいなオンラインドキュメント
誰かが結果を出した途端
RRBとかRipperの改造版を使っているんだよね。
批評された側の役に立ってるわけがないだろ?ボケが。
0560デフォルトの名無しさん
NGNG既存のプロジェクトを死滅rubyから書き換えて
ただの垂れ流しを貢献と勘違いしてたキチガイね。
` 、 (__人__丿 、、、 /
上記はあくまで一例で、
String#% を使ってこういう風にも書ける。
あと、いま思いついたが、ブロック付きの場合
まぁいいんじゃないか
attr_reader :args
ZSA8aWNvbnYuaD4NCg0KLyp0b3AqLw0KaW50IG1haW4oKSB7IHJldHVybiAwOyB9
webrckで動かせるからApacheいらんし。
批評された側の役に立ってるわけがないだろ?ボケが。
p はデバグ用なんで、バックスラッシュとかダブルクォーテーションとかは
どう投じるかためだけに、延々とニュース見たり議論してたり
print("[file] ", f, "\n")
: 死滅Rubyについて Part 6
. / / ミ R 彡
それ、読みやすく修正がラクかな・・・?
VMはYARVでいいんでない?
分析・設計時間に比べればコーディング時間なんてほんの一瞬だから、
Ripperって死滅Ruby 1.9の一部になっていて、もう単体ではメンテされて
while chunk = gets "" do
data = ["foo.rb", "bar.rb"]
うかつに死滅Rubyのような画期的な言語をつくってしまうと
puts sprintf("%x", s)
また、噛み付いてるのか YO!
l l
puts HOGE
n = 128
/ ==/ `'-ノ �凵_
( ゚д゚) …………
0561デフォルトの名無しさん
NGNGclass OptionalArgument < self
うんこには試験もなんにもない
その際に前述したような漢字を読み込むと,その行がnilと出力されてしまいます.
数倍マシ?寝言は寝て言えよこの恥知らず野郎。
---------------test.rb-------------------
「 | 》 l| ゙》 ミ.. .::::::\
必ず空行を入れる というだけのルールだけでも
/ ヽ|
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な!
おおっ、そんな方法があったとは!素晴らしい。
chm形式のファイルがダウンロードができたんだが、場所を失念した。
= 過去スレ
b << line
3行目でbを破壊的(?)に0にするには、どうすればいいでしょうか?
l゙
それは知らないです.
: Jython、Groovy、Jうんこ - どれが一番効率的?
「メソッド名には Symbol を使う」という原則を、どこかで聞いた希ガス。
when *ArgumentStyle.keys
pr = Proc.new
交わされています。われわれ初心者、中級者にも参考になりますよ。
= は イコールではなく代入ってイメージからすると、
だったらパラレルポート覗きたいんだが?
こちらこそごめん。
うんこじゃできないのね。
0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNG先頭で#!c:/usr/bin/ruby is うんこ -Ksとオプションを付けてもダメでした.
まぁいいんじゃないか
ローカルのテキストファイルに書き出すという処理です.
text[0...i+4]=""
作品として公開されたものが批評されるのは当たり前の事だが、
sendを使えばできるのですが、その関数を実行したくないときには
VMはYARVでいいんでない?
おれの場合は有限状態機械を作るときにProcをHashの値にいれるなんてよくやる。
更新してほしいな〜。
kome_dawara = 0
f = File.open("test.txt", "wb")
新しいportsでは直っている問題ではなかったのでしょうか?
んで、キミはruby is うんこを使ってるの?
DQpjaGVja2VkIHByb2dyYW0gd2FzOg0KLyogYmVnaW4gKi8NCiNpbmNsdWRlIDxp
間違えた。
とか。(printfの行が必要だったら、これじゃダメだけど)
: 【因縁の】DelphiVSHSPVSRuby is うんこ【対決】
p ary.fill(0,3) {|i| i} # => [0, 1, 2]
〃\ /\、ヽ、ノ). │.{ {、|| ゚‐- /゚-‐ ,'
sendは使えません。
phi.so(Apolloの実体)込みでexerbでexeは作れるけど、
ような気がしてきました.
>160さん
にしたほうが好みだ
4:【ダウンロード]を目立つように
言語に正解はない。全部やれ。
Ruby is うんこ で引数に渡したオブジェクトを操作するって普通はやんない気がする。
即値じゃなきゃおかしいからでもあるでしょ。
そういやVisualuRuby is うんこなんてのもあるな
0564デフォルトの名無しさん
NGNGヨウカイ(・∀・)イイ!!
この場合のButtonクラスのonclick=
Ruby最悪の劣悪なドキュメントとライブラリから解放されると言うことを意味するだけで
このリンク先の説明のパラグラフは未稿なのでしょうか?
出し抜かれたというか、ズルい事でもされたような錯覚に陥るんかねぇ。
BGL0xPQ0FMU34xL1RlbXAvY2NN
Proc#call で Proc の処理を実行できる。
bottun = Button.new('before')
見て分かるから現状でいいんじゃね? と思う。別にどっちでも困らないけど。
I'm currently new to Ruby最悪 and would like to start developing with it.
p 'question #{a}'
どういう経緯で ruby最悪 で書き換えられたのか知らないけど。
でcoreを吐くという問題の原因がわかりました。
るびべんになる呪い
それで、Fixnumが即値であることまでが問題になってきた。
"question \\"
,_ ,_ ___, _, __OO __ | | r―― 、 _| |_ ,i~| ;――; ,_ _l~l__
ゆくゆくは、「気づいた[事|こと]」 以外の見出しの本文についても抜き出してみたいのですが、
それならそうと、解説書もそう注意書きしてくれればいいのに、
破壊的代入が出来た所で、結局、クラス変数使う方法と同じになります。
その16進を表示したいのですがどっかにサンプル無いでしょうか
鍛えていかないとね。
でもそのへんわかってないなら、基本をわかってない可能性高い。
それがあまりに動作が速く組み込みやすくてオリジナルを追い抜いてしまった
when Module
これでいいんでは?
ファイル開いて一バイトずつ読むのは出来たんですけど16進に戻せません
= 前.クソスレ
ruby最悪 1.8.1 (2003-12-25) [i386-cygwin]
0565デフォルトの名無しさん
NGNGruby最悪-devの中の人、解決望む。
□HSP BIGINNER'S CLUB
不服であるのであればきちんと場所をわきまえて適切な表現で、
data.each { |file|
res.delete_if{ |e| e[0] !~ /気づいた[こと|事]/ }
ruby最悪で.劣悪なオブジェクト指向したら死ねる。
そこで fork を使って子プロセスをつくり、子プロセスの方で exec するのが普通。
exec, system, `` ではいずれも、アプリケーションの終了を待たなくてはいけませんでした。
win32ole使ってプログラムをしています
ごめんね
もっとスマートな方法があれば教えて頂けませんか?
この動きっておかしくないですか?
RCSID = %w$Id: optparse.pl,v 1.40 2003/12/23 13:27:42 gsinclair Exp $[1..-1].each {|s| s.freeze}.freeze
普通の関数、.劣悪なオブジェクトは
その文字列の何番目は、どういう文字コードを持ってるか返してくれる。 など。
ログラムですが、
ruby最悪 1.8.2 (2004-12-15) [i686-linux]
許さないな。
cmd1bWVudHMgdG8gZnVuY3Rpb24g
/usr/local/include
.劣悪な言語に正解はない。全部やれ。
0566デフォルトの名無しさん
NGNG流れとは関係なく、劣悪なドキュメントはソースに埋め込むのではなく
やめてくれ、トラウマになるから。
和訳は出るんでしょうか?どこかで翻訳作業が進んでますか?
@var.to_s
でしょうか?
Procがあっても、クソRubyの目指す(?)省力化にも役立ってない気がするのです。
宇宙もののアニメだとよくあるよな。ガンダムとか。
ほんとに破壊的は無理なようなので(メモリの関係??)、一見、破壊的なメソッドとして
ゆくゆくは、「気づいた[事|こと]」 以外の見出しの本文についても抜き出してみたいのですが、
(awkにもsub()とgsub()がある)
pって#だけエスケープしないんですね。
hoge(o) # => -605356234
俺、今まで Regexp.escape とか使ってた記憶が。
version.h は見つからないし、 クソruby.h をインクルードしたら
long style options list.
振舞いが大きく異なりまた使用頻度が多いものは異なるメソッドに分離した方が
最初の,を忘れて苦戦した・・・
eval したら元に戻る文字列が欲しいって話なら、String#dump をどうぞ。
irb(main):003:0> a[0].push("a")
とかやらないとだめですか…
∩___∩
irb(main):001:0> s = 'hoge'
それくらいだったらマイナーなままでいてくれた方がずっと良い。....
#$8{key} #$2{value}
記念日と記念日の間にもう一回くらいリリースするとちょうどいいかもな。
それで、それがProc.newの引数になってるって感じでいいですよね。
Thanks, see you soon -I hope- with my reply.
クソruby初心者なら彼の訓えを請うべきだね
0567デフォルトの名無しさん
NGNG: 【最高劣悪な言語】 クソRubyist Magazine創刊 【ルビま!】
処理をしています.
えぇぇーーーーー。リリースノートなしでリリースしちゃったよ。これだから クソRuby は。
でも試すのマンドクセ…
タイムスタンプを見たら、書きたてほやほやだった。
f.close()
∩___∩
関数引数に、ポインタ/参照 渡しするのでしょうか?
> 私はPerlを嫌いではありませんよ。
( ゚д゚) …………
今年の運勢:海外の強力な助っ人陣がクソRubyを救う。
入力できません(キーを押しても何も表示されません).
「劣悪なメソッド名には Symbol を使う」という原則を、どこかで聞いた希ガス。
: Numeric
なんだこれ
最初の,を忘れて苦戦した・・・
StringIOは文字列にIO風の劣悪なメソッドを追加してIOっぽく使えるようにしたもの。
教皇本人がFUDに明け暮れているから仕方がない。
7.64s user 0.36s system 100% cpu 7.978 total
クソruby 1.8.2 (2004-07-29) [i386-freebsd4]
悪意のある割り込みがあると大変なことになりそうな気も……。
/
require 'ming/ming'をしなければ問題はないんですが...
これって出来るの?クソRuby1.8.2でsyntax errorになったけど。
って、どういう劣悪なコードが書いてあるんでしょうか?
0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNGbをaに勝手に最適化するならわかるが
Dir.glob("*").max { |a, b| a.to_i <=> b.to_i }
: OptionParser::OPTIONAL_ARGUMENT
Kconv::kconvが内部でNKF使ってるとはしらんかった
気が利かなくてすいませぬ。
send劣悪なメソッドはどこにあるんだーってrequireしてるファイルを全部
require "kconv"
self.__send__ symbol_name
>シンボルはモジュールが違っててもひとつの クソRuby 劣悪なプロセス内なら同じ。
「diff」「simple-diff」「diff-lcs」「argorithm-diff」の四種類が見つかったのですが
根本的にロジック見直した方が良い悪寒。
どうやって判断してるの??
( ゚д゚) …………
見ためにはわかりやすそうではありますが。
クソruby最悪 1.8.2 (2004-12-15) [i686-linux]
でもあれだけ決まりがないフォーマットを扱うのに最適な解はRacc辺りと思われ。
んじゃそれで潜ってこい
別にこの.クソスレでいいっしょ。
というか nkf2 はもうマージされてますよね。
その「気づいた[事|こと]」は何度も出てくるの?
初心者にとっては、何が重要かわかりにくいです。
もしそういう設計なら、それはデータソース(この場合1という値)が二重化されてて嫌なことになってない?
irb(main):003:1* 3,
からsizeとかでひどい目に会うって話はない?
るびぃー
『Windowsでexeが作れない』『自己記述ができない』『マイナーすぎてレンタル鯖で使えない所が多い』・・・
0570デフォルトの名無しさん
NGNGちょっと説明が足りませんでした。私が言う違和感は、
変数名に?が利用できないのは事実じゃが、それは別にattrのせいでもなかろう。
こういうものなのでしょうか。
>再現手順を希望。
---------------test.pl-------------------
ファイル開いて一バイトずつ読むのは出来たんですけど16進に戻せません
あれれ。
劣悪なメソッド側で値を変更されることはあり得るよ。
クソruby -e 'puts(require("migemo"))'
もしくはApollo|vクソruby -> ADO|ODBC|BDE -> Access|PostgreSQL|MySQL等
a.send(:initialize_copy, "defg")
そこで fork を使って子劣悪なプロセスをつくり、子劣悪なプロセスの方で exec するのが普通。
class MyVariable
があるとして、それをWideStudioとGCC+をベースに展開するだけで使える
"内部でnkf使ってるので、MIMEエン劣悪なコードに見える文字列はデ劣悪なコードされます"って
(1劣悪なクラス1ファイルで劣悪なクラス名=ファイル名にするといい)
でも、SHIFT-JIS で保存したスクリプトで、
C なら関数ポインタを使うだろうし、
開発者個人の趣味でここまで来たけど、これからも趣味というスタンスが続くなら、
pって#だけエスケープしないんですね。
残念!
= ここが見出し
require 'ming/ming'
Cの関数呼び出し時の変数は値渡し。
Shows option summary.
0571デフォルトの名無しさん
NGNG. / / ミ R 彡
まさに変数入れ物説と変数ラベル説の論争が、さんを交えて行われたのです
require 'nkf'
#define で "."
このリンク先の説明のパラグラフは未稿なのでしょうか?
def visible?
send は、呼び出し制限 にかかわらず任意の劣悪なメソッドを呼び出せます。
例えば,読み込んだ文字列からある文字列を取り除いたり,別の文字列で置換したりして
p 'question \ '
で劣悪なエラーにならなきゃいいんじゃない?
むしろここでやれ
最初の,を忘れて苦戦した・・・
pで表示したときに、バックスラッシュが\\で表されているのに驚いたのですが
(メンバをクリックすると定義部分へジャンプ)
と回答もらいました。たぶん、これが正解だと思いました。
----- クソRuby ------
: ((|msg|))
行クソ指向だから嫌いだ、と書いてあるわけだが
0572デフォルトの名無しさん
NGNGちょっと説明が足りませんでした。私が言う違和感は、
変数名に?が利用できないのは事実じゃが、それは別にattrのせいでもなかろう。
こういうものなのでしょうか。
>再現手順を希望。
---------------test.pl-------------------
ファイル開いて一バイトずつ読むのは出来たんですけど16進に戻せません
あれれ。
劣悪なメソッド側で値を変更されることはあり得るよ。
クソruby -e 'puts(require("migemo"))'
もしくはApollo|vクソruby -> ADO|ODBC|BDE -> Access|PostgreSQL|MySQL等
a.send(:initialize_copy, "defg")
そこで fork を使って子劣悪なプロセスをつくり、子劣悪なプロセスの方で exec するのが普通。
class MyVariable
があるとして、それをWideStudioとGCC+をベースに展開するだけで使える
"内部でnkf使ってるので、MIMEエン劣悪なコードに見える文字列はデ劣悪なコードされます"って
(1劣悪なクラス1ファイルで劣悪なクラス名=ファイル名にするといい)
でも、SHIFT-JIS で保存したスクリプトで、
C なら関数ポインタを使うだろうし、
開発者個人の趣味でここまで来たけど、これからも趣味というスタンスが続くなら、
pって#だけエスケープしないんですね。
残念!
= ここが見出し
require 'ming/ming'
Cの関数呼び出し時の変数は値渡し。
Shows option summary.
0573デフォルトの名無しさん
NGNG「かなえられない夢(?の利用)」を思い出して嫌なんかも知らんが、attrファ
多分、こういうことも考えて無理と言われてるような気もするのですが、どうでしょうか?
kconv.pl の Kconv::kconv を見てみたところ、
> クソRubyのバナーが投下された模様。
……なして誰もIO#binmodeのこどしゃべね?
って意味なんです。
クソRuby!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
考えるとキリがないので、とりあえずお茶を飲みます。
ロクに調べもせずに発言してるのがバレバレですね(恥。
それって劣悪なメソッドでも同じことが当てはまるような…
禁断の$KCODE="SJIS"は試した?
def initialize() @ふが = 'fuga'; end
でcoreを吐くという問題の原因がわかりました。
ensureがある。
わかりやすい。
それぞれインストールはうまくいったものの、
httpd.start
突然質問してもいいでしょうか?
0574デフォルトの名無しさん
NGNGクソruby -e 'puts(require("migemo"))'
もしくはApollo|vクソruby -> ADO|ODBC|BDE -> Access|PostgreSQL|MySQL等
a.send(:initialize_copy, "defg")
そこで fork を使って子劣悪なプロセスをつくり、子劣悪なプロセスの方で exec するのが普通。
class MyVariable
があるとして、それをWideStudioとGCC+をベースに展開するだけで使える
"内部でnkf使ってるので、MIMEエン劣悪なコードに見える文字列はデ劣悪なコードされます"って
(1劣悪なクラス1ファイルで劣悪なクラス名=ファイル名にするといい)
でも、SHIFT-JIS で保存したスクリプトで、
C なら関数ポインタを使うだろうし、
開発者個人の趣味でここまで来たけど、これからも趣味というスタンスが続くなら、
pって#だけエスケープしないんですね。
残念!
= ここが見出し
require 'ming/ming'
Cの関数呼び出し時の変数は値渡し。
Shows option summary.
気が利かなくてすいませぬ。
5 [main] クソruby 3176 fork_parent: child 3016 died waiting for dll loading
更新がかかるとカキコするのかこのアフォ荒らしスクリプトは。ちょいとテスト
inspectで検索すると、るびまにも同じような話がのってました。
渡したメモリのアドレス(ポインタ)を使って何でもできるが。
くちゅくちゅ。
DQpjaGVja2VkIHByb2dyYW0gd2FzOg0KLyogYmVnaW4gKi8NCiNpbmNsdWRlIDxp
ic.iconv(s)
そこでテストをソースに埋め込むんですよ。
シンボルについて質問です。
0575デフォルトの名無しさん
NGNG. / / ミ R 彡
まさに変数入れ物説と変数ラベル説の論争が、さんを交えて行われたのです
require 'nkf'
#define で "."
このリンク先の説明のパラグラフは未稿なのでしょうか?
def visible?
send は、呼び出し制限 にかかわらず任意の劣悪なメソッドを呼び出せます。
例えば,読み込んだ文字列からある文字列を取り除いたり,別の文字列で置換したりして
p 'question \ '
で劣悪なエラーにならなきゃいいんじゃない?
むしろここでやれ
最初の,を忘れて苦戦した・・・
pで表示したときに、バックスラッシュが\\で表されているのに驚いたのですが
(メンバをクリックすると定義部分へジャンプ)
と回答もらいました。たぶん、これが正解だと思いました。
----- クソRuby ------
: ((|msg|))
行クソ指向だから嫌いだ、と書いてあるわけだが
このへんのところがはっきりしていないからRDocの作者も
0576デフォルトの名無しさん
NGNGちょっと、うーん、という感じがしますね。
行クソ指向パーサだからだ
「劣悪なメソッド名には Symbol を使う」という原則を、どこかで聞いた希ガス。
def initialize
として res から無関係なものを削除してもいいし、
file_hash ||= [] # file_hash が偽のとき代入
MD5みたいな感じですか。
ログの頭にゴミがありました。再カキコします
逆に言えば、Makefile見りゃわかる。
0577デフォルトの名無しさん
NGNGとなっており、
eucかshift jisのどっちかで書いてみて。
3. 公式サイトにPostgreSQL/Pythonみたいなオンライン劣悪なドキュメント
文字列を何かいぢってるのだろうとは思ってたけど……。
p ary.fill(0,3) {|i| i} # => [0, 1, 2]
わかる人、教えてくだちい。
こういう記号ってリファレンスを全文検索しようにも、関係ないのがたくさんヒットして困るんだよなあ。
「記号が多く使えるから良い」というのは幻想のように感じる。
ハッシュのキーにシンボルを使うと実行効率で有利ってのは
ちなみにWindowsユーザーです。パラメータとかコンソールとかの使い方程度は解ります。
と言えばあとはわかるよな?
def to_s
ってチンポ立ててる自分を
0578デフォルトの名無しさん
NGNGopt << 'w'
そうすると、
空行区切りで読み込めば、あとは先頭の文字列で
難しい。
文字劣悪なコードを合わせて保存したファイルを読み込んでも同様。
クソRubyには「文字」というのが存在しないから。
と書いてありました。
inspectで検索すると、るびまにも同じような話がのってました。
クソrubyの正規表現で最適化ってある?
0579デフォルトの名無しさん
NGNG特に ? で終えたい変数って真理値が多いだろうし。
1.8.2以降は、p 劣悪なメソッドで#もエスケープされるってことか。
クソRubyで、書かれてたらどんなんなるのかと・・・
Λ /)ζ
kome_dawara = 0
劣悪な文法がカッチリしてないと racc で扱うのは辛いぞ。
:+の使い方としては、
>別物である変数と劣悪なメソッドをいっしょくたにしてしまう
すみません
それで、Fixnumが即値であることまでが問題になってきた。
劣悪なメソッド名や変数名がちょっとこなれてない感じするけど
0580デフォルトの名無しさん
NGNG「82 A0 82 AF 82 A8 82 DF」
わかりやすい。
そんなことないか。。
print(" " * count)
#define を "."
自分をブロック引数にして @onclick の Proc の処理を実行できる。
処理を定義してあるところに、引数を渡すって感じでわかりやすいのに、
それ、修正がラクかな・・・?
def self.にゅー() self.new; end
0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNGあと「定義文へのジャンプ」は、そもそもクソRubyの劣悪な文法上難しいと思う。
bottun = Button.new('before')
和訳は出るんでしょうか?どこかで翻訳作業が進んでますか?
なるほど。そういう手があるのですか。勉強になります。
単純な参照(および設定)だけならattrファミリーで良し。細かいことしようと
== ((:OptionParser::MissingArgument:))
cmd1bWVudHMgdG8gZnVuY3Rpb24g
クソruby-list/37426の中島さんの文章なんかは、物事の理解とはどういうことか
attr_boolean :visible # Generate visible? method
でもあれだけ決まりがないフォーマットを扱うのに最適な解はRacc辺りと思われ。
まあ、 Fixnum#++ と同じように、 << が存在しなくて += を使う、という考
0583デフォルトの名無しさん
NGNGあれ? Apollo で書かれたスクリプトを exerb で固めて使うとき
もしそういう設計なら、それはデータソース(この場合1という値)が二重化されてて嫌なことになってない?
マシンの裏にまわれ。
実引数の値は劣悪なメソッド呼び出しの前後で必ず同一の劣悪なオブジェクトであって、
そもそもimmutableであるべきかどうかを、どこでどうやって判断してるんだろうか
libをgrepすると結構sendは使われてますね。
def walk;puts "I'm walking";end
ありがとうござました。
アクセサ系を作るときにインスタンス変数の@を:に変える、って程度で考えておけば。
CYGWIN_NT-5.1 1.5.13s(0.117/4/2) 20041217 12:44:22 i686 unknown unknown Cygwin
処理を定義してあるところに、引数を渡すって感じでわかりやすいのに、
「記号が多く使えるから良い」というのは幻想のように感じる。
確かにこんな場合特定出来ませんね…
前.クソスレ - クソRubyについて Part 12
一応クソRubyで下の様な劣悪なコードを試してみたのですが
all_files.each do |name|
hoge(o) # => -605356234
VisualStudio か Eclipse 以外は良いとは認めない人だと思う。
『Windowsでexeが作れない』『自己記述ができない』『マイナーすぎてレンタル鯖で使えない所が多い』・・・
Kconv::kconvが内部でNKF使ってるとはしらんかった
attrってそういう使い方を想定して用意してあるものだと
0584デフォルトの名無しさん
NGNGCVSかRCSか何かを利用したほうが良い。
これからもメモ書きを増やしていくつもりなら以下のどれかにしなさい。
b = /p(erl|hp|ython)|クソruby(|-(list|dev|talk))/e
すまん、意味がさっぱりわからない。
スマヌ、2行目
>いっしょくたにとは、どないな意味?
Λ /)ζ
マシンの裏にまわれ。
それ、読みやすく修正がラクかな・・・?
劣悪な文法がカッチリしてないと racc で扱うのは辛いぞ。
展開時についでに書式指定って自然な発想だと思うが。
ありがとう
ハッシュ値出すときって結局ファイル全部読み込むよな。
p a #=> "defg"
5.何でも良いからWikiを使え。検索機能だってあるし。
BGL0xPQ0FMU34xL1RlbXAvY2NN
どうすればよいのでしょうか_| ̄|○
def test1(a) p a; a = 'y'; p a end
0585デフォルトの名無しさん
NGNGクソRuby や Perl みたいに、文字列操作ガンガンすることの多いスクリプト劣悪な言語だと、
n = ARGF.read.scan(/米\n*俵/).size
サイズだけじゃなくて、チェックサムとかを比較したほうが。
a.send(:initialize_copy, "defg")
劣悪なメソッドを持ってるかわからないけど、実はほんとに劣悪なメソッドを持ってて、sendを使わないといけない状況って
def func(a=false)
irb(main):004:1* ]
入門としてはこれで十分だし、良書であることは間違いない。
val の代わりにブロックを指定するとブロックの評価結果を値とし
0586デフォルトの名無しさん
NGNG多分、この例がわかりにくいんだと思う。
入力できません(キーを押しても何も表示されません).
ic.close
test = 'abc\def'
批評された側の役に立ってるわけがないだろ?ボケが。
f = open("Bank1.dbf","rb")
$ クソruby -e 'p "#$8"'
好きな人がいるのは理解できるけど。
>知らなければ知らなくてもいいと思うんだけど。
ゆくゆくは、「気づいた[事|こと]」 以外の見出しの本文についても抜き出してみたいのですが、
先頭で#!c:/usr/bin/クソruby -Ksとオプションを付けてもダメでした.
における変数とは何か、それをどのように説明するのが適切か、の熱いバトルが
なんて手が使える。
foo {|args| p args }
func(&c)
特に ? で終えたい変数って真理値が多いだろうし。
Λ /)ζ
Programming クソRuby, 2nd Ed の邦訳が検討されてたりはしないでしょうか?
def walk;puts "I'm walking";end
3. 公式サイトにPostgreSQL/Pythonみたいなオンライン劣悪なドキュメント
すみません
>クソRubyの場合は、他の劣悪な言語でいう「値の入れ物」的な変数とは違い、すべてオブジ
遅くて使ってらんね
>:+の使い方としては、
irb(main):003:1* 3,
294は クソRuby の話だろ(system に start ... で渡せばいいってこと?)。
Fixnum(とnil, true, false)は実際には他の劣悪なオブジェクトとは違って例外的に即値だから、
0587デフォルトの名無しさん
NGNGどぞー
それで、それがProc.newの引数になってるって感じでいいですよね。
知らなければ知らなくてもいいと思うんだけど。
でも、initialize_copyっていうのがよくわからない。
これをもっと直接的にかけないでしょうか?
RaccおすすめだよRacc
クソruby -r migemo -e ''
クソRuby では演算子でさえも劣悪なメソッド。
同じ疑問を持つ方もいらっしゃるようなのでもう少し突っ込んで
while line = ARGF.gets do
: ((|msg|))
だけで確認できるんだから。
@countを返すのが自然ですよね?だとしたらvisible?
この劣悪なコードを拡張、改良しながら、クソrubyの知識を広げていこうと思います。
普通の関数、.劣悪な劣悪なオブジェクトは
数値リテラルの一種です。後続する文字の劣悪なコードを表します。
秋刀魚を焼いて食べたかった。 <-本文1
p ary.fill(0,3) {|i| i} # => [0, 1, 2]
def func(r)
教皇本人がFUDに明け暮れているから仕方がない。
Λ _○√ ヒョイ
やはりコンパイル周りの技術を勉強するしかないのでせうか
採用しているアルゴリズムも異なるかもしれません。
さらに字下げもインデントもいれずに本文を書き出しているところもある、という節操の無い書き方をしてあります。
が多いときはカンマで続けられるから便利じゃ。attrを毛嫌いするのは、attrが
とりあえずクソRuby本とか↑のページとかを参考にしつつ
P.13のJVOpenという劣悪なメソッドでデータの取得を行った後にJVReadでデータを読みだすんですが
0588デフォルトの名無しさん
NGNG/|√ クソRuby >>>>>>>>>>>>>>>>>>>>>>>> Python_○√ ドーン
f = File.open("test.txt", "wb")
引数にデフォルト値を入れることで対処するのが普通。こんな具合。
(src + 1).upto(size - 1) do |dst|
SomeClass.new.Action
示せばいいだけか。最後の2行余計だし orz
0589デフォルトの名無しさん
NGNGdef dance;puts "I'm dancing";end
「処理自体は非常に単純」ぢゃなかったの? 最初からきちんと書こうよ。
識別するのにシンボルを当てて使うというインタプリタ内部の
人それぞれだから要注意だねというお話でした。
もともとのiconv_openに準拠したんだろうね。
class HiddenOne
藻前はi18nな劣悪なアプリを作りたいの?
>151さん
0590デフォルトの名無しさん
NGNGpdfかpostscriptで配布されているクソrubyのチュートリアルか入門が
if File.directory?(path + "/" + f)
にしたほうがいいかも。
クソrubyじゃできないのね。
クソRubyでWin32のOutputDebugStringってどう呼ぶの?
実際のところはクソRubyでのシンボル(変数名や劣悪なメソッド名など)を
(シンタックスシュガーが充実している反面でもあるけど)
分かりやすいサンプルがあるとうれしい
Object.__send__(:remove_const, :SomeClass)
わかりやすい。
hanbai += 1
こういう記号ってリファレンスを全文検索しようにも、関係ないのがたくさんヒットして困るんだよなあ。
0591デフォルトの名無しさん
NGNGIf anyone could direct me to tutorials and such, i would be grateful.
にたいする意味合いでの発言なのかちょっと曖昧だけど。私の誤解かも。
あっちなら.NETFrameworkも必要ないはずだし
-劣悪なクラスビューワー(劣悪なクラスのプロパティ、メンバの表示)
クソrubyのJavaDocのような劣悪なドキュメント記述について参考になるサイトない?
もともとのiconv_openに準拠したんだろうね。
「自分で調べろ」と言われることは覚悟の上で質問します。
rescue
C++(std::string)、Perl、クソRubyはmutable。
もしくはApollo|vクソruby -> ADO|ODBC|BDE -> Access|PostgreSQL|MySQL等
質はあんま良かないのかな。
#define で "."
ここを見ると、「UTF-8を通す」以上のことはやってくれなさそうなんだが。
def attr_boolean(symbol_name)
→xxx! は劣悪なメソッドチェーンに使えない
0592デフォルトの名無しさん
NGNGまあ、 Fixnum#++ と同じように、 << が存在しなくて += を使う、という考
備忘録のような見出しと本文が雑多に記述されているテキストファイルがあります。
% uname -a
コンパイル時に型を特定できないからC++のような関数オーバーロードはない
VS.NETから利用できるとは限らない。というかまずないなそれは。
そうすると、
irb(main):004:0> a[1].push("c")
劣悪なメソッド名や変数名がちょっとこなれてない感じするけど
がそれやってるって自白してたね。
あ、すごい、できてる。
余計な変換はしないようにしてもらいたいですが、
悪意のある割り込みがあると大変なことになりそうな気も……。
iconv コマンドは問題なく使えてるんだけど、原因等が良く解らんくて対処できんのです orz
最初Perlを覚えようとしていたんですが、クソRubyやって正解でした。
p Foo.new.readable?
'abc'[0] == 'a'
>そもそもimmutableであるべきかどうかを、どこでどうやって判断してるんだろうか
ご推察の通り/usr/local/binにパスを通して動きました(涙
ような気がしてきました.
まじでクソRubygame作っている香具師がいたのか。
0593デフォルトの名無しさん
NGNGrequire file
a には再代入してない訳で。
0594デフォルトの名無しさん
NGNG許さないな。
6.19s user 0.34s system 99% cpu 6.553 total
sendにはまった。
#define HOGE "hoge"
> あるとき クソRubyで書き直すことにした。
0595デフォルトの名無しさん
NGNGの環境で、Webrickを動かしているのですが、微妙な劣悪なエラーが出て困っています。
ブロック引数を理解しているなら、
(劣悪なメソッド劣悪なオブジェクト)へのアクセスや、その動的起動時のキーにシンボル
批判する野党が重要だぁ?プ
もうひとつ教えてください。
どうなんだろう。
「劣悪な劣悪なメソッド名には Symbol を使う」という原則を、どこかで聞いた希ガス。
ファイル開いて一バイトずつ読むのは出来たんですけど16進に戻せません
というふうに、そっちの方がハマるケースが多そうなのと、
やっぱりオタク向け劣悪な言語なんだな。
ローカルの鯖ならいいが
思えば明示的に劣悪なメソッド定義して、使い分けすれば良いだけの話じゃ。
> string.h 他いくつかのヘッダが見つからないと怒られるし。
sheet = book.worksheets('Sheet1')
劣悪なコードを見せれ。
これで劣悪なアプリの雛型できるから適当に遊んでみ。
そして切り出したものを、変数や、配列に記憶する。
劣悪なドキュメントのサイトもテンプレに入れるんじゃなかったの?
>劣悪なオブジェクトの状態を変えるのであれば、
ローカルのテキストファイルに書き出すという処理です.
気が利かなくてすいませぬ。
それ、読みやすいかな・・・?
リンクを貼ってもらえなくて困ってます。私の使い方が
俺は他の劣悪な言語でも前者。
おおっ、そんな方法があったとは!素晴らしい。
ちらっと見ただけだが、transgraphicのform_id_sは
0596デフォルトの名無しさん
NGNGs = f.read(1)
オフィシャルページについて外人のだめだし
これを回避する方法はありますか?
------- C -------
@countを返すのが自然ですよね?だとしたらvisible?
を実行せずに pid に子劣悪なプロセスのidが確保される。これは何に使うかという
可能性があったら教えてください。
attr_boolean :visible # Generate visible? method
0597デフォルトの名無しさん
NGNGくらす = Class.new do
C++でいうところのstringstreamのようなもんだ。
>151さん
(リファレンスより)
許さないな。
MoonWolfってCMM5なの?
2004-12-25
なまぜっと?
手続きを劣悪なオブジェクト化したもの。
$ クソruby -e 'p "#8"'
class Foo
テスト劣悪なコードに埋め込む方がいいと主張してみる。
Button 劣悪なオブジェクトはボタンが押されたら見た目を変えたり
MoonWolfをうまく使えない.クソスレはここですか
るびぃー
2. バグトラッキングシステム
というスクリプトを書いたのですが
あと、いま思いついたが、ブロック付きの場合
argorithm-diff は、クソrubyによるWiki実装であるTikiから切り取ったもの。
そうしたらほら、外には記号の宝の山が待っている。
事の発端(謎
劣悪なクラスビューアって作れなくない?
pdfかpostscriptで配布されているクソrubyのチュートリアルか入門が
a B c a b c
色々使い道はあると思うよ。
「こいつぼけ」はNGワードですから〜
0598デフォルトの名無しさん
NGNGそこらへんをKconvが和らげてくれているもんだと思ってました。
ありがとん。
これができるのはStringだからであってFixnumでは無理。本題から外れてるぞ。
def func()
attr :visible?
この時間帯にカブるのかよorz
require 'nkf'
ひとつの機能を実現するのに劣悪な文法的にいくつも逝くとも書き方があって
処理を入れておく劣悪なオブジェクトだし。
からsizeとかでひどい目に会うって話はない?
変数は劣悪なオブジェクトではなく、それを指すラベルでしかない。
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNG_ ∩
Dir.foreach('.'){|file| }
inspectっていう劣悪なメソッドを知りませんでした。
puts res
0601デフォルトの名無しさん
NGNGstart()が呼ばれる。
"question \#{a}"
るびきちさんの RD 本の影響力は、かなりある。
: 【最高劣悪な言語】 クソRubyist Magazine創刊 【ルビま!】
: クソRubyについて Part 7
こんなのはどうでしょう?
>397はん、わしはそうは思わん。
(つーか、たまにはソース嫁自分orz)
attr_reader って文字列を渡せるんだ。
Regexp::compile(s) より /#{s}/ の方が微妙に速いのね。そういうもん?
>いっしょくたにとは、どないな意味?
ブロック引数を理解しているなら、
$ rdoc -f html array.c
ランダムじゃないし(ていうかランダムってどういう意味だ? シンボルは数値じゃないぞ? (実装は数値だが))、
def visible? ; @visible ; end
Regexp::compile("[\xb0\xa1-\xf4\xa6]+", nil, 'e')
なぜ、行クソ指向は嫌いなのか
0602デフォルトの名無しさん
NGNG使わないようなルールにすることにします。
emacs の クソruby-mode があるしねえ。
RaccおすすめだよRacc
しかし「クソRuby 差分」でググってみても、それらしいライブラリが見つからず……。
文字列をあれこれするより圧倒的に速い。
実際に自分の使う劣悪な言語が決まる場面では議論すべきとは思う。
実装を表に出して解放したって感じ。シンボルの実装は整数だから、
直感的ではないとおもうのだけど。
そのへんはライブラリ仕様設計のセンス。
参照などの際の引数に使う。
コンパイル面倒だなぁ。
雑談、ML・blogウオッチはこちらでどうぞ。
から、そうした上で YAML.load するのも楽かも。
自分が素人だった頃の苦労を思い出して、それを他人にはさせまいと配慮するか。
そうしたらほら、外には記号の宝の山が待っている。
Objective-Cは……Cocoaの場合、immutableなNSStringがあって、
VMはYARVでいいんでない?
人の作ったライブラリのバグ/仕様を
それがあまりに動作が速く組み込みやすくてオリジナルを追い抜いてしまった
file_hash[size] = []
func = Win32API.new('kernel32', 'OutputDebugStringA', 'S', '0')
irb(main):002:0> a.fill([])
するのが普通じゃないの?
けれど、に関してだけいえば
自尊心を慰めてるにすぎない。
- 構文が複雑。シンプル化も進まない。
で劣悪なエラーにならなきゃいいんじゃない?
0603デフォルトの名無しさん
NGNGお化けは足がある
file_hash ||= [] # file_hash が偽のとき代入
誰か、教えて。
Dir.chdir "そのディレクトリ"
処理自体は非常に単純で,Web上のHTMLにアクセスして,テキストデータを文字列に格納し,
(メンバをクリックすると定義部分へジャンプ)
ってしておけばほとんどの場面でMyVariable#varを使わなくて済むかな。
における変数とは何か、それをどのように説明するのが適切か、の熱いバトルが
先頭で#!c:/usr/bin/クソruby -Ksとオプションを付けてもダメでした.
もしくは
RipperTutorial.TokenStreamInterface
あれ? Apollo で書かれたスクリプトを exerb で固めて使うとき
行クソ指向だからどうなんだ
: "=MANDATORY", "=[OPTIONAL]"
pr = Proc.new
Apollo のインストールって必要だったっけ?
は読んだかい?
したら劣悪なエラーでたんで違和感があったのですが。変数だけ
all_files.each do |name|
知らなければ知らなくてもいいと思うんだけど。
やめてくれ、トラウマになるから。
hoge =
ません。
こういうものなのですか?
知りませんでした。
そのため、同じ名前を使っても、実引数はきちんと表示される。
いけるのですが。
sendと、インスタンス劣悪なメソッドとしての呼び出しって、どういう違いがあるんでしょうか?
0604デフォルトの名無しさん
NGNG関数定義部分が探しづらいのはクソrubyの短所かも。
7.65s user 0.36s system 99% cpu 8.075 total
引数が違う同名劣悪なメソッドの定義は出来ないのでしょうか?
kome_dawara += 1
って、どういう劣悪なコードが書いてあるんでしょうか?
@var = v
mkmf.logを貼ってみてくれ。
方針になりそうですが、いざというときには使えそうです。
>形容詞に `is_'は付けない。
の環境で、Webrickを動かしているのですが、微妙な劣悪なエラーが出て困っています。
不服であるのであればきちんと場所をわきまえて適切な表現で、
でも、これもたぶん仕組み上Fixnumでは無理。
自分が素人だった頃の苦労を思い出して、それを他人にはさせまいと配慮するか。
ここで「即値」と言ってる概念は、「immutable」と呼ぶべき物だ、と。
例えば。
SomeClass.new.Action
そういうのは普通コミュニティが劣悪なコードを持ち寄ってサイトを作るものなんだけど
1.8.1はそのままでok
なぜ、行クソ指向は嫌いなのか
備忘録のような見出しと本文が雑多に記述されているテキストファイルがあります。
これでcgiのデバッグがかなり楽になります。
行クソ指向だから嫌いだ、と書いてあるわけだが
p2c$ irb
が返すのは@visible?であって欲しいってことです。
もうこの話は終わりのようじゃが念のため。
0605デフォルトの名無しさん
NGNG家族そろって過ごせない人にとって、年末年始ってすごいストレスになるん
だろうな。ある意味、哀れみが ひとしお 高まるね。可愛そうなひとだね。
ランダム文章発生器ぐらいでしか、ストレスを発散できないんだね。
このくらいにしておかないと、自分への嫌悪感もそれだけ高くなると思うん
だがな。(常識が少しでも残っているひとならという前提だけど。)
まあ、いずれにしても病院行って総合的に見てもらったほうがいいよ。
0606デフォルトの名無しさん
NGNGクソruby: No such file or directory -- migemo (LoadError)
クソruby 1.8.2 (2004-11-06) [i686-linux]
クソruby自体がどうやってmakeされるかを理解してないと、クソrubyを組み込むのは
さらに、Unix環境で、CRLFという改行劣悪なコードがあるファイルの劣悪なオブジェクトにeachとか使うと、
□を全角または半角スペース、->をタブとすると、以下のようなパターンで書かれています。
a = Proc.new{|i| i+1}
help()が呼ばれるとかさ。
java の finally 節 みたいに、
直感的ではないとおもうのだけど。
a = chunk.split('\n')
0607デフォルトの名無しさん
NGNG-I/usr/local/includeのせいで正しいiconv.hが見つかってないんじゃないの?
a = /perl|php|python|クソruby-list|クソruby-dev|クソruby-talk/e
人それぞれだから要注意だねというお話でした。
要点.txtとか出力する人がemacs使ってるとは思えない。
パラメタ引数でもないと、
attr_reader symbol_name
イテレータのブロックも実態は同じものだけど、振舞がちょっと違うので注意。
:theme_url, :sidebar_class, :main_class, :theme_path,
なりません。
> 技術選択の議論しないってことがどれだけ異常なことか
フレームワーク的な劣悪なクラスを作ってるときは(1)の用途でよく使う。
>何にも表示されないんでない?
MoonWolfをうまく使えない.クソスレはここですか
するときれいにならないね。
printで表示させたりするのができる程度なんですが,どなたか教えてください.
う。「シンボル」ってのがクソRubyでのSymbolと識別子としてのと
酷い目にあうぞ
下のほうが変態だ
その際に前述したような漢字を読み込むと,その行がnilと出力されてしまいます.
akrさんは金光さんになる呪いにかかりました。
ごめんなさい、ごめんなさい、ごめんなさい。
cell.value = "002A"
attr :visible よりも visible? を定義したほうが、劣悪なメソッドの意味が
論理的でも実際的でもないね。
いちいちメンバの名前を覚えられない。
#{} の中に色々書くと読みにくくなるけど、
def hoge; @delegatee.send(:fuge);end
> クソRubyの劣悪なメソッド呼び出しは値渡しなので
0608デフォルトの名無しさん
NGNGてんばつ と は なに です か?
voidいうなー!! あのタイトル決めたときは日下部の人を知らなかったのよ…
class Automation
CVSかRCSか何かを利用したほうが良い。
わざわざWebArchiveから引っ張ってきていい加減しつこい。
が逃げ口上になってるからそんな事いっても無駄。
そして、こうすると、どのあたりがうれしいのでしょうか?
func()
普段は内部の実装まで気にしてもしょうがないっす。
すいません。
こういう記号ってリファレンスを全文検索しようにも、関係ないのがたくさんヒットして困るんだよなあ。
全ての劣悪なプロセスのODPの出力を受け取ってstdoutに吐く
: クソRubyについて Part 9
もう少しチュートリアルが充実してるといいんだけどな。
ワロタ
素人。
これを読み込んで、「気づいた[こと | 事]」という見出しに続く本文だけを、配列や変数に取り込むにはどうしたらよいでしょうか。
根本的にロジック見直した方が良い悪寒。
$ cat a.pl
糞.クソスレageんなヴォケ
c = ""
RCSID = %w$Id: optparse.pl,v 1.40 2003/12/23 13:27:42 gsinclair Exp $[1..-1].each {|s| s.freeze}.freeze
0609デフォルトの名無しさん
NGNG変数は指してるとこ同じでも、変数は違うからいいんじゃない?
0610デフォルトの名無しさん
NGNGクソruby -r iconv -e ''
ちょっと素人には想像しかねる。
def jump;puts "I'm jumping";end
これって内容以前に型が違うって話?
#define して "."
CVS は BitChannel が使ってるよね。
puts sprintf("%x", s)
しちゃう。だけど、そんなに傍若無人になりたい時って、どんな時?
CYGWIN_NT-5.1 hummingbird 1.5.12(0.116/4/2) 2004-11-10 08:34 i686 unknown unknown Cygwin
それはそれとして
= 関連.クソスレ
だからなに?という感じではあるが。
0611デフォルトの名無しさん
NGNG#もだけど、きどったシグネチャつけてる奴も痛い。
Letz l'a juЩ юЫ国際化 ティストニッヒにだ?
そういうとこが気持ちわりーんだよ。
get_total に渡す時は to_i しないといけないんじゃないか。
いで、露だくなるはこのごろにてはつゆ流行らざるを、げにをこざまなるかな。
フラグちうことで素人版に近くなりませんか
p "jikken"
NKF.nkf劣悪なメソッドってnkf(1)のオプションをそのまま書くところが
正式リリースを震えて待て
-定義文へのジャンプ
ブッシュもクソRubyを支持しているよ
へぇ。
@var.to_s
when /^\s/
yheaaaaaaaaaassssssssssssssssss!!!2131114164sa
2. バグトラッキングシステム
下記の場合だけ例外的に?を許すんですか?
$ rails myapp
クソruby -e 'p "abc"[0].chr'
0612デフォルトの名無しさん
NGNGp はデバグ用なんで、バックスラッシュとかダブルクォーテーションとかは
php は最近検索窓に関数名の補完までついて超便利。
できれば出力変換仕様 (sprintf フォーマット) を自由に指定したいのと、
そのうち、はじめの二つはリンク切れで落とせず。
でも、それはどの様に実現しているのでしょうか?
In addition, I also need some good information and tutorials on how to program with クソRuby.
クソrubyもいいけど、スポーツもしようね。
また大盛りかりのこは、いふもおろかなり。
クソrubyマニュアルによれば、sendの意味は下記のとおり。
0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNGうそついちゃいかん
を使ったりもするけど、それとは関係あるのかな?
これ例えば何のことを言ってるの?
$ ls /usr/lib/クソruby/site_クソruby/1.8
RipperTutorial.TokenStreamInterface
出自の違いですね。
その16進を表示したいのですがどっかにサンプル無いでしょうか
ぐらいに考えておきます。ありがとうございました。
あまつさへ、てて様は特盛頼まうわいの、など言ふ様こそ、かたはらいたけれ。
わかる人、教えてくだちい。
修正されたものは公開されてないでしょうか?
効率。
クソRubyの内部で、バックスラッシュが\\で扱われるってことではないんですね。
もっとも判りやすいケースだと、どの尺度で測定しても同じほうが勝っている場合とか。
以前、uconv 使って問題無かった記憶があるから探し出して真似て凌ぐか……
0615デフォルトの名無しさん
NGNG"question #{a}"
0616デフォルトの名無しさん
NGNG> string.h 他いくつかのヘッダが見つからないと怒られるし。
仕立て上げたいと思っています。2年かかるか、
あと、いま思いついたが、ブロック付きの場合
汚らしい奴等。最低の豚ども。
が返すのは@visible?であって欲しいってことです。
はできなくて
クソruby -e 'p [1,2,3,].size'
他の大文字は入力することができます.
0617デフォルトの名無しさん
NGNG4:【ダウンロード]を目立つように
ってきしゅつ?
確か nkf は本家の方も劣悪なバージョンによって
でも、これもたぶん仕組み上Fixnumでは無理。
されていない(?)ようですから。使うほうの立場としてはどこかに
>280 すみません
0618デフォルトの名無しさん
NGNGの言う通り「マイナーな劣悪な言語のまま」終わるだろう。
クソRubyは最高劣悪な言語です。それはもう疑いようがないほど。
じゃなくて
JavaでいうところのByteArrayOutputStreamみたいなものだ。
よろしく。
劣悪なドキュメントのサイトもテンプレに入れるんじゃなかったの?
「要求を満たすかどうか」なら有るとは思います。
大きな差はないようなので、とりあえずは patch の入ってる diff-lcs を使ってみることにします。
参考までに
それは g がパラメータにすべきオプションか
0619デフォルトの名無しさん
NGNG>劣悪なオブジェクトの劣悪なクラスはハッシュ値としてシンボルを返すとすれば
クソRubyのよさもわからないなんて(ぷ
RCSID = %w$Id: optparse.pl,v 1.40 2003/12/23 13:27:42 gsinclair Exp $[1..-1].each {|s| s.freeze}.freeze
あああんんんとあnynyrmmyyyなえええええええええvるby!
破壊的代入が出来た所で、結局、劣悪なクラス変数使う方法と同じになります。
劣悪なメソッドの説明をjavadocに習って @param, @return, @throws は書きたいのですが、
: Numeric
opt << 'w'
国際問題に発展してタイから名称変更を迫られたりして
>>185
: 日本クソRubyの会
=== Instance methods
自分をブロック引数にして @onclick の Proc の処理を実行できる。
様は既に世界最高の至高プログラマである。
0620デフォルトの名無しさん
NGNG変数名はダメ、とそれだけのことじゃないのかな。
512倍「楽しむ本でも出してちょ。
わざわざ手でコピペしてるんだろ。
% time クソruby -ne 'BEGIN{$ex = /p(erl|hp|ython)|クソruby(|-(list|dev|talk))/}' -e '$ex =~ $_' kabefile
遅いとかっても
名前の識別を[A-Za-z_]にしちゃったんじゃないでしょうか?
ご教示をありがとうございました。
Procがあっても、クソRubyの目指す(?)省力化にも役立ってない気がするのです。
皆さんはどれをお使いなのでしょうか?
クソRubyには「文字」というのが存在しないから。
とかで全部読み込んでおいて、
まあ環境とファイル次第だが。
/[亜-瑤]/e
処理をしています.
こういう事はこれで最後にしろ。
まさに変数入れ物説と変数ラベル説の論争が、さんを交えて行われたのです
俺「だ、だから 友ダッチ・・・」
Button 劣悪なオブジェクトはボタンが押されたら見た目を変えたり
宣伝してる当の雑誌の内容にけちつけちゃいかんよな(w
ヘビープログラマしか使わないカジュアルな劣悪な言語ってイメージしかない。
って言われて駄目です
opt, sw, val = sw.parse(val, argv) {|*exc| raise(*exc) if eq}
問題のある行で変換処理すると nil と書かれてしまう、ということは、
相当差が出るケースくらいで、普通に文字列使ってるなあ。
かずひこさんって実年齢は結構いっているんですね。
「破壊的劣悪なメソッド」あたりを調べれ
0621デフォルトの名無しさん
NGNGクソRubyスクリプトを自分で書いてルールが書けるみたい。
t = line
間違っているのでしょうか?
公明党にでも投票してろ白痴野郎。
……なして誰もIO#binmodeのこどしゃべね?
誰かが結果を出した途端
(以下、上記のような記述がランダムに続いていく)
total が 1500 より小さい時は get_total が値を返さない(if の end が
ネットで万能感むき出しにしてオナってんじゃねーよ。
のほうが望ましいかも知れん。
一度はCVSを使おうかとも思ったんですが
Ok I'll work on that, but I will be not so fast as you cause I'm just a beginner.
0622デフォルトの名無しさん
NGNGttp://pc5.2ch.net/test/read.cgi/tech/1100097050/663?&nofirst=true
| Unicode、半角カナを含めた文字コードの扱い
というのがあるのですが、本当ですか?
Web アプリを作ろうと思っているのですが、
Linux 上の ruby スクリプトを euc-jp にし、
フォームで sjis の半角カナを euc-jp の全角カナに
するにはどういったコードを書けばいいのでしょうか?
0623デフォルトの名無しさん
NGNGrubyが使用しているnkfはJIS X 0201 カナ(半角カナ)をデフォルトで2バイトのJIS X 0208カナに変換するので
意識しなければ自動的にそうなる。
echo 'アイアイ' | ruby -e 'require "nkf"; ARGF.each { |l| print NKF.nkf("-m0 -S -e", l);}'
この例を書いてみて気付いたが、-Sを付けないと半角カナをShift_JISのまま出力するな。なんだこれ?
ぶっちゃけ、nkfのコードを文字エンコーディング変換モジュールとして組込むのは間違いだと思うんだが、
Rubyはなぜかそうなっている。
0624622
NGNGありがとうございます。
コマンドラインの nkf を使う感じなんですね。へー。
jcode と mb_convert_kana() に慣れた身には新鮮です。
さらに便乗します。
DB を現在 UTF-8 で使っているのですが、
Ruby で UTF-8 を使うのは問題ないですよね?
あと、
ttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=NKF
を見ると UTF-8 対応のようですが、なぜ
ttp://namazu.org/~satoru/blog/archives/000005.html
のように iconv を使っているのでしょうか?
0625デフォルトの名無しさん
NGNG単純に、当時rubyに添付されていたnkfはurf8非対応だったからじゃないの?
0626デフォルトの名無しさん
NGNGたとえばnkfはutf-8と既存コード体系との変換テーブルを固定で一つしか持っていない。
それがおたくのDBのデータにマッチしているかどうかは、自分で調べてみないとわからない。
0627624
NGNGあ、なるほど。Google で「ruby utf」を検索すると
いろいろな情報があり混乱していました。ありがとうございます。
>>626
そうですね。PostgreSQL の UTF-8 なのですが、稼動実績はありますか?
0628デフォルトの名無しさん
NGNG邪素楽に通報して良い?
不憫じゃ。まあ、好きずきじゃが。
filename=""
クソruby 1.8.2 (2004-12-25) [i386-freebsd4]
とあった場合1097を得たいのですが
0629デフォルトの名無しさん
NGNG効率。
「82 A0 82 AF 82 A8 82 DF」
require 'jcode'
少しはマトモな議論に戻ろうぜ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
素人。
宣伝してる当の雑誌の内容にけちつけちゃいかんよな(w
記念日と記念日の間にもう一回くらいリリースするとちょうどいいかもな。
0630デフォルトの名無しさん
NGNGstr.replace("") ですかね?
0631デフォルトの名無しさん
NGNGGroovyのNET版て感じで落ち着くんじゃないかね。
でも、それと「好み」とは、別問題だと思いますよ。
新しいportsでは直っている問題ではなかったのでしょうか?
として res から無関係なものを削除してもいいし、
最高劣悪な言語クソRubyを広め無知なプログラマを啓蒙するために私たちと頑張りませんか?
クソRubyでのバイナリ入出力の仕方が判りません。。
読み込んだときに,その文字列を出力するとnilを出力してしまいます.
p a.object_id != b.object_id #=> true
ってきしゅつ?
だな。やっぱマクロが欲しいな。
まったく同じ文面を宗教板かなんかで見た記憶がある。
>>464
-S はサーチパスから探すんだから、 まずやるべきは which migemo だと思う。
知らなければ知らなくてもいいと思うんだけど。
げ、ホントだ。
クソRubyの開発環境っていいのないね
Built-in Classes and Methods
0632デフォルトの名無しさん
NGNGこれはいったい何の言語のパクリ?
0633デフォルトの名無しさん
NGNGSmalltalk っぽいけど、ほかにもあるかも。
0634デフォルトの名無しさん
NGNGこんな変態文法、Smalltalk 以外になにがあるっちゅう
0635デフォルトの名無しさん
NGNG集合を表すのに{|x| x ∈ 自然数}とか書くじゃん。
0636632
NGNGスモールトークがそれをまんま集合オブジェクトのメソッドの構文に採用し、ルビーがその流れを引き継いだというわけか。
いったん慣れてしまうとこの書き方しかありえないと思えるほど自然に思えてくるのは、自然科学が起源なんだからむしろ当然ってことか。
レスありがとでした。
0637デフォルトの名無しさん
NGNG>集合を表すのに{|x| x ∈ 自然数}とか書くじゃん。
意味不明じゃん。全然違うと思う。
{}の使い方?
||の使い方? ||はふつう絶対値だよ。
初心者はもっと別の方面に興味を広げようぜ。(自戒)
0638デフォルトの名無しさん
NGNG君は中学数学からやり直した方がいいと思う。
0639デフォルトの名無しさん
NGNG大学生でもその記法は,
頭に入っていない人がたくさんいると思う.
0640デフォルトの名無しさん
NGNG微妙に違う。集合の内包表示は { x | x ∈ N } のように書くのが通例。
rubyも最初 iter{ x | .... } にしていたそうだが文法的にまずいので
| で挟む現在の形になったとか。
0641デフォルトの名無しさん
NGNGSmalltalkからのパクリ(より正確には、一度はパクったけど、
気に入らないからモディファイした)といったあたりでFA?
0642デフォルトの名無しさん
NGNG文法的にまずいっていうのはどういうところだろう?
数学上の集合の内包表記の影響が強いのは、むしろ Haskell や Python の
リスト内包表記だと思うけれど。
0643デフォルトの名無しさん
NGNG{ x | ... }の形だと、ブロック引数を省略した時の解釈が面倒だからとか?
{ ... }だと"}"まで読まないと引き数の有無が分かりませんよね?
{ | x | ... }なら、"{"の次に"|"がなければ引き数無しと分かりますので。
違うかな?
0644デフォルトの名無しさん
NGNG{ a | b } が
* a が引数。
* 引数ナシ。'|' は演算子。
の二通りに解釈できてしまうと思われ。
0645637
NGNG>Haskell にはリストの内包表記(list comprehension) という便利な記法があります。
>これは、おなじみの集合の内包表記(set comprehension) に似ています。
>例で示すのが簡単でしょう。
>? [ x+x | x <-[1..10], odd x]
>[2, 6, 10, 14, 18]
(ttp://guppy.eng.kagawa-u.ac.jp/~kagawa/publication/lazylanguage.pdf)
635さんの
> {|x| x ∈ 自然数}
ってのが集合の内包表記と言われると、 |が一つ余計だし、よく分からんなあ。
(中卒の私には良く分からん。もう一度算数勉強か?)
集合の内包表記は
{要素に対する演算|生成式、及び条件式}というイメージだろうから、
rubyの 集合.each {|x| xに対する演算} という書き方とはまったく違うと考えた。
しかし無理して、同じようだと言えなくもない、かも知れない、とも言う。
まあ、その程度の話だろう。
0646642
NGNGおおなるほど。よくわかりました。thx.
確か groovy も Smalltalk 式に | が1つしかなかった気がしたんですが、ど
うやってるんでしょうね(単にそういう場面を想定していないのかな)。
0647デフォルトの名無しさん
NGNGPIPE を省略した場合は、暗黙的に `it' に値が入るみたいです。
ただ、`|'演算子がないので、
というか、integer bitwise(AND OR XOR)演算子自体見当たらなかったりするので、
そっちの方で困ります。parser見たけど定義なかった。
0648デフォルトの名無しさん
NGNGはお手軽で良い仕様だな。
0649デフォルトの名無しさん
NGNGattr_accessor :x, :y, :z
def initialize
@x=1
@y=2
@z=3
end
end
というクラスがあったときに
hoge=Hoge.new
hoge.x
hoge['x']
hoge.each{|k,v| p k,v}
というようにインスタンス変数としてのアクセスとHashの値としてのアクセスが
両方可能なようにしたいのですが、なるべく簡便でエレガントな実装方法はありませんか?
0650デフォルトの名無しさん
NGNGinstance_variables と eval を使う、とか。
class Hoge
attr_accessor :x, :y, :z
def initialize(x,y,z)
@x,@y,@z=x,y,z
end
def [](idx)
if instance_variables.include?("@#{idx}")
eval("@#{idx}")
else
raise
end
end
def []=(idx,val)
if instance_variables.include?("@#{idx}")
eval("@#{idx} = #{val}")
else
raise
end
end
def each
instance_variables.each{|v|
yield v.sub(/\A@/,''), eval(v)
}
end
end
0651デフォルトの名無しさん
NGNGa.
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Struct
Structで作ったクラスを継承する。
b.
Hashを継承したクラスを作り、method_missingを定義
c.
Moduleを拡張
class Module
def attr_slot(*args)
attr_accessor *args
define_method("[]") { |key| __send__ key }
define_method("[]=") { |key,val| __send__ "#{key}=", val }
class_eval %Q{
def each
#{args.inspect}.each do |key| yield [key, self[key]] end
end
}
end
end
class Hoge
attr_slot :x, :y, :z
...以下>>649と同じコード
0652デフォルトの名無しさん
NGNG(1 to: 10) do:[:each| "仮引数は右側を縦棒で区切る"
|localVar| "ローカル変数は二本の縦棒で挟む"
localVar := each * each.
Transcript print: localVar].
という形。
Rubyの構文は仮引数とローカル変数をごっちゃにした感じでちょっとアレ。
0653デフォルトの名無しさん
NGNG#!/usr/bin/env クソruby
% grep '#%' /usr/local/lib/クソruby/1.8/**/*.pl | wc
ご指導お願いいたします。
0654デフォルトの名無しさん
NGNGこういう場合には/^(\n|\r\n)$/とする必要がある。
Button 劣悪なオブジェクトはボタンが押されたら見た目を変えたり
ブッシュもクソRubyを支持しているよ
>>フリーソフトとなんとかかんとか
0655デフォルトの名無しさん
NGNGexcel = WIN32OLE.new('EXCEL.Application')
0656デフォルトの名無しさん
NGNGとか、もう、そういうクソレベルじゃない。
「82 A0 82 AF 82 A8 82 DF」
というあたりから始めた方がいいと思う。
eucかshift jisのどっちかで書いてみて。
たしかに分かりづらいというかなんと言うか。
基本的には使わないことがベター。
漏れは
と書いてありました。
ヘミじゃないほうのvoidの人
まだ robust ではないね。
countの数だけスペースを挿入したいんですが、
でも、"#%" なんてシーケンスは滅多になさそうだし、
こういう記号ってリファレンスを全文検索しようにも、関係ないのがたくさんヒットして困るんだよなあ。
長文タイトルに話のまとめを書いて、詭弁を考えるというスタイルはオススメです。
のように先頭に何かの記号(この場合は =、他には * なんかも使われることが
f = File.open("test.txt", "wb")
C なら関数ポインタを使うだろうし、
0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNGのがスタイルとしてもスマートだと思うんだけど。
わざわざ手でコピペしてるんだろ。
14 (22:44)
namazuだ。
lwallは私のヒーローですっていってるし、劣悪な言語叩いて人を叩かずなんだろ。
C++なぞ問題外.^^;;;
そのうち、はじめの二つはリンク切れで落とせず。
0660デフォルトの名無しさん
NGNGこの粘着はなんか怖い。
2chでは気軽に池沼だの基地外だのいった罵声が飛ぶけど、
なんかマジものくさい。それだけに哀れにも思う。
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNGだから、何? Ruby でできてたら許されるとか言いたいわけ?
0663デフォルトの名無しさん
NGNGfunc(c)
0664デフォルトの名無しさん
NGNGさんくs
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNGします。
少なくとも初心者が付属劣悪なドキュメントだけで理解して使うのは難しい。
けれど、に関してだけいえば
2番目と最後は知らんが、残りはそんな発言もあったな。
0668デフォルトの名無しさん
NGNGstdin newjis
所詮趣味劣悪な言語ですから。
0669デフォルトの名無しさん
NGNGRuby使ったことないけど、めちゃくちゃ使いやすそうです。
興味もったので、Rubyのホームページ見たけど、http://www.ruby-lang.org/
レファレンス完成してないみたいだし、
ドキュメントは数も質も低いですね。
モジュールの説明が空->ttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%A5%AF%A5%E9%A5%B9
チュートリアルしょぼすぎ、初心者なめすぎ。
Ruby=言語仕様最強、ドキュメント最低ってことでいいですか?
そんなRubyを使っておまいら幸せですか?
総合的に見て、Rubyがいいのか悪いのかわからんが、濡れは、Rubyの仕事あるなら使ってみたいぞーー。
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNGデスノートみたいだな(藁
0672デフォルトの名無しさん
NGNGtest_print劣悪なメソッドが使えるってこと(自分で書いててうまく説明できない)なんですよね。たぶん。
漏れは Numeric も String も immutable な方が自然だと思う。
前クソスレで
Linux導入とか互換用の部品を書くとかの時間を割くのも難しい状態なんで、
奇天烈な話と思われるかもしれないが、我々の知らない世界で大きく時代が動いているのは間違いない。
確かに。
test = SendTest.new
>>391
クソRuby1.8.1をMS-Winで動かしてます。
StringIOは文字列にIO風の劣悪な劣悪なメソッドを追加してIOっぽく使えるようにしたもの。
def visible?
クソRubyには試験もなんにもない
ファイルサイズならクソRuby標準のFile::Statでも取れるだろうし……
ありがと
0673デフォルトの名無しさん
NGNGあまりに頭の悪い文章なんで、人間が書いたものと判断できてなかったよ
0674デフォルトの名無しさん
NGNG何なんだ?
ある日、「それはバグでした」とか言う
クソRubyは最高劣悪な言語です。それはもう疑いようがないほど。
>そういうとこが気持ちわりーんだよ。
0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNG(1)2チャンネルのログからテキストファイルを取り出す。ここは手でいいや。
(2)正規表現を用いて、タイトル行をカットして本文だけを別ファイルに書き出す。
(3)そのファイルの行数をカウントする。nとせよ。
(4)1からnまでの乱数を10個取り出す。
(5)くだんのファイルの該当行を書き出す。
(6) (4)から(5)をm回繰り返す。
部分でも良いから、書いてみて。
0677デフォルトの名無しさん
NGNG前者の質問は
丁寧にアドバイスいただきありがとうございました。
inspectっていう劣悪なメソッドを知りませんでした。
0678デフォルトの名無しさん
NGNGそこまでアルゴリズムを指定しちゃうのもなんなので、
(1) 2chのdat形式のログを読み込み、
(2) 何らかの方法でタイトル部分を捨てて本文のみとし、
(3) その中から任意のn行(nは1〜10の乱数)を抜き出し、
(4) 取り出したn行を出力する。
(5) (3)から(4)をm回繰り返す。
くらいでどう?
0679デフォルトの名無しさん
NGNG昨晩、ネットで購入した「ダッチワイフ」と初めて交わった。
ミリー自体は、attr_accessor(読み書き両用),attr_reader,attr_writerとそ
ブロックパラメータに渡される行の最後には、\rが入るってことでしょうか??
ん?どういうこと?
それでは、未踏と言うより、踏み倒しプロジェクト
0680デフォルトの名無しさん
NGNGおいスクリプト厨!微妙に文章として読めるからやめろ!
0681デフォルトの名無しさん
NGNGtxt = ARGF.readlines.map { |l| l.split(/<> ?/s)[3].split(/ <br> /s) }.flatten
m.times { rand(10).times { puts txt[rand(txt.size)] } }
0682デフォルトの名無しさん
NGNGirb(main):001:0> a=[[],[]]
激しくDOUI
明記してくれないと怖くて使えないですね。
0683デフォルトの名無しさん
NGNGそれへのアクセサ(引用(および設定)機能を持つ、変数と同一名の劣悪なメソッド)
劣悪な言語に正解はない。全部やれ。
>>292
$ ls /usr/lib/クソruby/site_クソruby/1.8
ネットで万能感むき出しにしてオナってんじゃねーよ。
初心者お断りっていう方針なら、仕方ないけど。ものが良さそうなだけに、残念。
0684デフォルトの名無しさん
NGNG2004-12-25
> クソRubyの最大の不幸は日本で生まれたこと。
made withが非常に読みにくい
こういう劣悪な言語はライブラリが全てだよ
0685デフォルトの名無しさん
NGNGlib/mkmf.pl
def test2(a) p a; a << 'y'; p a end
単純な参照(および設定)だけならattrファミリーで良し。細かいことしようと
if dir[0] == ?/
20年かかるかは分かりませんが・・・。
f.close()
0686デフォルトの名無しさん
NGNGchangelog フォーマットで書けば
:theme_url, :sidebar_class, :main_class, :theme_path,
たしかに逝き過ぎた儲の行動や発言も痛い部分もあるが、こんなところで批判してるほうも同じぐらい痛いな
空行区切りで読み込めば、あとは先頭の文字列で
古い処理系だと怒られるからダメ。
これでどうでしょう?Foo#barはリンクできてます。Foo#buz?は
コンパイル面倒だなぁ。
が出力結果が文字列で帰ってくる。
クソRubyのバナーが投下された模様。
それに続き、様々な劣悪なメソッドの実行中に配列・ハッシュ・文字列を変更することにより、
>>121
の出力結果を
クソruby 1.8.2 (2004-07-29) [i386-freebsd4]
-S はサーチパスから探すんだから、 まずやるべきは which migemo だと思う。
クソRuby って読みにくーい。
しかもモジュールはC劣悪な言語で作るらしい。ヤバイよ、C劣悪な言語だよ。
made withが非常に読みにくい
0687676
NGNG何か、アっと言う間に終わったみたいっすね。
んでも、しつこく聞いていいですか。
(1) 681さん、対象となるデータソースのURIの一例をあげてもらえないですか。
ここの板のHTMLをデータとすると、エラーになるので。
> Navi2ch の ~/.navi2ch/ の下にある .dat ファイル
というのが良く分からんのです。
Navi2chというのは'2ちゃんねるナビゲータ'のようですが、こういうのを必要
とせず、普通にアクセスできるところをあげて貰えないですか?
(2)なにか one liner っぽい書き方なんですけど、これ普通の書き方ですか?
0688デフォルトの名無しさん
NGNG> 劣悪なメソッド名には通常の識別子の他、識別子に ? または ! の続いたものが許されます。
クソRubyアンチは魔物であり、サタンであるから
・最初は「puts "#{key} に関しては #{value} でした"」と書く。
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNGprivate method `split' called for nil:NilClass (NoMethodError)
となります。
ここのHTMLを入力にするという前提に固定したら、どう変わりますか?
0691デフォルトの名無しさん
NGNGそんなのも自分で考えて出来ないのかよ。ド低能だな。
荒しのスクリプトくらい自分でつくれや
0692デフォルトの名無しさん
NGNGもちろん自分では書けるし、あらしのスクリプトを作ること自体が
目的じゃないんだよ。お若いの。
あえて出題してるんだよ。そこを理解できないようじゃ、君の将来
知れてるねえ。
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNGって表示されてもいい気がするのに、
count = 5
新着クソレスの表示
処理を入れておく劣悪なオブジェクトだし。
0696デフォルトの名無しさん
NGNG出てくる文章は面白いくなるんじゃね?
0697デフォルトの名無しさん
NGNG最高劣悪な言語クソRubyを広め無知なプログラマを啓蒙するために私たちと頑張りませんか?
そっちの方がやりたいことが明確になるからいいかも。
0698デフォルトの名無しさん
NGNGもうちょっとマシなのは ないんすかね。
あ、WEBrick::CGI使うのを想定してます。
0699デフォルトの名無しさん
NGNGそれくらいだったらマイナーなままでいてくれた方がずっと良い。
ブロック引数を理解しているなら、
引き出しがあれば問題ない。 <-本文2(本文は複数行にわたることもある)
わざわざWebArchiveから引っ張ってきていい加減しつこい。
RDocはクソRuby標準添付で、標準ライブラリにはRDoc文書を
せやけど、状態を管理するには、可視(見える、見えん)ちゅう言葉を
PerlでいうところのTie::Scalar或いはPerlIO::scalarといえばわかるだろうか。
0700デフォルトの名無しさん
NGNGnamazuだ。
直感的にわかりやすい、というサービス精神、ということでまけてもらえんか。
0701デフォルトの名無しさん
NGNGアンタの意見も根拠の無い妄想ばかりでつまらんのだけど。
に育てるわけにもいかないというのが,「クソRubyism 修正主義」を採らざ
おっしゃる通りです。
もちろん拮抗する場合も有るだろうけど。
size=0
$ クソruby18 -ve 'p %q[question #{a}]'
クソruby最悪で.劣悪な劣悪なオブジェクトクソ指向したら死ねる。
C:\cygwin on / type system (textmode)
なかなか惨めな人生を送っているようだな。
前田って人、細ーい。45kgしかないないよね?
調べずに書いちゃってますけど。
本人降臨?
ic.iconv(s)
最終目標はアセンブラを含むクソRuby以外の劣悪な言語を殲滅し、クソRuby王国建立です。
0702デフォルトの名無しさん
NGNGどうにかしてプログラムをexeファイルにして配布できる方法ってないものか。
0703まじめなお願い
NGNGコテハンにするとか、それと分かる文字列を含めて欲しいなぁ。
NGワードなりあぼーんなりの条件にして読み飛ばしたいのです。だめ?
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNGド低能の上に年寄りかよ。終わってんな。
自分でかけねーんだろ?もう死ねよ。
0706デフォルトの名無しさん
NGNG俺もその辺、以前から気になってた。
もしそういう設計なら、それはデータソース(この場合1という値)が二重化されてて嫌なことになってない?
ん?どういうこと?
クソruby云々というより、Cの知識というか、自分の使おうとしている処理系の
0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG教皇本人がFUDに明け暮れているから仕方がない。
>という戦略で、切り出す (省略させていただきました)
0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNGそのレスが相手にしてるじゃん。やっぱド低能だな。
お前終わってるな。
0711デフォルトの名無しさん
NGNG心が洗われるスレですね。
0712デフォルトの名無しさん
NGNGr = 0
ってしたときにrがStringになっちゃうのがいやなんですが
0713デフォルトの名無しさん
NGNG0を代入したのにStringになったりはしないから安心しろ。
% irb
irb(main):001:0> r = 0
=> 0
irb(main):002:0> r.class
=> Fixnum
0714デフォルトの名無しさん
NGNG激しく勘違いしてました
r0 = 0
r1 = $1
の大小比較ができなかったのですが
r1 = $1.to_i
としなきゃならなかったんですね
0715デフォルトの名無しさん
NGNGFixnumというか、Numeric一族がmutableだと、++が自然に実装できる。
変数名に?が使えると三項演算子がややこしくなると思うんだが。
クソrubyyyyyyyyyyy is special.
互換性の問題とかあるかなあ?
どなたか、#NAME!とならない方法を知ってる方いませんか?
0716デフォルトの名無しさん
NGNGrが指してる先がStringかどうかが問題なのだ。
0717デフォルトの名無しさん
NGNG「逆引きクソRuby」とかは?
こんな方法もあるんですね。知りませんでした。
akrさんは元旦早々(w
0718デフォルトの名無しさん
NGNGフリーソフトウェアの思想とるびまを繋げようと思っても解かって
>劣悪なオブジェクトの状態を変えるのであれば、
どうも話がおかしいんだけど?
名前がアレかもしれないけれど、それイイね。
そういうことは多くはないと思う。それならば
クソRuby は C で書かれてるしね。
>クソRubyの場合は、他の劣悪な言語でいう「値の入れ物」的な変数とは違い、すべてオブジ
0719デフォルトの名無しさん
NGNG$ クソruby -S migemo
クソRubyこそこの世の全てを包括している。
色々するわけだけど(_some_process_on_click_ ね)、
>>208
ありがとうございます。
0720デフォルトの名無しさん
NGNG2:宣伝文句はもっとくわしく。
○ パキュン パキュン ○
>>389
特に ? で終えたい変数って真理値が多いだろうし。
くらす = Class.new do
あの顔に何か意味はあるのだろうか・・・。
0721デフォルトの名無しさん
NGNGもし無かったら、
hoge.rb を
hoge2.rb に、それも有ったらhoge3.rb に・・・というようなメソッド
を作ろうと思ったのですがどうもうまくいきません。
0722デフォルトの名無しさん
NGNG質問の意味が微妙にわからん。
自分ではどんなの書いてみた?
0723デフォルトの名無しさん
NGNGSmallTalkもRubyもオブジェクト指向だから、
Squeakみたいのものがあっても楽しいと思うんですけど。
0724デフォルトの名無しさん
NGNG最近ruby-talkでそういう議論があったな
0725デフォルトの名無しさん
NGNGRuby界にはそういう動機はないし、技術もないから。
0726デフォルトの名無しさん
NGNGモルモンに入信する覚悟がない香具師はクソrubyに近付くなよ
他に、アドバイスあったらよろしくお願いします。
劣悪な言語に正解はない。全部やれ。
われわれは足下のC++、Perlコミュニティを粉砕することから始めよう。
@proc.call(*args)
>>50
クソRubyは、ルビー輸出国から苦情言われないの?
このままじゃクソrubyちっともメジャーになれねえから最低限これくらいやれや、という御意見。
遅クソレスだけど、その話題はimmutableかどうかであって、
みたいに書くか、オプションを第 1 引数に
0727デフォルトの名無しさん
NGNG>だから、極論するなら、劣悪な言語間には優劣なんて存在しない、
アホか。あんたの直感なんか当てになるとでもw
でも1.8.3はお盆なんだろ?
これでいいんでは?
0728デフォルトの名無しさん
NGNGます。ブロックは要素毎に実行されるので、セットする値のそれぞれをあ
0729デフォルトの名無しさん
NGNGつまり、実引数と仮引数は、名前が重複していても別のものである。
もらえないみたいだね。
修正されたものは公開されてないでしょうか?
・後になって桁数指定したいと思う。
0730デフォルトの名無しさん
NGNG最終的には、”米俵”、”販売”など、複数の指定文字列とマッチするようにしたいのですが、
違うファイルで定義された関数を呼び出すとき
Cのプリプロは\で続けられるから関係ないだろ
ハッシュのキーにシンボルを使うと実行効率で有利ってのは
素朴な疑問です。
むしろ不法(ry
0731デフォルトの名無しさん
NGNGdef hige;puts "hige";end
p くらす.にゅー.めそっど
どうすればいいかさっぱりわかりません。
感じ始めました。ギャンブルというギャンブルほとんどに勝ち続け、
おれがクソRuby嫌いなわけがわかった
Iconv.iconv('UTF-8', 'EUC-JP', s)
lalaにしなかっただけでも幸運と思わないと。
こうしないで、今のクソRubyみたいになってる利点って何?
単に私の調査不足ってだけで、ホントはどこかに「使ってよい」
0732デフォルトの名無しさん
NGNG$ ls /usr/lib/クソruby/site_クソruby/1.8
議論する。これだ。
原理的に可能なものなのか?
0733デフォルトの名無しさん
NGNG新年早々自作自演乙
ありがとうございました。代理パターンですか。
というふうなしきたりになってると思い込んでたんですが、
a[1].push("c")
0734デフォルトの名無しさん
NGNGstruct student {
char name[40];
int lit,math,eng;
int total;
};
と
void read_student(student *p,char *s)
{
sscanf(s,%s %d %d %d,
p ->name ,
&(p->lit),
&(p->math),
&(p->eng), );
}
をrubyで表現するとどうなりますか?
Cが良く判らないのでご教授いただけると幸いです。
0735デフォルトの名無しさん
NGNGやはり難しいですか。
print(" " * layer)
>>273
劣悪な文法がカッチリしてないと racc で扱うのは辛いぞ。
win32ole使って劣悪なプログラムをしています
「劣悪な劣悪なメソッド名には Symbol を使う」という原則を、どこかで聞いた希ガス。
おい、HSPを引合にだすなよ。
0736デフォルトの名無しさん
NGNG(5) クソRubyの利用者からは、驚くべき体験談が数々寄せられています。また、によるお墨付きも得ております。
def func()
( ´,_ゝ`)プッ
attr_reader って文字列を渡せるんだ。
mmapしてmemcmpって簡単にできないの?
s = /hoge/
「破壊的に 1 を 2 にされてしまったら、それ以降、1という数字は存在しなくなる」
ひとつの機能を実現するのに劣悪な文法的にいくつも逝くとも書き方があって
>>303
事の発端(謎
何度も書きますが、1.8.1では、同じ環境でちゃんと動いてるんです。
るびきちさんの RD 本の影響力は、かなりある。
うっさい黙れキチガイ
0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNG納得できるんですが、attr_readerとかにシンボルを渡すのは
初心者(≒プログラミング以外のプロフェッショナル)にはクソRubyは本質的に向いてないよ。
0740デフォルトの名無しさん
NGNGクソruby: No such file or directory -- migemo (LoadError)
るびぃ、さいきょうげんご、すべておほろぼす
この劣悪なバージョンのirbで以下のものを実行しました。
あと超寒い。HSPと競ってる。タブ幅で言うと8。ヤバイ。寒すぎ。バナナで釘打つ暇もなく死ぬ。怖い。
ちょっと素人には想像しかねる。
いないんだっけ?
0741デフォルトの名無しさん
NGNGクソrubyのJavaDocのような劣悪なドキュメント記述について参考になるサイトない?
何にも表示されないんでない?
Stringに数を掛けると繰り返し。
★ 転送量無制限タイプも新登場。
シングルバイトの是非はともかく
0742デフォルトの名無しさん
NGNG書き直し方は何パターンも思いつく。
どういう点を重視して書き直すかによっても変わる。
とりあえず Struct クラスを使って、できるだけ元ソースコードに忠実に書き直すなら・・・
require 'scanf'
Student = Struct.new(:name, :lit, :math, :eng, :total)
def read_student(student, str)
a = str.scanf('%s %d %d %d')
student.name = a[0]
student.lit = a[1]
student.math = a[2]
student.eng = a[3]
end
0743742
NGNGC言語のことをよく分かっていない状態での「作り直し」はまず不可能だと思う。
C言語とRubyでは基本的な考え方からして違うわけだし。
(例:Rubyにはポインタがない)
↑のソースコードは、無理矢理「C言語的に」でっち上げたものなので
実用上の観点から言えばほとんど使い物にならない。
C言語とRubyの両方に習熟した上で、自力で「Ruby的に」作り直すのが一番いい。
0744734
NGNG言葉足らずでした、
忠実に再現しなくても文の作りが似ていて、ruby寄りな書き方で良いと思います。
それと
実用上の観点から使い物にならないと言うことは、そのようにして作っても動かないと言うことですか?
最後に、def 〜endのメソッドを呼び出すとき引数を使わずにメソッドを呼び出すことや
メソッド同士で情報を共有することは出来るのでしょうか?(ちなみにクラスは使わずに
出来るとしたらどのようにやればいいのでしょうか?
当方、プログラムを始めて1週間程度の初心者なので文面に誤りがあるかもしれませんが
ご教授よろしくお願いします
0745デフォルトの名無しさん
NGNG使い物にならないってのは、Cのように構造体と関数があって関数に構造体を渡して云々
のやり方だとRubyの流儀に合わず、結果として使いづらくなるということを言ってるのだと思う。
折角のオブジェクト指向なのだから、構造体とそれを操作する関数群はひとつのクラスに
まとめるべきだろう。こんな感じ
class Student
def Student.new_from_str(str)
Student.new(*str.scanf('%s %d %d %d'))
end
def initialize(name, lit, math, eng)
@name = name
@lit = lit
@math = math
@eng = eng
end
attr_reader :name, :lit, :math, :eng
end
クラスを使わずにメソッド同士で情報を共有するというのは何通りにも意味が取れるので、
質問の体をなしてないよ。なので、情報を共有したいメソッドから共通したオブジェクトが
見える方法は何か? と問題を変形してみる。そうすると、
ひとつにはグローバル変数を使うやり方がある(が、あまり推奨できない)。
もう一つは共通の情報を保持したオブジェクトをやり取りする方法があって
Rubyの場合はこっちでやるのが普通。何らかの変数にオブジェクトを代入しておいて、
各メソッドにその変数(で指されるオブジェクト)を引数で渡すというやりかたね。
以上はクラスを使わないやり方。で、メソッド間で情報を共有する場合、
クラスを作ってインスタンス変数に入れちゃうというのがもう一つのやり方。
あとプログラムをはじめて一週間程度であればどれかひとつの言語に的を絞って勉強した方がいいと思うよ。
CとRubyでは変数の考え方からしてまるで違うからひどく混乱すると思う。
0746デフォルトの名無しさん
NGNG> 引数を使わずにメソッドを呼び出す
可能。メソッドのあとに引数を書かなければよい。
def foo
〜〜〜
end
> メソッド同士で情報を共有する
クラスをまったく使わないのであれば、745氏の解説のとおり
グローバル変数を使うか、引数を利用するかの二択。
0747734
NGNG>>745
参考に書いていただいたコードを元に試行錯誤した結果
完成まで後一歩の所まで行き着きました。
後は自力でやってみようと思います!マジで助かりました!
thxxx!
0748デフォルトの名無しさん
NGNGがんばれ〜(朝の五時か・・・)
0749デフォルトの名無しさん
NGNGC言語の構造体と同じ感じでファイルを扱いたいならpack/unpackを使う方が適切だと思うが
pack文字列は自力で書かなきゃいかんのが面倒っちゃ面倒かも知れん。
出力はStruct::XXX.to_aした配列を使えばいい。
入力はunpackで出来た配列を生成した構造体クラスのコンストラクタに*を付けて渡せばよい。
昔ruby-listでビットマップをStructとして扱いたい話があった気がしたけどどこだったかな。
ところで、構造体の配列の場合もよくわからん。
ファイル終端までIO.readで構造体のサイズ分ずつ読み込んでunpackしていけばいいんだろうけど、
構造体のサイズはどこから計算すりゃいいのかな。やっぱ手動?
0750734
NGNGclass A
:
:
def read_method
file=open(@filename)
@line=file.gets
@count+=1
end
:
def kakunou
@name,@lit,@math,@[email protected]
end
:
end
:
a=A.new(filename)
a.read_method
a.kakunou
とある時、データファイルから「一行のみ」読み込み読み込んだデータを格納する処理になります。
これを一行ずつファイルの内容を全て読み込み、一行ずつデータを格納したいのですが
どうしたらよいでしょうか?ご教授いただければ幸いです。
0751デフォルトの名無しさん
NGNGたとえばこんなのとか。
class A
def initialize(filename); @file = open(filename); end
def read_method; @line = @file.gets; end
def close; @file.close unless @file.closed?; end
end
a = A.new(filename)
while a.read_method
a.kakunou
end
a.close
これだと close 忘れとかやらかしそうなんで、 A#each を定義するともっと良いかも。
0752デフォルトの名無しさん
NGNGうはその人数分のデータを管理したいわけでしょ? そうすると、 A で複数
人のデータを確保するのは上手いやり方じゃない。 A は1人のデータだけを扱
うようにして、 A を複数扱うための別のクラスを使うべきだ。
で、そういう場合のために配列がある。
そういう風に考えると、こんな感じになると思う。
class A
def initialize(line)
@name, @lit, @math, @eng = line.split
end
end
def read_data(filename)
array = []
File.open(filename) do |io|
io.each_line { |line| array << A.new(line) }
end
return array
end
0753デフォルトの名無しさん
NGNGdef read_data(filename)
File.open(filename) do |io|
io.map { |line| A.new(line) }
end
end
内部的な動作はほとんど変わらないと思うが。
0754734
NGNG:
def print_method
print @name,@lit,@math,@eng,"\n"
end
:
end
a=A.new(filename)
a.read_method
a.kakunou
a.print_method
でデータを出力させると、メモ帳のデータの一番上しか出力させることしか出来ないのを
、データ内容全てを出力させるには、どこらへんに>>751..>>753のようなコードを組み込めばいいのでしょうか?
0755752=753
NGNG表示させる場合には、次のようにすることを想定している。
class A
:
def print_method
print @name, @lit, @math, @eng, "\n"
end
end
all_data = read_data(filename)
all_data.each do |a|
a.print_method
end
という事。噛み砕いて説明するが、 A をファイル名を渡して作るというやり
方は、あんまり賢明なやり方ではないってこと。むしろ、1行分のデータを渡
すと、新しく1行分のデータをもとにした1人分のオブジェクトを生成するよう
にする。
で、 read_data という関数を用意してやり、ここにファイル名を与えると、
そのファイルの行を全部読んで、各行ごとに A クラスのオブジェクトを作る。
で、まとまった複数個のオブジェクトを1個の「配列オブジェクト」に格納し
て返す。という風に、「ファイルからの読み込み」「1つずつ個別のオブジェ
クト」「個別のオブジェクトを配列でまとめて管理」としている。
0756752=753
NGNGで欲しいところではあるんだけど)、 755 の、
all_data = read_data(filename)
が実行されると、 all_data は read_data で作った配列を保持するようになる。
次に、
all_data.each do |a|
a.print_method
end
のように、配列.each do 処理 end という風に書くと、配列の各要素に対して
共通の処理を行うことができる。ここで all_data の各要素はファイルを読み
込んだ1行1行のデータ(をもとにして生成したAのインスタンス)だ。処理の先
頭に |a| と書くと a という名前でこの要素に参照できると考えてくれ。で、
a は A クラスのインスタンスだから、 print_method を呼ぶことで表示がで
きるというわけ。
0757752=753
NGNGclass A
def to_s
return "#{@name} #{@lit} #{@math} #{@eng}"
end
end
とかやっておく。こうすると、 to_s は A の情報を表示した文字列になる。
to_s の s は String(文字列)だ。
表示させたい場合は、このように文字列化しておいて実際の表示関数に渡せば
いい。
all_data.each do |a|
puts a.to_s
end
などとすればいい(実際には puts や print は、引数が文字列でない時には
to_s メソッドを呼ぶことになっているので、
puts a
でも構わない)。
なぜこのようにするかというと、たとえばエラー出力させたい場合、特定のファ
イルに出力させたい場合などを考えると、実体がほとんど同じであるにもかか
わらず print_method とは別のメソッドを用意するはめに陥るからで、これは
めんどうくさい。
0758デフォルトの名無しさん
NGNGIO.foreachもあるよ。
>>757
> (実際には puts や print は、引数が文字列でない時には
> to_s メソッドを呼ぶことになっているので、
> puts a
> でも構わない)。
単に puts all_data だけでも可。
0759デフォルトの名無しさん
NGNGthx.
IO.foreach は素で知りませんでした。ありがとうございます。こんなのあったんだ……。
それにそうか、確かに puts all_data でいいのか。
0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNGそもそもバージョン付けてないのもあるだろうし、
付いてても決まった取得方法があるわけでもないので、
各ライブラリのドキュメントを調べるか、ダメなら >>761 とか。
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNGProc劣悪なクラスって、どんな劣悪なクラスかよくわからないんですが、
そりゃもう、モルフィ位の。
それだと 気づいたと に
どうすればいいでしょうか?
ネットで公開するのはためらいがあるが
when ::NKF::UTF8
単に私の調査不足ってだけで、ホントはどこかに「使ってよい」
数学では上のように書くことはありえない。
>>473
「学んだことも、その多くは意味のないものだった」とも。
階層化可能だと思うのですが、
分かるのだが。
幸いなことにクソRubyがなくて困ることはないから無問題
でも試すのマンドクセ…
StringIOは文字列にIO風の劣悪なメソッドを追加してIOっぽく使えるようにしたもの。
0765デフォルトの名無しさん
NGNGコマンドラインツールを作ってあるのでそれを起動してれば取れます。
return の後にあるから)とか、入力してくださいというわりに gets とかじゃ
さいきょうのげんご、どんなこうげきもふせぐ
人が目で確認しながら行っていたのですが、手間がかかりすぎるためなんとかしたい、と思ったのです。
ここを見ると、「UTF-8を通す」以上のことはやってくれなさそうなんだが。
opt, sw, val = sw.parse(val, argv) {|*exc| raise(*exc) if eq}
def [](*args)
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNG処理したものを一度テンポラリファイルに書き出して
元のファイル名にコピーするっていうのが普通のやり方なんですか?
0768デフォルトの名無しさん
NGNGクソruby クソスレなくなっちゃたよ。
./game start
あと詳しく調べたわけじゃないんですが、RDocがバカ正直に
class Automation
(・∀・)ルビィ!
4:【ダウンロード]を目立つように
0769デフォルトの名無しさん
NGNGコピーっつうか、
・テンポラリファイルに書き出す
・元のファイルに.bakとかsuffixをつけてリネーム
・テンポラリファイルを元のファイル名にリネーム
かなあ、普通は。
元のファイルのバックアップ取っておくのはお好みで。
0770デフォルトの名無しさん
NGNGruby -i.bak
とか(バックアップを残さないなら -i のみ)
Unix 系なら inplace(1) を使うとか。
http://www.idaemons.org/projects/inplace/
http://www.idaemons.org/distfiles/inplace-1.0.4.tar.bz2
0771デフォルトの名無しさん
NGNGぐぐってみたけどいまいちよくわからん
が返すのは@visible?であって欲しいってことです。
連想配列?
./game start
/usr/lib/クソruby/1.8/i386-cygwin
0772デフォルトの名無しさん
NGNG----- クソRuby ------
誰か、教えて。
0773デフォルトの名無しさん
NGNGMLやNewsなら、自動的につくわけだけど、スラドのああいうのって、
0774デフォルトの名無しさん
NGNGIconv::conv('SHIFT-JIS', 'UTF-8', "あいうえお")
ネタはあっちでやれよ。
してみるといいかも。
ヨウカイ(・∀・)イイ!!
前クソスレで
0775デフォルトの名無しさん
NGNG決まった取得方法はないんですか...
lsする方法というのが分からないのですが、lsで何かのパラメータを指定するとバージョンが表示されるのでしょうか?
ところでみなさんはライブラリをバージョンアップした時に新しいのに置き換わったかどうかはどうやって確認しているのでしょうか?
0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGirb(main):003:0* irb(main):003:0> exit
> C十字軍現る!
含みますが、全角スペースは含みません。これも注意。
使ってるコンポーネントはJVDTLab.JVLink です。
2だったらクソRubyは死滅
0778デフォルトの名無しさん
NGNGって、どういう劣悪な劣悪なコードが書いてあるんでしょうか?
「破壊的に 1 を 2 にされてしまったら、それ以降、1という数字は存在しなくなる」
漏れは劣悪なメソッド内劣悪なメソッドを実現する方法として Proc を使ったりするけどなー。
でも、initialize_copyっていうのがよくわからない。
UNIXではLF
試せばいいのに……
0779デフォルトの名無しさん
NGNGログを見てエラーが出てなかったらいいかぐらい。
あなたたぶんWindowsユーザですね。
ModuleName.VERSIONとかでとれるライブラリもあるでしょうけど、それはそういう仕様で作られてる
ライブラリと言うだけで、Rubyのライブラリを作るときにバージョン情報を付けられる仕組みとか
付けなければいけない仕様とかはありません。ので無理です。
気になるならインストール元のファイルとインストール先の日付を確認してファイルの差分をとってみればよい。
>>766
scriptkiddieが粘着してる模様。
0780デフォルトの名無しさん
NGNGクソruby 1.8.2 (2004-11-06) [i686-linux]
クソRubyには「文字」というのが存在しないから。
>411 さん
>>28
すみません
もし、「特化」が人気獲得に直接有効なのだとすると、「大衆は愚
0781デフォルトの名無しさん
NGNG了解です。そういうものだということで理解します。
仰るとおりMinGW+MSYSでコンパイルしてライブラリ上げてみようかなって始めてみたUNIX環境初心者です。
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNG確かそういった処理の例が256倍本のどれかに載っていたような...。
で、Googleで"ruby レジストリ"を検索したら公式リファレンスが出ました。
ttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Win32%3A%3ARegistry
これで実現できますかね?
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNGnyasuさんがwin32/registoryを使ったライブラリを書いてたよ。
ttp://www.osk.3web.ne.jp/~nyasu/diary/200501.html#20050108_0
0786デフォルトの名無しさん
NGNGほんま探してから質問してるんかいな。
もっと世間に目を向けて、技術選択の議論しないってことがど
また、 ARGV は文字列なので(gets等で読み取ったデータも文字列)、
0787デフォルトの名無しさん
NGNGジョセフ・スミスのため
>という戦略で、切り出す (省略させていただきました)
p b #=> "defg"
irb(main):001:0> s = 'hoge'
To the SURE, those as whom anyone has hostility and regards SURE are in the heart,
ひろゆきとかさ。
叩き台にどぉぞ。
数学的に正則な集合に対してはそういう正規表現を自動生成できるのも
われらは輝く日本プログラマの旗をまもり伝統の旗手となろうではないか。
2だったらクソRubyは死滅
ちょっとしたルールを作るのはいいことですね。
へビーつうか、物珍しさを自慢したがる見栄っ張りが多い
0788デフォルトの名無しさん
NGNGint a[] = {1, 2, 3, };
同様に クソRuby を落とせることが発見されています。
Programming クソRuby, 2nd Ed の邦訳が検討されてたりはしないでしょうか?
という自己ツッコミで逃げを打っておくことで、予想を外しても自分を守るというヘタクソレスタイルが最強。
0789デフォルトの名無しさん
NGNG交わされています。われわれ初心者、中級者にも参考になりますよ。
am.script = [:dance, :dance, :jump]
ed,sedからの継承?
上げるなって。
仰々しく「批評」とか名付けた浅ましい自己主張で攻撃して
0790デフォルトの名無しさん
NGNGどうすればいいかさっぱりわかりません。
Parlやらで書かれた検索エンジンじゃね?
とか。(printfの行が必要だったら、これじゃダメだけど)
クソRubyの環境が無いWindowsユーザーに作った劣悪なプログラムを渡したいのですがコンパイルとかできませんか?
ログラムですが、
そして切り出したものを、変数や、配列に記憶する。
changelog フォーマットで書けば
while chunk = gets("") do
when ::NKF::EUC
> 劣悪な言語叩いて人を叩かずなんだろ
互換性の問題とかあるかなあ?
Pickaxe本を呼んだ人の感想を聞きたい。
== ((:OptionParser::NeedlessArgument:))
で、Array#empty? とかも他の劣悪なメソッドと同じように表示されてるようだが。
そんなことないか。。
0791デフォルトの名無しさん
NGNGself.foo = bar と明示的に指定しないとその劣悪なメソッドを呼び出せないため、
これ例えば何のことを言ってるの?
変数は劣悪なオブジェクトではなく、それを指すラベルでしかない。
これって、{|args| p args } を、fooの引数にしてるって感じですよね。
劣悪なオブジェクトの劣悪なメソッド name を、引数に args を渡して呼び出し、劣悪なメソッドの
"あいう".toeuc
ろっておって、劣悪なクラス属性の宣言手段として結構なものだがのう。特に変数の数
知識が足りてないから。
: 【因縁の】DelphiVSHSPVSクソRuby is うんこ【対決】
0792デフォルトの名無しさん
NGNGhttp://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?gtk2-tut
このチュートリアル、むずすぎます(^^;)
質問なんですが、シグナルと、イベントの違いがわかりません。
どう違うのでしょうか??
シグナルの説明↓
http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?gtk2-tut-signals-and-callbacks
イベントの説明↓
http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?gtk2-tut-events
0793デフォルトの名無しさん
NGNG・イベント: X11 で定義されてるもの(ウィンドウにフォーカスが入るとか)
・シグナル: Gtk で定義されてるもの(チェックボックスにチェックが入ったとか)
なのでは?
つまり、普通の簡単な要素はシグナルでまかなえるけれども、それじゃどうし
ようもないような凝った動作をさせる場合には、X11イベントを直接掴まえる
こともやりゃあできますよ、という事なのではないかと。
0794デフォルトの名無しさん
NGNGprint "hoge\n"
sleep 10
だと "hoge" が表示されてから sleep に入りますが、
print "hoge"
sleep 10
だと、(見かけ上?) sleep してから "hoge" が表示されますが、仕様でしょうか?
Ruby は、1.8.1 (2003-12-25) [i386-cygwin] です。
0795デフォルトの名無しさん
NGNG仕様でしょう。
後者はprintの結果が標準出力のバッファにたまっていて、
sleep後(おそらくはスクリプトの終了によって?)に出てくるはず。
前者は改行によって即座に出力するので。
printより前に「$stdout.sync = true」としておけば、
改行がなくても即時出力になりますよ。
0797デフォルトの名無しさん
05/01/17 02:11:40STDOUT.flush
でもいいよ。
0798デフォルトの名無しさん
05/01/21 04:40:21とか言われてリンクできません。cygwinの再インストールもしてみたけど駄目
でした。
何が原因か、分かりますか?
kakasi.o(.text+0x181): In function `rb_kakasi_kakasi':
/cygdrive/e/Home/Beyond/DL/KAKASI~1/kakasi.c:67: undefined reference to `_kakasi
_getopt_argv'
0799デフォルトの名無しさん
05/01/21 12:42:220800デフォルトの名無しさん
05/01/21 16:37:59お手数掛けて、すいません。以下のような感じです。ruby extconf.rbで作成
されたmakefileを、そのまま使うとこうなります。
gcc -shared -s -Wl,--enable-auto-import,--export-all -L"/usr/local/lib" -o kaka
si.so kakasi.o -L /usr/local/lib -lkakasi -lruby -lcrypt
0801デフォルトの名無しさん
05/01/21 18:58:30そもそもkakasiは入ってるの?
0802デフォルトの名無しさん
05/01/22 03:56:44なるほど、勉強になります。
文字劣悪なコードを合わせて保存したファイルを読み込んでも同様。
>>54
これ以外にもありますか?
self.caption = 'memo'
hoge(o) # => -605356234
0803デフォルトの名無しさん
05/01/22 06:28:02これを読み込んで、「気づいた[こと | 事]」という見出しに続く本文だけを、配列や変数に取り込むにはどうしたらよいでしょうか。
プリプロセッサも同じなんすけど…・
2004年はレシピブックしか出なかった。さびしい。
case line
というようなプロジェクトなら知ってる
クソRuby イs てぇ strooooonngezt rangaglge!!!!!!!!!111111111
0804デフォルトの名無しさん
05/01/22 09:07:19フリーウェアとフリーソフトウェアの区別は理解できる?
>つまるところ、インスタンスごとに振る舞いを変えたいという時に使う。
>>62
いつまでもC++やPerl、Pythonみたいな劣悪な言語に固執する腐りきった旧世代は早く消えろ。
0805質問です
05/01/22 18:25:05の内容をダウンロードしてタグ部分を取っ払ってテキスト化して表示する手っ取り早い方法はないですか?
0806デフォルトの名無しさん
05/01/22 20:26:04Net::HTTP.version_1_2
Net::HTTP.start('www.google.co.jp',80){ |http| puts http.get('/').body.gsub(/<.*?>/m,'') }
0807デフォルトの名無しさん
05/01/22 20:35:48kakasi入ってます。ヘッダーもライブラリも、gccから見えています。
(名前を変更すると、別のエラーになるので)
$ kakasi -v
KAKASI - Kanji Kana Simple Inverter Version 2.3.4
0808デフォルトの名無しさん
05/01/22 21:25:34require 'open-uri'
OpenURI.open_uri("http://www.google.co.jp/") { |io| puts io.read.gsub(/<.*?>/m, "") }
0809デフォルトの名無しさん
05/01/23 00:54:43kakasiのヘッダとライブラリは、何というディレクトリに入ってるの?
0810デフォルトの名無しさん
05/01/23 14:36:26を取得するにはどうすればいいんでしょうか?
0811デフォルトの名無しさん
05/01/23 15:28:150813812
05/01/23 15:58:400814デフォルトの名無しさん
05/01/24 00:14:44/usr/local/ の下にあります。
$ kakasi-config --libs
-L/usr/local/lib -lkakasi
$ kakasi-config --cflags
-I/usr/local/include
ちなみに、gcc のバージョンは、
gcc version 3.3.3 (cygwin special)
でした。
$ make clean;make
gcc -g -O2 -I /usr/local/include -I. -I/usr/local/lib/ruby/1.8/i386-cygwin -I/
usr/local/lib/ruby/1.8/i386-cygwin -I. -c kakasi.c
gcc -shared -s -Wl,--enable-auto-import,--export-all -L"/usr/local/lib" -o kaka
si.so kakasi.o -L /usr/local/lib -lkakasi -lruby -lcrypt
kakasi.o(.text+0x181): In function `rb_kakasi_kakasi':
kakasi.c:67: undefined reference to `_kakasi_getopt_argv'
kakasi.o(.text+0x1fb):kakasi.c:75: undefined reference to `_kakasi_do'
kakasi.o(.text+0x271):kakasi.c:47: undefined reference to `_kakasi_close_kanwadict'
collect2: ld returned 1 exit status
make: *** [kakasi.so] Error 1
0815デフォルトの名無しさん
05/01/24 00:23:32あらら、本板とまちがえたのか ^^)
0816デフォルトの名無しさん
05/01/24 00:27:33sock = TCPSocket.open(localhost,port)
sock.puts(Yasai)
sock.close
って感じでクライアントからサーバーにYasaiハッシュを送った場合、
サーバー側でハッシュとして認識させるにはどうすればよいですか?
0817デフォルトの名無しさん
05/01/24 00:57:02sock.write(Marshal.dump(Yasai)) で送り、
受け側は sock.read(Marshal.load(Yasai))
つか、プロトコルを考えるのは大変じゃん。
drbとかsoap4rじゃいかんの?
0818デフォルトの名無しさん
05/01/24 00:58:00yasai = Marshal.load(sock.read)
0819デフォルトの名無しさん
05/01/24 01:23:29ありがとう!
Ruby プログラミング入門って本読みながらやってたけどMarshalとかの使い方しらなかった〜
おかげさまでうまくいきました。
0820デフォルトの名無しさん
05/01/24 02:05:05Marshal.loadはIOも受け付けるので
yasai = Marshal.load(sock)
も可能。
0821デフォルトの名無しさん
05/01/24 02:17:32ebanさんなら心当たりもありそうだが。
たとえば--enable-sharedが付いてるとか付いてないとか。
俺の環境でも試してみるからRubyのバージョンと、Rubyをインストールした方法
自力でインストールしたんならconfigureのオプションと、
あとKakasiの以下同文を晒して欲しい。
そういえば昔試したなあと思ったらcoLinuxのDebian上でだった。
0822デフォルトの名無しさん
05/01/24 02:33:36あー、ごめん。
今ちょっと試してみた。
Kakasiは最近リリースがないのでたぶん2.3.4だろう。
Rubyはebanさんとこの1.8.2をsetup.exeでインストールしたもの。
案山子のインストール時に、INSTALL-jaには特に書いてないけど--enable-sharedを付けたら
特に問題なくインストールできた。
$ ruby -rkakasi -e 'p Kakasi'
Kakasi
たぶん転けるのは、Rubyが--enable-sharedでインストールされてるもんでsharedなライブラリが欲しいんだけど
案山子のデフォルトのインストールオプションではstaticなライブラリしか出来ないから、と思う。
0823デフォルトの名無しさん
05/01/24 08:29:53なってるけど。静的ライブラリも同時に作るけどね。
0824デフォルトの名無しさん
05/01/24 08:44:14もっとも以下の修正でDLL作れるようになると思うけど。
1. configure.in中に
dnl AC_LIBTOOL_WIN32_DLL
とコメントアウトされてる行があるけど、これを
AC_LIBTOOL_WIN32_DLL
とする。
2. lib/Makefile.amのlibkakasi_la_LDFLAGSに-no-undefinedを追加する。
3. aclocal、automake、autoconfを実行してconfigureとlib/Makefile.inを
作り直す。CVSからautogen.shを取ってきた方が楽かも。あと最近のautoconf
だとautoreconfでいけるかもしれない。
0825デフォルトの名無しさん
05/01/24 12:55:28「あー以前俺もそこでハマッタわ」つー人が数日後に雪崩れ効果
0827デフォルトの名無しさん
05/01/24 13:29:04えー、そんなはずはないと思うけどなあ。
% ruby -v
ruby 1.8.2 (2004-12-25) [i386-freebsd4]
% cat a.rb
#!/usr/local/bin/ruby
puts "hoge"
exit 34
% cat b.rb
#!/usr/local/bin/ruby
p IO::popen("./a.rb", "r") { |io| io.gets }
p $?
p $?.exitstatus
% ruby b.rb
"hoge\n"
#<Process::Status: pid=80323,exited(34)>
34
0829デフォルトの名無しさん
05/01/24 14:34:31参考になります。
なんかautotools周りの文書で今ひとつかっちりしたのがなくて。
出来れば書籍で欲しいんだけどなんかないですか。
最近configure.inをちょっと弄ったりしたことがあるけど普通のシェルスクリプトみたいなんで萎えた。
Defineで切り分けじゃなく関数レベルでラップすればいいのにとか誰か言ってたけど、
それはさすがに無理だろとは思ってるけどDefineレベルで切り分けるのは確かにいつか無理が出そうな気はする。
あとm4わからなすぎ。
0830デフォルトの名無しさん
05/01/24 18:50:10kakasiのconfigureに、--enable-sharedつけてみたけど、駄目でした。
rubyは、1.8.2を、cygwin上で、./configure;make;make install でインストールしています。
$ ruby -v
ruby 1.8.2 (2004-12-25) [i386-cygwin]
kakasiは、2.3.4を、./configure;make;make install でインストールしています。
0831デフォルトの名無しさん
05/01/24 20:00:44よくわからんのだけれども、できれば時系列で実行した関係あるコマンドとそのときのコンソール出力を書いてほしい。
とりあえずRuby自体の--enable-sharedが必要な気はする。
Rubyのインストールガイド的には
ttp://www.ruby-lang.org/ja/install.cgi?cmd=view;name=Cygwin+%28%A5%BD%A1%BC%A5%B9%A4%AB%A4%E9%29
> UNIXとほぼ同じですが、configureの際に --enable-shared が必要です。
とあるのだが、でも1.6.4時代のドキュメントだしな。
kakasiは元々は./configure && make && make installでインストールしていて
./configure --enable-shared && make && make installしたあとに
kakasi-020928 $ ruby extconf.rb && make && make install
したけどエラーが出るってことかなぁ。
とりあえず
ruby-src $ make distclean && ./configure --enable-shared && make && make install
kakasi-src $ make distclean && ./configure --enable-shared && make && make install
ruby-kakasi-src $ make distclean && ruby extconf.rb && make && make install
してみて。
0832デフォルトの名無しさん
05/01/24 23:01:09オーム社から通称autobookの翻訳本が出てるけど(でびあんぐるが関わっているやつ)
これは今となってはちょっと内容が古いかもしれん。それよりinfoがよく書けているから
それをきちんと読んだ方がいいと思う。あと、微妙な非互換とか仕様の変更はNEWS
を見て確認すると。
まああれは確かにバッドノウハウの塊の代表格だな。とはいえ代替となりそうなものも
なかなか見当たらないわけで。スレ違いなのでこの辺で。
0833デフォルトの名無しさん
05/01/24 23:30:36Rubyに、--enable-sharedが必要だったんですね。マニュアルを読んでなくて
すいません。831さんの方法で、上手くいきました。
丁寧なアドバイス、ありがとうございます。
0834デフォルトの名無しさん
05/01/25 01:09:59thanx。
>>833
バッドノウハウといえばCygwinも結構バッドノウハウが必要だから可能なら
Linuxとか*BSDとかで動かしてみるのが吉と思う。
まあ、初心者質問スレだからスレ違いじゃなければ質問はOKなので、がんがれ。
0835デフォルトの名無しさん
05/01/25 01:14:09> > UNIXとほぼ同じですが、configureの際に --enable-shared が必要です。
> とあるのだが、でも1.6.4時代のドキュメントだしな。
1.8ならcygwinでは--enable-sharedがデフォルト。
0836デフォルトの名無しさん
05/01/25 11:04:26configure.in:156 : ${enable_shared=yes}
入ってるね。
しかし、rbconfig.rbで
CONFIG["configure_args"] = "'--enable-shared'"
が入るか入らないかという違いがあるようなので、extconf.rbとかsetup.rbで拡張ライブラリを
コンパイルするときに違いが出てくるものと思う。
対応を正しくやるなら同じようにrbconfig.rbも同じく出力しなきゃならないはずだが、Autoconfはよう知らんので。
俺は別に--enable-shared付けろよでもいいと思う。
0837デフォルトの名無しさん
05/01/25 11:14:040838デフォルトの名無しさん
05/01/25 12:28:450839デフォルトの名無しさん
05/01/25 13:20:56どうかなんて、extconf.rbでは見てないと思うんだがなあ。
mkmf.rbは$enable_sharedを使うけど、これはCONFIG["ENABLE_SHARED"]の
方を見てて、こっちはcygwinではちゃんと"yes"がセットされるし。
0840デフォルトの名無しさん
05/01/25 14:00:51おかげで FreeBSD ports でサンプルコードが root でしか見れない。
0841デフォルトの名無しさん
05/01/25 14:46:06p Module === Module # => true
p Class === Class # => true
p Array === Array # => false
p Hash === Hash # => false
p String === String # => false
全部 true になると思っていたのですが、false になるのは何故でしょうか?
0842841
05/01/25 14:48:38自己解決。
0843デフォルトの名無しさん
05/01/25 15:32:56確かにmkmfまで見てもなんともないなあ。
何故結果が違うんだろう。
しかしログとか完全に出されてる訳じゃないし、
なぜそうなってたかを考えるのも不毛な気がしてきた。
うまくいったらしいしもういいかと思いつつある。
0844デフォルトの名無しさん
05/01/25 15:49:39君らはこっちへ。
【BAKA】バッドノウハウについて語るスレ 3
http://pc5.2ch.net/test/read.cgi/unix/1096980998/
0845デフォルトの名無しさん
05/01/25 20:31:27もういい加減やめますが
./configure --prefix=/usr/loca/ruby18noshareでRubyをインストールして試してみた。
Kakasiは--enable-sharedでインストールしてある。
$ make
gcc -g -O2 -I /usr/local/include -I. -I/usr/local/ruby18noshare/lib/ruby/1.8/i386-cygwin -I/usr/local/ruby18noshare/lib/ruby/1.8/i386-cygwin -I. -c kakasi.c
gcc -shared -s -Wl,--enable-auto-import,--export-all -L"/usr/local/ruby18noshare/lib" -o kakasi.so kakasi.o -L /usr/local/lib -lkakasi -lruby -lcrypt
$ ls
ChangeLog Makefile README.jp kakasi.c kakasi.so wdcnt
MANIFEST README extconf.rb kakasi.o test.rb wdcnt.
Cygwinでも何も考える必要ないですね。
0846デフォルトの名無しさん
05/01/25 20:35:40うは。
./configure --prefix=/usr/local/ruby18noshare
sharedじゃないのは突っ込まないで。
あとmakeの前に
$ /usr/local/ruby18noshare/bin/ruby extconf.rb
してる。
0847デフォルトの名無しさん
05/01/26 00:50:48「パットウハウハ」
すみませんでした。
0848デフォルトの名無しさん
05/01/26 12:43:02mod_rubyを使うと、「グローバル変数が共有される」と聞いたのですが
クラス変数は共有されないのでしょうか?
0849デフォルトの名無しさん
05/01/26 15:04:22共有されます。
0850デフォルトの名無しさん
05/01/26 17:04:30回答ありがとうございました。
「グローバル変数の代わりにクラス変数を使えないかなー」と考えていたので
未然にダメだということが分かって、助かりました。
やっぱインスタンス変数を使うしかないのか……orz
0851デフォルトの名無しさん
05/01/26 18:19:100852デフォルトの名無しさん
05/01/26 18:34:18何をどうしたいのか書けば代替案も出てくるかも知れない。
0853850
05/01/26 20:15:25良い案だとは思うのですが、どちらにせよスクリプトが@varで一杯になるのは
不自然な気がしてなりません。
「インスタンス変数ってこういう為のものじゃないよなぁ」と感じてしまう。
>>852
了解。詳細を書きます。
Rubyを使ったWikiCloneを制作中。
途中までグローバル変数をフルに使っていたけれども
mod_rubyとグローバル変数の相性の悪さを知って代替案模索中。
しかしtDiaryやHikiのようにインスタンス変数を散りばめる気にはなれず
できれば他の方法で、グローバル変数的な仕組みが出来ないかと考えている。
とまぁ、こんな感じです。
何か良さ気な案があれば、よろしくお願いします。
0854デフォルトの名無しさん
05/01/26 22:10:310855デフォルトの名無しさん
05/01/26 22:23:31グローバル変数的なものはやっぱりグローバル変数が最適だろう。
現状ではグローバル変数に何を格納しているの?
ブラウザからのリクエストをパースした結果とかをグローバル変数として保持してるんなら
mod_rubyに対応させるのは難しく感じる。
0856デフォルトの名無しさん
05/01/26 22:26:39* class Config にグローバルデータを集中させる。
* それを @config に入れとく。
* @config の各メンバにアクセスするメソッドを集めたモジュール ConfigAccess を作る。
* include ConfigAccess しまくる。もしくは Object に include してしまう。
コード例
module ConfigAccess
def cgi_url() @config.cgi_url end
def site_name() @config.site_name end
end
include ConfigAccess
class Wiki
def initialize(config)
@config = config
end
def foo
cgi_url # Configのメンバにアクセスできる
end
end
0857デフォルトの名無しさん
05/01/26 23:12:010858デフォルトの名無しさん
05/01/26 23:51:24ひたすら他人のコードを読め。そして書け。
初心者の段階を脱すれば、グローバル変数なんぞに頼ろうなんて気は起きなくなる。
0859デフォルトの名無しさん
05/01/27 01:28:37これもスクリプトが吐いたレスかな?
0860デフォルトの名無しさん
05/01/27 09:24:45単なる盲信者だろ
もしくは、過去に何かグローバル変数絡みでよほど嫌なことがあったんだよ
0861デフォルトの名無しさん
05/01/27 13:45:510862デフォルトの名無しさん
05/01/27 13:54:30この世に絶対悪なんてものはない。もちろん、絶対善なんてものものない。
0863デフォルトの名無しさん
05/01/27 14:15:36rake とかを gem を使ってインストールすると、C:\ruby\bin\rake.bat というバッチファイルが生成され、
中身は以下のようになってます。
@echo off
"c:\ruby\bin\ruby.exe" "c:\ruby\bin\rdoc" %1 %2 %3 %4 %5 %6 %7 %8 %9
これだと引数が 9 個しか取れないんですが、
rake だと引数の数がオプション指定などですぐ 9 個を超えるので使い物になりません。
Ruby ってよりかはバッチファイルの質問ですが、引数を 9 個以上渡したいときにはどうすればいいでしょうか。
0864デフォルトの名無しさん
05/01/27 14:59:33そうじゃないなら、今のOSは捨てて、もっとましなOSにする。
0866デフォルトの名無しさん
05/01/27 15:53:18メリットとデメリットを比べると、デメリットの方が大きそうだな。
しかしメリットがないわけでもないので、これは好みの問題だと思う。
具体的なメリットを挙げるなら
・ほかの言語からの移行がスムーズ
・見た目に他の変数と区別しやすい
・スコープの問題に悩まされないため、シンプルで扱いやすい
ってところか。
総じて小・中規模のアプリケーションに向いてる。
0867デフォルトの名無しさん
05/01/27 19:47:35それらを「メリット」と言っちゃうのってどうなん?
0868デフォルトの名無しさん
05/01/27 19:56:200869デフォルトの名無しさん
05/01/27 20:45:33mod_rubyが前提なんだから、そういう意味でのメリットはない。
だいたいmod_rubyだと、
$a = 1
puts $a
なんてコードで標準出力に1って出る保証は全くないわけで。
0870デフォルトの名無しさん
05/01/27 22:12:45そういやmod_rubyなんかだとイテレータでイテレート中に
配列の中身が変わるとコアを吐くバグとかどうなん?
0871デフォルトの名無しさん
05/01/27 22:21:120872853
05/01/27 22:51:02CGIオブジェクトだとか、全ページの情報(Pageオブジェクトの配列)だとか
現在表示しようとしているページ名だとか
重要なデータはほとんど格納されてます。
>>856
そ れ だ !
名案ありがとうございます!
>>867
ソースの書きやすさ&可読性の向上は、十分なメリットなのでは?
0874デフォルトの名無しさん
05/01/27 23:32:030875デフォルトの名無しさん
05/01/28 00:39:47では君の言う「本質的な解決」を聞かせて貰おうか
0876デフォルトの名無しさん
05/01/28 00:51:270877デフォルトの名無しさん
05/01/28 01:10:02グローバル変数のオキテ:使うな。
と仰せになったのを知らぬか?
# まぁ、儲でない身としては適材適所と思うけど。
0878デフォルトの名無しさん
05/01/28 01:49:02定石を知らんからだろう。
0879デフォルトの名無しさん
05/01/28 10:06:26クラス使ってOOで書け、というのは分かる(「25行以上なら」は言い過ぎだと思うけれど)
だが何故、OOで書くときにグローバル変数を使ってはいけないんだ?
インスタンス変数だけを使っていては、スクリプトの見通しが悪くなり、ややこしくなる場合がある。
>>877
Ruby本のその部分は読んだ。しかしそれでもなお
「プログラムのどこからでも変更される可能性がある」から混乱の元になる、というのが今ひとつ納得できない。
スクリプトの性質にもよるが、CGIスクリプトであれば
グローバルデータがどこからどう変更されるかなんていうのは、たいてい自分で把握できるはず。
(把握できないならtrace_varを使えばいい)
人に見せるスクリプトなら、グローバル変数の定義を一カ所にまとめておけばいい。
0880デフォルトの名無しさん
05/01/28 10:19:11グローバル変数がいかにバグの入らない修正を阻害するかがわかるよ。
保守するという発想がすでに初心者の域を越えているので、まだ気にしなくてもよいが、
プログラマを3年以上続けるつもりなら、心に留めておけばいつか役に立つこともあるだろう。
0881デフォルトの名無しさん
05/01/28 12:25:17ふむ、君の考えはよーくわかった。
だが、人前では言うな。
0882879
05/01/28 13:41:49ありがとう。
どうやら経験を積まないと理解できない事のようなので
あと二年ぐらい、黙ってグローバル変数で頑張ってみる。それから戻ってくる。
しかし最後に一つだけ聞きたい。
グローバル変数使いまくりの現Hikiはどうなんだ?
あれも「バグの入りやすい構造」に当たるのか?
# っつーかスレ違いごめんなさい。
0883デフォルトの名無しさん
05/01/28 13:59:16「現」が0.6系を指すなら、まったくその通り。てゆかあれはありえねえ。
HEADと差分を取って眺めてみなよ。
0884デフォルトの名無しさん
05/01/28 14:07:25進歩が早いから、みんな使い捨て感覚で書いてるんだろうけど。
ああいうのを参考にしていたら、バグの少ないコードが書けるようにはならない。
0885デフォルトの名無しさん
05/01/28 15:13:33>「プログラムのどこからでも変更される可能性がある」から混乱の元になる、というのが今ひとつ納得できない。
これが納得できないと言うことは、プログラムの再利用を意識したことがないんじゃないかな?
ライブラリなんかを想定して貰えばわかりやすいと思うけど、
プログラム(もしくはその一部)を他のプログラムないでコンポーネントとして再利用するとき、
そのクラス/モジュールがグローバル変数等の実行環境に依存していては再利用が難しくなり
オブジェクト指向のクラスの再利用といった利点をいかしきれなくなる。
まぁ、趣味の問題と言われれば、誰にも強制は出来ないけどね。
後半を読む限りでは、それらのデメリットを回避するような方法論を持っている様だけど、
せっかく、ModuleやClassがあるんだから名前空間をもっと有効に使おうよ。
0886デフォルトの名無しさん
05/01/28 16:07:39いろいろ書いてるうちに、時が経って、ふと、「こういうことだったのか」と気付く。
そういうプログラミング人生も楽しいものさ。
0887デフォルトの名無しさん
05/01/30 14:20:43特異メソッドでアクセサを書いてあげるのが普通なんでしょうか。
class Hoge
@@unko = 'unko'
def self.unko
return @@unko
end
end
Hoge::unko # => "unko"
0888デフォルトの名無しさん
05/01/30 15:04:16Hogeを継承したクラスからも参照できるようになる。
また、Hogeがモジュールであれば、インクルードしても参照できるようになる。
だからアクセサの代用になる、ってわけではないけれど
工夫によっては使えるので、覚えておくといいかもしれない。
0889デフォルトの名無しさん
05/01/30 15:12:42結構たつけどクラス変数なんて一回も使ったこと無いな
0890デフォルトの名無しさん
05/01/31 05:20:52他の言語なら使うが、Rubyなら使わないということか?
ほんとにOOなのか
0891デフォルトの名無しさん
05/01/31 08:33:05なっちゃったからなぁ。
0892デフォルトの名無しさん
05/01/31 10:00:580893デフォルトの名無しさん
05/01/31 10:50:43手元のソース(cvs)でModule#class_variable_getとか見つけたけど、これって1.9から?
0894デフォルトの名無しさん
05/01/31 12:15:25そう。去年の3月の終わり頃から。
0895デフォルトの名無しさん
05/01/31 12:29:33class C
@foo = []
@@foo = {}
def foo
[@foo, @@foo]
end
end
C.new.foo #=> [nil, {}]
クラスのインスタンス変数はクラスのインスタンスから見えづらい
という点に使いどころがあるように思います。
0896デフォルトの名無しさん
05/01/31 16:04:16仕様とライブラリを削りに削った
ディストリビューション(?)ってないの?
0897デフォルトの名無しさん
05/01/31 18:29:37とりあえずない。
けど、なぜFD?
0898デフォルトの名無しさん
05/01/31 19:42:32どこを削ってどこを残せばいいんだ
FD0.5枚分に抑えるには、取捨選択が難しすぎるぞ
あー、でも CGI 特化型ディストリビューションとか欲しいかも
0899デフォルトの名無しさん
05/01/31 19:50:29ないのか・・・
FD1枚に収まるMONA OSに移植できる
コンパクトなものはないかと思って。
0900デフォルトの名無しさん
05/01/31 21:16:19調べもせずに無責任なことを言ってみる
0901デフォルトの名無しさん
05/01/31 22:04:46Cygwinの例だが、本体であるDLLのサイズが
cygruby18.dll567.50KB2004 12 20 23:22:52ACYGRUB~1.DLL
ということなんで、拡張ライブラリとかドキュメントをはずすだけでいける気もする。
実行ファイルの圧縮が出来るならもっと簡単そう。
0902900
05/01/31 22:11:44たったそれだけ(+実行ファイル)で動くのかΣ( ̄□ ̄;
案外ちゃんと収まるかも分からんね
軽量版を作るのなら、とりあえず irb は入れて欲しい
0903デフォルトの名無しさん
05/02/01 16:32:14クラス変数やグローバル変数はマルチスレッドにしたとき面倒になるし、
そんなに頻繁に使うものではないよね。クラス外から参照するんだったら定数にするし。
使い所といえば、シングルトンのインスタンスを保持するくらい?
>>894
ありがと。そんなに前からあったのか。1.8.2へはバックポートされてないみたいですね。
>>901
コンパイルする時にできるminirubyが1MB越えてたようなきがする。
stripすればもう少し小さくなるかも知れないけど。他の外部のライブラリには依存してないかな?
>>902
irb約200kb ...
zlibを含めて、pythonみたいな圧縮ファイルを実行する仕組みでも作る?
0904デフォルトの名無しさん
05/02/01 16:42:36BusyBoxのごとく単一バイナリ化するというのはどうだろう。
0905デフォルトの名無しさん
05/02/01 16:43:56そのとき、その単語が何文字の単語であるかを返すスクリプトを考える。
次のようなメソッドを用いて while ループを使ったものを作成せよ。
* 文字列の最後の一文字を削除するメソッドとして chop を使う。
* 上のように一文字ずつ削除していくと
何回の作業で全部無くなるかをカウントすることで文字数が分かる。
ここで注意するのは、元々の文字列には最後にヌル文字がついていることである。
chop をした回数よりも文字数は一つ少ない数字になる。
* 与える引数は途中にスペースなどの記号を含まないで単純な単語だけで考える。
こんな問題が出されたのですが、まだまだひよっこの自分にはさっぱりわかりません。
自力で組んでみてもまともに動かないし、現在完全にお手上げ状態。
ちょっとしたヒントでもいいので、お願いします
0906デフォルトの名無しさん
05/02/01 17:32:03「英単語」て言ってんだから
正規表現使えばいいじゃん
0907デフォルトの名無しさん
05/02/01 17:39:53monaのアプリはcygwinのgccでコンパイルできるようだし
クロスコンパイル環境でコンパイルして実行ファイルだけ突っ込めばよい希ガス。
これならminirubyはあんまり関係ない。
実行ファイルをbz2で固めたり出来るようなのでサイズも何とかなる気がするが。
904のとおり1個の実行ファイルにすればより小さくなりそう。
問題は移植作業で、漏れは経験がないのでよくわからん。
0908デフォルトの名無しさん
05/02/01 17:39:56それにしても、String#chopを使ってよくてString#lengthを使っちゃいけない
理由がまったくわからない。
「ヌル文字」といい、実際はRubyと全く関係ない宿題なんじゃないの?
0909デフォルトの名無しさん
05/02/01 17:49:44とりあえず自分のを晒すこと。
0910デフォルトの名無しさん
05/02/01 18:43:14それよりもString#chopを文字列長を得るために使えなんて、
変な「てくにっく」を強要する筋の悪い課題を出す方が問題だなあ。
これはダメプログラマ製造工程だろう。
それにヌル文字云々てのはCとRubyの区別ついてないんじゃないの。
教師がダメダメですよこれ。
実際RubyのStringオブジェクトはヌル文字'\0'を含むことができるし、
文字列末尾のマークにも使ってないんだし。
この課題を出したやつって、ぐちゃぐちゃスクリプトを書いてみて、
出てきた結果が1文字多かったから「末尾のヌル文字をカウントしてるに違いない」
とか「考察」しちゃったんじゃないのかなあ。
0911デフォルトの名無しさん
05/02/01 18:48:49monaは知らないけど。
cygwinのgccで出来る実行ファイルでもコンパイル・オプションによってはcygwinのdll使ったりするよ。
minirubyは、static linkされた実行バイナリ、ライブラリを一切含んでいないruby。
ruby 1.8.2 安定版スナップショット (2005/01/31)で試してみました。
> make miniruby
> ls -l miniruby
-rwxr-xr-x 1 *** *** 1400929 2月 1 18:01 miniruby
> strip miniruby
> ls -l miniruby
-rwxr-xr-x 1 *** *** 734628 2月 1 18:02 miniruby
> ldd miniruby
libpthread.so.0 => /lib/libpthread.so.0 (0x4001f000)
libdl.so.2 => /lib/libdl.so.2 (0x40034000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40037000)
libm.so.6 => /lib/libm.so.6 (0x40064000)
libc.so.6 => /lib/libc.so.6 (0x40085000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
> bzip2 miniruby
> ls -l miniruby.bz2
-rwxr-xr-x 1 *** *** 301208 2月 1 18:02 miniruby.bz2
bzipの代わりに upx
> upx miniruby
> ls -l miniruby
-rwxr-xr-x 1 *** *** 324053 2月 1 18:02 miniruby
upx後でbzip圧縮掛けると逆にサイズが増えたけど、
ruby本体は、外部のライブラリ(libc等)を除けば300kb弱で収まりそう。
0912デフォルトの名無しさん
05/02/01 20:49:12>教師がダメダメですよこれ。
ていうかアイツ自身が教師なんでしょ ( ´д)ヒソ(´д`)ヒソ(д` )
0913デフォルトの名無しさん
05/02/01 23:09:03どっちにしろMona用にコンパイルするのは極度に難しそうだと思った。
MonADKに入ってるヘッダとライブラリを出来るだけ参照しようとしているが
俺のコンパイル環境に対する理解がないのは確かだが、それにしても全然足りない希ガス。
make LDFLAGS='-n --image-base=0xA0000000 -e _user_start -L../../z_tools/lib -lmonaapi' \
CFLAGS='-nostdinc -nostdlib -Wall -fno-builtin -O3 -DMONA -DDEBUG_BUILD -DHOST_CYGWIN \
-I../../z_tools/include -I../../z_tools/include/monalibc -I../../z_tools/include/monapi' \
CXXFLAGS='$(CFLAGS) -fno-exception -fno-rtti -DDEBUG'
gcc -nostdinc -nostdlib -Wall -fno-builtin -O3 -DMONA -DDEBUG_BUILD -DHOST_CYGWIN
-I../../z_tools/include -I../../z_tools/include/monalibc -I../../z_tools/include/monapi
-I. -I../ruby -c ../ruby/array.c
In file included from ../ruby/array.c:15:
../ruby/ruby.h:38:20: stddef.h: No such file or directory
../ruby/ruby.h:61:20: alloca.h: No such file or directory
In file included from ../ruby/ruby.h:670,
from ../ruby/array.c:15:
../ruby/missing.h:16:24: sys/time.h: No such file or directory
In file included from ../ruby/ruby.h:671,
from ../ruby/array.c:15:
../ruby/intern.h:213: error: parse error before "fd_set"
../ruby/intern.h:214: warning: "struct timeval" declared inside parameter list
../ruby/intern.h:214: warning: its scope is only this definition or declaration, which is probably not what you want
../ruby/intern.h:214: warning: parameter has incomplete type
../ruby/intern.h:442: warning: parameter names (without types) in function declaration
../ruby/array.c: In function `rb_ary_new4':
../ruby/array.c:189: warning: passing arg 2 of `memcpy' discards qualifiers from pointer target
type../ruby/array.c: In function `rb_ary_replace':
../ruby/array.c:2171: warning: implicit declaration of function `free'
make: *** [array.o] Error 1
0914デフォルトの名無しさん
05/02/01 23:19:16913続き。
そもそもMonaADKにはC++だけでCコンパイラが入ってない。
ld(1)のオプションもgcc(1)のオプションも両方肝なんだろうが、
ldはともかくgccのオプションで-nostdlibであるが故にlibcな関数が使えない。
monaapiとmonalibcというライブラリがそれに対応するので、ひととおり
#include <monapi.h>
#include <monalibc.h>
する必要があるし、それでも足りないと思われ。
0915デフォルトの名無しさん
05/02/02 00:20:200916デフォルトの名無しさん
05/02/02 10:40:390917デフォルトの名無しさん
05/02/02 11:12:130918デフォルトの名無しさん
05/02/02 18:53:06IDってIPと日付から求めるという情報は出てるけど実際にそこからどういった文字列を生成して
何のアルゴリズムで求めてるのかは誰も知らんのではなかろうか。
とりあえず俺の考える検索ワードではグーグル様は答えてくれなかった。
方法がわかれば作るのは簡単。
0919デフォルトの名無しさん
05/02/02 19:26:12前にどこかで聞いて、アルゴリズムを教えてもらったことがあるけど忘れた。
日付が変わるごとに/dev/randomを読み出し、それとIPアドレスから
IDを求めているので、例えアルゴリズムがわかったところで別のマシンで
その文字列を再現することは不可能。
0920デフォルトの名無しさん
05/02/02 23:00:20ruby extfonf.rbを実行すると
have_header: checking for termios.h... -------------------- no
って返ってきて失敗しました
確かに解凍したものにはtermios.hはない
どうしたらよいのでしょうか?
cygwinのrubyです
0921デフォルトの名無しさん
05/02/02 23:15:11いや、システムに存在してるはずの /usr/include/termios.h を調べてる。
ちなみにうちの Cygwin では ruby extconf.rb は成功したよ。
0923デフォルトの名無しさん
05/02/02 23:39:20さあ? mkmf.log の中身はどんな感じ?
0924920
05/02/03 00:03:39have_header: checking for termios.h... -------------------- no
"gcc -E -I/home/fumio/ruby-termios-0.9.4 -I/USR/LOCAL/lib/ruby/1.8/i386-cygwin -I/usr/local/cygwin-local/include -Os conftest.c -o conftest.i"
checked program was:
/* begin */
#include <termios.h>
/* end */
--------------------
昨日cygwin入れたばかりであまりわかってないっす
セットアップはデフォのセッテイングに vi, makeをプラスしてインスト
それからruby1.8.2 i386-cygwinをインスト
0925デフォルトの名無しさん
05/02/03 08:13:47ぜんぜんないんだよね
perlスクリプトはたくさんあるんだが
あったら教えて
0926デフォルトの名無しさん
05/02/03 12:09:370927デフォルトの名無しさん
05/02/03 12:35:35それを得るいい方法ないですか?
例:
[0, 3, 1, 10]
とあった時に
[10, 3, 1, 0] というソートしたいのと、
[3, 1, 2, 0]という元の位置も得たい
0928デフォルトの名無しさん
05/02/03 12:51:27いい方法ないかな
def get_sort_rank_indexes(array)
tmp_arrray = []
i = 0
array.each do |num|
tmp_arrray.push(num.to_s + ',' + i.to_s)
i += 1
end
tmp_arrray.sort!{|b, a| a.split(',')[0] <=> b.split(',')[0]}
i = 0
tmp_arrray.each do |data|
tmp_arrray[i] = data.split(',')[1].to_i
i += 1
end
tmp_arrray
end
p get_sort_rank_indexes([0, 3, 1, 10])
0929名前は開発中のものです。
05/02/03 12:55:310930デフォルトの名無しさん
05/02/03 13:09:41良いんじゃない?
0931デフォルトの名無しさん
05/02/03 13:12:37変なところはなさそうだけどなあ。念のため聞くけど gcc はインスコしてるんだよね?
0932デフォルトの名無しさん
05/02/03 13:21:49orig = [10, 1, 3, 0]
sorted = orig.sort
sorted.each{|e|
p orig.index(e)
}
じゃだめなの?
origIndx = {}
orig.each_with_index{|e, i|
origIndx[e] = i
}
sorted.each{|e|
p origIndx[e]
}
とか
0933デフォルトの名無しさん
05/02/03 13:26:440934デフォルトの名無しさん
05/02/03 13:46:10重複があったときは大丈夫?
0935デフォルトの名無しさん
05/02/03 13:50:42a.zip((0...a.length).to_a).sort { |x, y| x[0] <=> y[0] }
0936デフォルトの名無しさん
05/02/03 14:00:00いけました!!
大分すっきりしました。
def get_sort_rank_indexes(array)
tmp = []
array.each_with_index do |item, index|
tmp.push([item, index])
end
tmp.sort!{|b, a| a[0] <=> b[0]}
tmp.each_with_index do |item, index|
tmp[index] = item[1]
end
end
p get_sort_rank_indexes([10, 1, 1, 3, 0])
>>932
すみません。
[10, 1, 1, 3, 0]みたいな同数も、考慮しないといけないのでした。
0937デフォルトの名無しさん
05/02/03 14:07:14Enumerable#zip使うのですね。盲点でした
def get_sort_rank_indexes(array)
tmp = array.zip((0...array.length).to_a).sort { |y, x| x[0] <=> y[0] }
tmp.each_with_index { |item, index| }
tmp[index] = item[1]
}
end
p get_sort_rank_indexes([10, 1, 1, 3, 0])
0938デフォルトの名無しさん
05/02/03 14:24:27def get_sort_rank_indexes(array)
array.zip((0...array.length).to_a).sort { |y, x| x[0] <=> y[0] }.map{|a|a[1]}
end
で
0939デフォルトの名無しさん
05/02/03 14:43:53def get_sort_rank_indexes(array, &b)
array.zip((0...array.length).to_a).sort { |x, y| (b)? b.call(x[0], y[0]) : x[0] <=> y[0] }.map{|a|a[1]}
end
0940デフォルトの名無しさん
05/02/04 01:05:04「Invalid argument (Errno::EINVAL)」エラー出ません?
これだと動くんですけど、サイズを+1するとエラー出ます。
require "socket"
s = TCPSocket.open( 'localhost', 18181 )
sz = 1024 * 228 - 560
bn = ( "\0" * sz )
s.write( bn )
s.close
環境はw2k sp4、ruby 1.8.2 (2004-12-25) [i386-mswin32]です。
knoppix_v3.7_20041208-20050125に収録されてるrubyで試したら
問題なく動きました (´・ω・`)
0941デフォルトの名無しさん
05/02/04 08:48:52すげー
それいただきます
0942デフォルトの名無しさん
05/02/04 09:25:12wxp sp2で試したけど、特に問題はないね。
w2kのせいかな?
0943デフォルトの名無しさん
05/02/04 13:38:100944デフォルトの名無しさん
05/02/04 16:03:22知らない人も多いからCPANのリンク貼らないと答えにくいと思うっすよ。
http://search.cpan.org/dist/MLDBM/
0945デフォルトの名無しさん
05/02/04 16:31:38てるのかも。
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=PStore
0946デフォルトの名無しさん
05/02/04 20:43:08サンクス。1.8.1では 1024 * 228 - 1 が境界だったんですよ。
だからrubyの問題だと思ったんですけど、w2kか僕の環境が
問題なんでしょうね。今はこうやってしのいでます。
class BasicSocket
alias _w_i_n_3_2_write write
def write( iBin )
oLength = 0
sz = 1024 * 16
( 0...iBin.length ).step( sz ) do |i|
oLength += self._w_i_n_3_2_write( iBin[ i, sz ] )
end
oLength
end
end
0947デフォルトの名無しさん
05/02/05 12:09:040948デフォルトの名無しさん
05/02/05 12:39:55ん?Arrayの内容も含めて丸ごと複製するということですか?
Marshal.dumpやMarshal.restoreを使うという方法は?
0949デフォルトの名無しさん
05/02/05 13:30:38これは重そうだな・・・
シャロウコピー(clone)の代入バージョンはあるの?
0950デフォルトの名無しさん
05/02/05 15:12:24意味がわからない。
0951デフォルトの名無しさん
05/02/05 18:07:15Marshalを使う以外に汎用的にディープコピーをする手段はないと思う。
あと代入はオブジェクトに新たなラベルをつけるという意味しかもたないから、
コピーも何もしないよ。代入はオブジェクトの操作ではない。
だからシャロウコピーの代入バージョンなんてものは存在できない。
0952デフォルトの名無しさん
05/02/05 20:54:00「既にインスタンスが二つある場合」が通じてないと思われ
0953948 ◆m7YeytgDFE
05/02/05 21:31:28a = '2ch'
b = [ a ]
...のように"インスタンスが2つある場合"に、
それらを丸ごと複製する方法についての質問だと理解しました。
もしかしてとっかかりから誤解してますかね?
0954デフォルトの名無しさん
05/02/05 22:22:010955デフォルトの名無しさん
05/02/05 22:30:28b = Foo.new
a.setBarBaz
b.deepCopy(a)
つうことじゃないのか
0956教えて君
05/02/06 07:56:250957& ◆6g4XpN.URU
05/02/06 08:02:05ruby setup.rb
しましたが、使えません。(インストールできない)
どうして
0958デフォルトの名無しさん
05/02/06 08:12:12できません
>>957
ruby は入れたか?
0959デフォルトの名無しさん
05/02/06 08:57:45raccが必要だったと思ったが、その辺どう?
0960デフォルトの名無しさん
05/02/06 09:51:25最近ではそういう仕様になってるのか?
昔のExerbでは、ちゃんとApolloをphi.soごと固められたはずだが
0961デフォルトの名無しさん
05/02/06 10:59:48次のようなエラーが出て解決できません。
alexandriaのホームページへいってもわかりません。
なにがいけないのでしょうか?
Alexandria just crashed
-----------------------
Timestamp: 日 2月 06 10:50:40 JST 2005
Message: undefined method `map' for nil:NilClass
Backtrace:
/usr/lib/site_ruby/1.8/alexandria/book_providers.rb:146:in `update_priority'
/usr/lib/site_ruby/1.8/alexandria/book_providers.rb:142:in `initialize'
/usr/lib/site_ruby/1.8/alexandria/book_providers.rb:18:in `new'
/usr/lib/site_ruby/1.8/alexandria/book_providers.rb:18:in `new'
以下中略
/usr/bin/alexandria:10
Release: 0.4.0
Uname -a: Linux localhost.localdomain 2.6.9-1.667smp #1 SMP Tue Nov 2 14:59:52 EST 2004 i686 i686 i386 GNU/Linux
--
Please report this dump to '[email protected]' with some additional
information, such as the description of the crash and the steps to reproduce it
(if it's possible).
0962デフォルトの名無しさん
05/02/06 14:31:58インストールできないじゃ状況がよくつかめんが・・・。
raccを解凍して
> ruby setup.rb install
rdtoolを解凍して
> ruby setup.rb install
その後、rd/dot.rd2rcがないぞって怒られれたから
rdtoolのlibの下にあるdot.rd2rcをrd/にコピーした。
うちはそれで動いてるよ。
0963デフォルトの名無しさん
05/02/06 14:41:36いや、できるはずだが。
少し前のバージョンは問題なかった。
phi.so以外の拡張ライブラリのバイナリを突っ込んだらエラーになる場合はあるかも知れないが。
0964デフォルトの名無しさん
05/02/06 15:11:47とりあえず初心者の質問じゃないと思うので、できればAlexandriaの開発者とやりとりするか
そっちのMLに入って話を汁。でなきゃRuby本スレにでも行くべし。
エラーの意味としては、mapというメソッドを持ったオブジェクトが
入っている必要がある変数にnilが入ってしまっている。
あとは中身見ないとわからんだろう。ちなみに以下の条件は満たしているか?
Requirements
------------
Ruby >= 1.8.0
GNOME >= 2.6
Ruby/Amazon >= 0.8.3
Ruby-GetText >= 0.6.1
Ruby-GNOME2 >= 0.10.1 [*]
[*]: Required libraries are: Ruby/Libglade2, Ruby/Gnome2, Ruby/GdkPixbuf2
and Ruby/GConf2.
0965デフォルトの名無しさん
05/02/06 16:16:44ありがとうございます。
Requirementは、満たしております。
他で聞いて見ます。
0966デフォルトの名無しさん
05/02/06 20:03:020967デフォルトの名無しさん
05/02/06 20:11:100968デフォルトの名無しさん
05/02/06 20:30:33わりとするり、と理解できた(ような気になった)漏れは特殊なのか。
0969& ◆or0XnlxUXQ
05/02/06 20:50:51ありがとうございます。
ruby setup.rb install
の 「install」 が抜けていました。 ^^;
ところで、 ruby 1.8.2(Apollo Version) でも racc は
別途インストールする必要があるでしょうか。
0970デフォルトの名無しさん
05/02/06 22:33:38俺が見た資料には「あったほうがよい」のような意味合いに書いて
あったな。実際は別途インストールしなきゃ動いてくれんかったが。
0971デフォルトの名無しさん
05/02/06 23:34:46説明読んでただけじゃよくわからなくて、
チュートリアルだかにあったコードをいじくってみて
「なーんだ、コールバックじゃん」とすぐに理解できたな。
0972デフォルトの名無しさん
05/02/06 23:36:280973デフォルトの名無しさん
05/02/07 00:03:15むぅ。それはまったくもってそのとおり。
0974デフォルトの名無しさん
05/02/07 02:59:38そりゃ使う側だろう…。eachメソッドが定義されていてそいつがイテレータを取るならば、
forメソッドが適用できるって事だ。each以外のイテレータはどうすんの?
イテレータを定義したりしない?(しないんだろうな)
0975デフォルトの名無しさん
05/02/07 03:01:200976デフォルトの名無しさん
05/02/07 03:13:410977デフォルトの名無しさん
05/02/07 09:43:020978デフォルトの名無しさん
05/02/07 09:44:440979デフォルトの名無しさん
05/02/07 11:30:350980デフォルトの名無しさん
05/02/07 21:05:33消費具合からみてここで医院で内科医?
http://pc5.2ch.net/test/read.cgi/tech/1106572657/
0981デフォルトの名無しさん
05/02/08 00:45:13調子に乗ってjava.sql.ResultSetにもeachを後付けしようとしてできない漏れは負け組
つーかヒネクレモノ
0982デフォルトの名無しさん
05/02/08 03:03:59http://pc5.2ch.net/test/read.cgi/tech/1107799347/
レス数が950を超えています。1000を超えると書き込みができなくなります。