Ruby 初心者スレッド ..
655:652
08/05/25 02:44:45
>>653
素敵。
しかし別の新たなエラーが。もう少し調べます。(そもそも
掘って put は出来るのか?)
ありがとうございます。
656:652
08/05/25 02:57:43
わかった。open-uri は ファイルを扱うものなのか。
ディレクトリは扱えないのか。
失礼しました。
657:デフォルトの名無しさん
08/05/25 04:48:04
まつもとゆきひろがB型肝炎に感染
スレリンク(newsplus板)
658:デフォルトの名無しさん
08/05/25 15:24:45
質問です。
#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"
print "<html><body>Hello World</body></html>"
この内容の.cgiファイルを
URLリンク(land.to)
このレンタルサーバーにアップしたのですが。
500内部サーバエラーになってしまいます。
なぜなのでしょうか?どうすれば動かせるのでしょうか?
回答よろしくお願いします。
659:デフォルトの名無しさん
08/05/25 15:35:52
エラーメッセージの意味がわからんです
おしえてエロイひと
c:/ruby/lib/ruby/1.8/xmlrpc/parser.rb:152:in `fault': wrong fault-structure: {"f
aultCode"=>"Client", "faultString"=>"Application failed during request deseriali
zation: \nnot well-formed (invalid token) at line 6, column 345, byte 3640 at /h
ome/seesaa/cpan/lib/i686-linux-thread-multi/XML/Parser.pm line 187\n"} (RuntimeE
rror)
660:デフォルトの名無しさん
08/05/25 15:52:12
>>659
文字コードの知識もないspamブロガーさんこんにちは
661:デフォルトの名無しさん
08/05/25 15:56:29
>>660
そう見えるよなあ
投稿スクリプトをサンプルとして提供するのは止めたほうがいいと思うぞ
で、まあ、seesaaはShift_JISだったはずなのでShift_JISで送れ
662:デフォルトの名無しさん
08/05/25 16:07:16
>>658
CGIファイルのパーミッションを実行可能に変更していないのだと予想
663:658
08/05/25 16:41:39
解決しました。
ありがとうございました。
664:デフォルトの名無しさん
08/05/25 17:38:53
【プログラム】
#! ruby -Ks
class Ice
def sizeIce(size)
print(size)
end
end
class IceName < Ice
def initialize(name="未設定")
@iceName = name
end
attr_accessor :iceName
end
class IceSize < Ice
def initialize(size="未設定")
@iceSize = size
end
def sizeIce(size)
super(size)
print("サイズです。\n")
end
attr_accessor :iceSize
end
ice = [IceName.new("メロンソーダ"),IceName.new("レモン&ライム"),IceName.new("スイカバー")]
ice2 = [IceSize.new("中"),IceSize.new("小"),IceSize.new("大")]
for k in 0..ice.size-1
print(k+1,"個目 ",ice[k].iceName,"は",ice2[k].sizeIce(ice2[k].iceSize))
end
665:664
08/05/25 17:44:59
【表示される結果】
中サイズです。
1個目 メロンソーダはnil小サイズです。
2個目 レモン&ライムはnil大サイズです。
3個目 スイカバーはnil
【表示したい結果】
1個目 メロンソーダは小サイズです。
2個目 レモン&ライムは大サイズです。
3個目 スイカバーは中サイズです。
昨日からrubyの勉強を始めました。
初めてのプログラミングなので、わからないことが多々あり苦戦しております・・・。
上記のプログラムを実行するとエラー等は出ないのですが、表示結果が思い通りになりません。
なぜ一番最初に「中サイズです。」が表示されるのかすら理解できません。
一体どの部分に問題があるのでしょうか?
わかりにくいプログラムだとは思いますが、もしよろしければ回答お願いします。
※このプログラムは、練習目的で作っているのでわざわざ面倒なことをしています。
666:664
08/05/25 17:46:44
訂正
【表示したい結果】
1個目 メロンソーダは中サイズです。
2個目 レモン&ライムは小サイズです。
3個目 スイカバーは大サイズです。
でした。すいません。
667:デフォルトの名無しさん
08/05/25 17:59:29
(半分ほど作り変えた時点で悩む)
あー、まあいいや
print は引数をその場で画面に表示し、返り値として nil を返す
表示部とデータ部を完全に分けて考えるべき
最終的なデータを最後に print で表示するだけ、という考え方な
Ice.sizeIce で print を使っているのはよくない
668:デフォルトの名無しさん
08/05/25 18:16:52
てゆーか、継承の考え方がおーざっぱに間違ってね?
「アイスの価格」が「アイス」というクラスを継承するはずがない
「アイスの名前」や「アイスの価格」は「アイス」というクラスの変数であるべき
class Ice
def initialize(name=nil, size=nil)
@name = name
@size = name
end
attr_accessor :name, :size
end
data = [
["メロンソーダ","中"],
["レモン&ライム", "小"],
["スイカバー", "大"]
]
products = Array.new
data.each do |a|
products.push(Ice.new(a[0], a[1]))
end
products.each_with_index do |ice, i|
puts "#{i+1}個目 #{ice.name}は#{ice.size}サイズです"
end
669:デフォルトの名無しさん
08/05/25 18:22:51
抽象的に「アイス」があって、
「価格のあるアイス」とか「サイズのあるアイス」とか「価格とサイズのあるアイス」と
具体化...と考えているのかもしれないが、そういう継承の使い方はあっさり破綻するので
やめたほうがよい。
まずは合言葉「継承は最後の武器だ」かと。
670:デフォルトの名無しさん
08/05/25 18:34:03
>>664
k == 0 の時の出力
中サイズです。
1個目 メロンソーダはnil
k == 1 の時の出力(最初の行は↑の行に続けて出力)
小サイズです。
2個目 レモン&ライムはnil
k == 2 の時の出力(は省略)
「?サイズです。」はice2[k].sizeIce(...)メソッド実行時の出力
「?個目 ***はnil」がループ内のprintの出力
最後のnilはice2[k].sizeIce(...)の返却値 # sizeIce(...)最後のprintの返却値
# k== 0 の時 print(1,"個目 ","メロンソーダ","は",nil) になっている
問題は「経験が足りない」事
もっとたくさんソースを書いて実行してデバッグすれ
671:デフォルトの名無しさん
08/05/25 18:42:30
マニュアルには「返り値」「戻り値」があるけど「返却値」はないな
…なんで2種類あるんだ
マニュアルくらいどっちかに統一せえ
672:664
08/05/25 18:53:18
>>667-670
レスありがとうございます。
どうやら自分の言葉足らずだったようです。
現在こちらのサイトさん(URLリンク(www.rubylife.jp))のRuby入門というところを一番上から進めています。
現在は「Rubyオブジェクト指向プログラミング」の「クラスの継承」の部分まで読み終えています。
ひとつの項目が終わるごとに、その項目で覚えたメソッド等を使ってプログラムを作る練習をしているのです。
なので今回は「クラスの継承」「オーバーライド」「super(引数)」の3つを使ったものを作ろうとしていました。
・・・と自分で考えたらあんな感じになってしまったのですが、このような使い方はそもそもおかしいようですね。
色々混ぜすぎて自分でも分けがわからなくなってましたし。
次回からはもっと処理を個別に分けてプログラミングするように心がけます。
クラスの継承は結構重要そうな感じだけど、実際はそこまで実用性があるわけじゃないのかな・・・。
一番最初に「中サイズです。」が出てきてしまう理由や、「nil」が表示される問題などは解決しました。
>>668さんのような配列の書き方は非常にわかりやすい・・・次からはこのように表記したいと思います。
大変わかりやすく解説していただきありがとうございました。
673:デフォルトの名無しさん
08/05/25 20:35:05
すみません、マニュアルみたりしてるんですが、見落としてるのか分からないので、教えてください。
クラスの定義の中にたまに、「:」がでてくるんですが、:の意味を教えてください。
たとえば、
Railsだと、「t.string :title」な表現があったり、
インスタンス変数のアクセサを作るときは、「attr_accessor :x, :y」とかしますよね。
この:の意味が掴めないですorz
class CreateArticles < ActiveRecord::Migration
def self.up
create_table :articles do |t|
t.string :title
t.text :description
t.string :image_url
t.decimal :price
t.datetime :date
t.string :vender
t.string :category
t.timestamps
end
end
def self.down
drop_table :articles
end
end
674:デフォルトの名無しさん
08/05/25 20:41:49
それはシンボルというものだ
675:デフォルトの名無しさん
08/05/25 21:18:50
というか、Symbol クラスのインスタンスだと説明したほうがいいかも
Rubyのメソッド名や変数名は内部的に数値で管理されてる
(2455番目に登録されたメソッド、とかそんな感じで、オブジェクトIDとは別物)
シンボルは、その数値に文字でアクセスすることができる機構だ
結果として、「文字」でメソッド自体を指し示すことができる
普通に foo と書いたら foo メソッドが動いてしまって「foo というメソッド」を指し示すことができない
しかし、そのとき「メソッド foo を示す登録番号」という指定の仕方ができるとしたら、「foo というメソッド」という指定の仕方ができる
腹減ってるので自分でも何書いてるかわからなくなってきた
試しに適当な変数作って、それと同じ名前のシンボルに to_i してみ
それが内部整数値だ
シンボルを id2name するとシンボルに対応する文字列が返る
時々「シンボルを文字列にする」という表現で説明されるがこれは本当は誤り
676:デフォルトの名無しさん
08/05/25 21:26:03
余計わからなくなるので>>675は読まなくてよし
もう遅いかもしれんが
677:デフォルトの名無しさん
08/05/25 21:31:28
>>674
>>675
さきほど、rubyの公式にアクセスできたので、FAQ見てたらシンボルということは分かったところで、余計に理解に苦しんでましたが、、、
>>普通に foo と書いたら foo メソッドが動いてしまって「foo というメソッド」を指し示すことができない
>>しかし、そのとき「メソッド foo を示す登録番号」という指定の仕方ができるとしたら、「foo というメソッド」という指定の仕方ができる
神レスありがとうございました!よく分かりました!!
678:デフォルトの名無しさん
08/05/26 10:28:13
URLリンク(www.ruby-lang.org) が落ちているような。
679:デフォルトの名無しさん
08/05/26 10:32:27
500とかはいつものことだろ、と思ったが router2.netlab.jp で止まっててアクセス自体ができないな
680:デフォルトの名無しさん
08/05/26 17:39:26
SymbolとStringの違いは「優しいRailsの育て方」本が一番わかりやすかったな。
あのキモいアイドルAAを我慢できればの話だけど。
681:デフォルトの名無しさん
08/05/26 20:55:34
Rubyで作成したGUI上で動くちょっとしたソフトウェアを
windowsクライアントに配布して利用してもらいたいとき、
クライアントのPCにもRubyをインストールしておかないと
実行できないでしょうか?
682:デフォルトの名無しさん
08/05/26 21:04:09
>>681
exerbでぐぐってみるとか。
683:デフォルトの名無しさん
08/05/26 21:05:54
Ruby/Tk以外で作らないと駄目だな
684:デフォルトの名無しさん
08/05/26 21:18:10
>>682、683
exerbを利用すればいいのですか。
新しいツールは、勉強もかねてRubyで作ることにします。
さっそく、本を買いに行ってきます。
レスありがとうございました。
685:デフォルトの名無しさん
08/05/26 21:20:38
rubyscript2exeもどうぞ。
686:デフォルトの名無しさん
08/05/26 21:26:22
おいおい、Rubyで自分以外のためにGUIツールを作るなんてアホのすることだぞ
渡されたほうも迷惑だからそういうことはやるな
687:デフォルトの名無しさん
08/05/26 21:37:59
じゃあ、何で書くのがいいのさ?
C#とか?
688:デフォルトの名無しさん
08/05/26 21:47:19
うん、あのね、どうやら
「もともとのGUI対応」
「付け足しのGUI対応」
の区別がつかないらしいんだ、初心者の人
689:デフォルトの名無しさん
08/05/26 21:55:42
そんなにも区別すべきなのか、というのも興味深い問題だと思うぜ
まあ、とってつけたGUIシステムで火傷したことがある人ばかりだから不評なんだけどさ
690:デフォルトの名無しさん
08/05/27 12:27:50
Winで動かす物はMSの道具立てでやった方が、楽だし誤解や面倒ごとも少ないのは確かだしな
まあ仕方ないさ
691:デフォルトの名無しさん
08/05/27 13:10:52
これはどういったプロジェクトなのでしょうか?
URLリンク(raa.ruby-lang.org)
692:デフォルトの名無しさん
08/05/27 15:14:16
一行が長くなって読みにくい場合、改行したくなるのですが、
どうしたらイイですか?
693:デフォルトの名無しさん
08/05/27 15:19:21
>>692
改行すればいいじゃん?
バックスラッシュ \ を使えば改行を隠すことができる
他にも「区切れのいいところ」で普通に改行することもできるが、
このへんは他の人のスクリプトを読んで参考にするといい
694:デフォルトの名無しさん
08/05/27 18:00:06
動的メソッドって?
695:デフォルトの名無しさん
08/05/27 18:09:56
Rubyの奥義のひとつ(いやRuby以外でもできるけど)
動的に定義されて動的に実行されるメソッドの8割は本当は静的でもなんとかなる
696:デフォルトの名無しさん
08/05/27 21:56:33
実行するまで在るか無いかわからないってこと?
697:デフォルトの名無しさん
08/05/27 22:02:04
マクロの代わりに使う例も多いと思う。
698:デフォルトの名無しさん
08/05/30 17:13:30
まるごとRuby!のVol.1を眺める
URLリンク(www.amazon.co.jp)
…endの連続はLispの閉じカッコの連続っぽくね?というのは
それはそれでヒドいと思う
現時点でのRubyの紙媒体のまとまった情報が欲しい人向け
スレ的にはちと情報が重いか
699:デフォルトの名無しさん
08/05/30 17:37:44
Railsレシピブックのほうに目が行ってしまった
700:デフォルトの名無しさん
08/05/30 18:24:17
#!/usr/bin/env ruby -Ku
とファイルの先頭に書いて実行すると、
env: ruby -Ku: No such file or directory
と言われてしまいます。
envで-Kuをつけたいのですが、
言われないようにする方法はどのようなものがありますでしょうか?
環境は FreeBSD 6.1-RELEASE-p23 です。
701:デフォルトの名無しさん
08/05/30 18:52:34
基本的には小手先では無理
env コマンドは複数の引数をうまく受け取ることを期待できないし、環境によっても動作が違う
たとえば、その記述は同じ FreeBSD の 5.x では期待通りに動作する
702:デフォルトの名無しさん
08/05/30 18:56:33
いやenvがどうこうというよりカーネルが…
703:デフォルトの名無しさん
08/05/30 18:59:33
あ、どうするかだっけ
#!/usr/local/bin/ruby -Ku
と書くこと
ダウンロードして即実行できないことについて文句言う的外れのアホは無視
実行するスクリプト内容を確認しないような人間をユーザーに引き込むと後々癌になるぞ
で、自前で複数環境で使いたい、という場合が問題なんだが
704:デフォルトの名無しさん
08/05/30 19:20:38
>>700
shebang行(#! で始まる)に渡せる引数は1つ、という実装が多いから無難なのは、
#!/usr/bin/env ruby
$KCODE='u'
705:デフォルトの名無しさん
08/05/30 19:32:52
ruby -Ku と $KCODE='u' はカレーとウンコくらい違う
ちなみに Ruby1.9 ではカレーとウンコが同じになった
706:デフォルトの名無しさん
08/05/30 19:37:32
>>705
あれ? $KCODEは無視されるんじゃなかったか?
707:デフォルトの名無しさん
08/05/30 19:45:49
warning: variable $KCODE is no longer effective;
値を参照しても代入しても常に nil という頑なな感じの動作
708:デフォルトの名無しさん
08/05/30 19:48:01
end
end
end
end
))))
709:700
08/05/31 04:50:05
調べたらFAQ的な質問みたいですね。
解決法
・フルパスでrubyのパス記述 >>703
・$KCODEで指定 >>704
パス関係なくするためにenvにしたかったけど、意味ないなあw
ところで、$KCODEで指定する場合は、
ファイルが本当にUTF-8の文字列(例えば日本語)を含んでいても大丈夫なんでしょうか?
710:デフォルトの名無しさん
08/05/31 06:05:04
大丈夫
711:デフォルトの名無しさん
08/05/31 06:11:40
>>686
普通に喜ばれたけどw
712:700
08/05/31 06:33:23
>>710
ありがとうございます。
では、ちょっとずれてくるのですが、>>705の
> ruby -Ku と $KCODE='u' はカレーとウンコくらい違う
というのはどういう違いなのでしょうか?
どこかに簡単な解説などないでしょうか?
713:700
08/05/31 06:34:05
いえ、気になったというより、変なところでハマりたくないので知っておきたい、
といった理由からです。
714:デフォルトの名無しさん
08/05/31 09:00:31
>>709
大丈夫じゃない場合がある
リファレンスマニュアルにも記述があるけど
$KCODEの指定が効いてくるのは、$KCODEへの代入が実行された後なので
最初に読むファイルに日本語が含まれていると、パースエラーになることがある
詳しくはFAQの10.2
URLリンク(www.ruby-lang.org)
715:デフォルトの名無しさん
08/05/31 13:57:32
問題になることがあるのはShift_JISの場合。
EUC-JPはUTF-8にはそういう性質はない。
-Kを指定してあれば日本語を識別子に使うこともできるが$KCODEでは無理
という違いもあるが、それは正直お薦めしない。
ちなみに-Kは1.9でもきくが、マジックコメントのほうが推奨。
#!/usr/local/bin/ruby
# -*- encoding: ut-f8 -*-
716:デフォルトの名無しさん
08/05/31 20:25:40
#!/usr/local/bin/ruby
# -*- coding: utf-8 -*-
717:デフォルトの名無しさん
08/05/31 23:56:12
HOME['ENV'] って何だよ・・・
718:デフォルトの名無しさん
08/06/01 00:12:49
>>717
誰か間違えてそうでありそうで無いな
719:デフォルトの名無しさん
08/06/01 00:17:31
図書館にこの本があったので借りてみて一通り目を通してみました
URLリンク(www.amazon.co.jp)
で、次に何かRuby買ってみようと探してみて
URLリンク(www.amazon.co.jp)
これが本屋さんあったけど・・・
上のと同じ本?
720:デフォルトの名無しさん
08/06/01 01:07:13
今なら下がお勧め
721:デフォルトの名無しさん
08/06/01 01:28:02
mod_rubyを動かしたいんですが以下のようなエラーが出て動きません。
どうすれば動くようになりますか?
apache -t
apache: Syntax error on line ??? of C:/〜〜/httpd.conf: Cannot load
C:/〜〜/modules/mod_ruby.so into server: \x8ew\x92\xe8\x82\xb3\x82\xea\
x82\xbd\x83v\x83\x8d\x83V\x81[\x83W\x83\x83\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\
xe8\x82\xdc\x82\xb9\x82\xf1\x81B
環境
Windows Vista
Apache2.2.8
722:デフォルトの名無しさん
08/06/01 09:52:04
>>721
あなたの頭とOSが腐ってるのが原因ですね。
頭のほうはもう手遅れなので、OSの方をdebianなどに変えてmod_rubyを
apt-get一発でインストールすればどんな馬鹿でも使えるようになります。
723:デフォルトの名無しさん
08/06/01 10:07:23
>>722
〃∩ ∧_∧
⊂⌒( ・ω・) はいはいわろすわろす
`ヽ_っ⌒/⌒c
⌒ ⌒
724:デフォルトの名無しさん
08/06/01 12:35:47
文字化けしてるが、Shift_JISで
「指定されたプロシージャが見つかりません。」
と書いてあるようだな。
mod_ruby 指定されたプロシージャが見つかりません。
でぐぐるとわかるかもよ。
725:デフォルトの名無しさん
08/06/01 14:24:14
>>724
URLリンク(www.google.com)
ググったけどわかりません
726:デフォルトの名無しさん
08/06/03 16:52:27
現在実行しているRubyファイル自身のpathを取得できる特殊変数(?)というのはありますか?
宜しくお願いします!
727:デフォルトの名無しさん
08/06/03 19:45:03
事故解決しました
__FILE__
728:デフォルトの名無しさん
08/06/06 21:02:52
Rubyを使いたいのだけれど使う機会が無い。どう転べばRubyを日常使用する変人になれるのか。最初にそれを説かなければ信者は増えないだろうと思う。
729:デフォルトの名無しさん
08/06/06 21:08:17
>>728
君には必要ないよ
必要のないものに固執する必要はない
楽になるといい
730:デフォルトの名無しさん
08/06/06 21:34:52
>>728
Project Euler とかお勧め。
731:デフォルトの名無しさん
08/06/06 22:17:55
>>730
Ruby関係ないというかRubyでやるくらいならSchemeかPythonかC++でやる。
732:デフォルトの名無しさん
08/06/06 23:30:06
目的を達成するのに一番便利な言語を選べばいいじゃん。
別にこだわりはないな。
733:デフォルトの名無しさん
08/06/07 00:15:09
rails使えば
734:デフォルトの名無しさん
08/06/07 01:05:15
まあ、みんながみんなプログラマーになる必要はないわな。
Rubyに早くなれたかったらUnixかLinux使いえばいい。シェル操作が日常に
なれば、ごちゃごちゃしたものをスクリプトで一気になにかするのが快感になるはず。
735:デフォルトの名無しさん
08/06/07 02:29:00
俺は cmd.exe を使うようになってRubyの使用頻度が格段に増えた
しょぼいコマンドプロンプトの補助としては優秀
736:デフォルトの名無しさん
08/06/07 13:07:20
俺は、バッチファイルで書くのが嫌になったころからだな。
unixではシェル書くのがいやになったころから
737:デフォルトの名無しさん
08/06/07 13:08:08
シェルじゃねえ、シェルスクリプトだ。すまそ。
738:デフォルトの名無しさん
08/06/07 13:12:37
rubyの正規表現でhtmlファイルの中から<html>の様に<>で囲まれた
文字列を取り出すにはどのようにすれば良いですか
^<.*>$まではわかったのですが
<br>のように直前に文字列が存在するタグはとりだせないのです
f = open(ARGV[0].to_s)
while line = f.gets
if /^<.*>$/ =~ line
puts line
end
end
f.close
よろしくお願いします。
739:デフォルトの名無しさん
08/06/07 13:15:03
^や$(行頭と行末の位置にマッチ)を付けない。
さらに、.*だと欲張りマッチ(可能な限り長い対象にマッチ)になるので、
<h1>....</h1>に遭遇したときに全体にマッチしてしまう。
これを避けるためには、?を後ろに付けた .*?(欲張りでないマッチ)を使う。
740:デフォルトの名無しさん
08/06/07 13:18:05
>>739
ありがとうございます。
しかもアドバイスまで
ありがとうございます
741:デフォルトの名無しさん
08/06/07 13:20:11
>>739
ああ〜テストしてみた所
a<html>
とかが表示されてしまいました
こうではなくて
a<html>とかの行からも
<htm>だけきりだしたいのですが・・・・
742:デフォルトの名無しさん
08/06/07 13:28:58
正規表現の中に()を書くと、括弧の内容を後で利用できる。
/(<.*?>)/ でマッチした後、$1というグローバル変数に<html>とか入ってるはず。
743:デフォルトの名無しさん
08/06/07 13:32:35
実用の上で正しい回答は「自分でコード書かずにhtmlsplit使え」
もちろん学習用としてなら意味はあるけど
>>741
行全体(line)をそのまま表示しようとしているのが原因
マッチした部分($&)だけを表示させるようにするか
もしくは742の言うとおり、括弧と$1を使う必要がある
さらに言うと、そのスクリプトだと一行で一つのhtmlタグしか切り出せない
全てのhtmlタグを切り出すには、もう少し変更が必要
744:デフォルトの名無しさん
08/06/07 13:34:16
マッチするかどうかを試験する、ということと
マッチした部分を取り出す、ということは違う
方法はいくつかあるが、概念的にめんどくさくないのは文字列に対してscanを使うこと
"a<html>b".scan(/<.+?>/){|match|
p match
}
結果:
"<html>"
745:デフォルトの名無しさん
08/06/07 13:41:27
>>743-744
まとめるとどのようになるのでしょうか
最終的には
htmlファイルを指定すると
そのページ内に存在するファイルを
音楽、動画、画像などに仕分けして
そのURLをファイルに書き込んでくれてwgetなどで簡単にダウンロードできるようにしたいんです。
746:デフォルトの名無しさん
08/06/07 13:46:14
… rubygem の mechanize 使え
<a href> で表記されたリンクをすべて抽出してアクセスして適当に保存までしてくれる
ネット上にあるページではないローカルにあるHTMLファイルを読み込まなければならない場合若干面倒だが
747:デフォルトの名無しさん
08/06/07 13:47:58
とりあえず地道にやってみるならリンクされてるAタグでのhref="〜"部分を切り出して
リンク咲の拡張子なりで分類するとか
748:デフォルトの名無しさん
08/06/07 13:52:15
だから目的のものが出るまでscan繰り返せばいいじゃんよ
scanのマニュアルとか読んでくれたか?
文字列.scan(/タグ抽出/){|タグ変数1|
タグ変数1.scan(/httpで始まる半角文字列/){|URLっぽいもの|
動画URL一覧配列.push(URLっぽいもの) if URLっぽいもの =~ /動画拡張子/
画像URL一覧配列.push(URLっぽいもの) if URLっぽいもの =~ /画像拡張子/
音楽URL一覧配列.push(URLっぽいもの) if URLっぽいもの =~ /音楽拡張子/
}
}
File.open('動画.txt','w'){|f| f.puts 動画URL一覧配列}
File.open('画像.txt','w'){|f| f.puts 画像URL一覧配列}
File.open('音楽.txt','w'){|f| f.puts 音楽URL一覧配列}
749:デフォルトの名無しさん
08/06/07 13:55:11
>>746
そういうのが有ったんですね・・・・
なんだか自分が最初のアイデアって今では出せないんじゃないかって
最近思ってるんですよね。
何かアドバイスになる言葉を教えてください。
小学生の頃からプログラミングしていた根っからのプログラミング好きに
慰めの言葉を
750:デフォルトの名無しさん
08/06/07 13:55:19
hpricotだとこうか。
require 'hpricot'
require 'open-uri'
doc = Hpricot(open(URL) {|o| o.read})
puts (doc / 'a').map {|a| a['href']}
751:デフォルトの名無しさん
08/06/07 14:01:18
とりあえずは、初心者スレなので正規表現でscanするのが妥当かねえ
なんとなくだが、外部ライブラリを利用するための基礎的知識もまだ危ういように見える
便利ライブラリはもうちょい納得してから使え
752:デフォルトの名無しさん
08/06/07 14:02:22
初心者スレであんまり「gemのlibhogeを使え」なんていわないほうが
いいんじゃにゃいかな。そりゃ業務的には正解だけど、たぶん牛刀割鶏になってるよ。
753:デフォルトの名無しさん
08/06/07 14:09:36
rubygems に代表される公開ライブラリを流用するのは何故かというと
「自力でゼロからまたアレやるのめっちゃ面倒だ」
という認識があるからなんだよな
「面倒なアレ」という経験が無いうちから使うと後々悲惨な結果に
苦労は初心者のうちにしておくとよいと思う
754:デフォルトの名無しさん
08/06/07 14:24:14
あほらし
755:デフォルトの名無しさん
08/06/07 16:33:14
別に両方教えればいいだけじゃん
html = File.read('page.html')
html.scan(/<(.*?)>/) { p $1 }
と
>>750
の両方。
もちろん違う人が教えてもいい。
756:デフォルトの名無しさん
08/06/07 16:33:30
URI.extractでもつかっとけ
757:デフォルトの名無しさん
08/06/07 17:38:20
文字出力、正規表現の際に'可能'という文字を使用したいのですがうまくいきません。
試しに以下のスクリプトでテストしてみました。
ファイルをSJIS保存 puts '能' => unterminated string meets end of file
ファイルをUTF8保存 puts '能' => '閭ス'
となってしまいます。
どうすれば扱えるのでしょうか?
どなたか本気でお願いします。
758:デフォルトの名無しさん
08/06/07 17:51:51
Shift_JISの場合は ruby -Ks hoge.rb で起動
UTF-8 の場合は ruby -Ku hoge.rb で起動
759:デフォルトの名無しさん
08/06/07 20:40:06
>>757
rubyは基本的に、何も指定しないと日本語を正しく扱えない
詳しくはリファレンスマニュアル(もしくは書籍)を読め
760:757
08/06/07 21:39:01
ありがとうございます!
無事に出力&正規表現が実行できました。
ファイル毎に記述する癖をつけます!
761:デフォルトの名無しさん
08/06/07 22:46:14
String#split* という関数はどういう挙動なのでしょうか?
文字列がかえるので split().join と同じだと考えていたのですが
どうにも違うようですし調べてもでてこないし
リファレンス(コードでもいいので)ご存知のかたいたらおねがいします
762:デフォルトの名無しさん
08/06/07 22:48:02
1while などアンドキュメントな部分などの部分もご存知のかた
いたら同様に示唆していただけたらありがたいです
ruby 二日目であほなこといっていたらごめんなさい
763:デフォルトの名無しさん
08/06/07 23:06:41
String#split* なんて関数は見たことない
split().join, 1while ともども簡単なコードも付けてくれると答えやすいかも
あるいはどこに書いてあったとか
764:デフォルトの名無しさん
08/06/07 23:11:34
>>761
正直、Ruby の引数展開の * はあまり好きではない
あれは Ruby として明示的なメソッドであるべきだと思う
んで、引数の配列の直後に * をつけると展開して引数に渡される
arr = [1, 2, 3]
hoge(arr*)
は
hoge(1, 2, 3)
と同じ動作だ
文字列を split した結果の配列が展開されて渡されてるということだな
split は引数を省略すると空白で分割して配列を返すから
hoge('1 2 3'.split*)
は
hoge(1, 2, 3)
と同じ
正直、あまり明快な記述とは思えないので、自分から使うのは避けたほうがよい
765:デフォルトの名無しさん
08/06/07 23:23:51
>>763, 764 ありがとうです。
>>763
ゴルフコードでよくみたのでこれなんだろーなっていう
shinh さんのとこから
tree = '(Root (Spine (Neck (Head)) (RClavicle (RUpperArm (RLowerArm (RHand)))) (LClavicle (LUpperArm (LLowerArm (LHand))))) (RHip (RUpperLeg (RLowerLeg (RFoot)))) (LHip (LUpperLeg (LLowerLeg (LFoot)))))'
tree.scan(/ \((\w+)/){puts"#$+ . #{a=$`.split*'';1while a.sub!(/\(\w+\)/,'');a[/\w+$/]}"}
ってなかんじで 1while はブロックをともなわない構文なのかなと perl と同じ
と思っていました while gets; end -> 1while gets でできるかんじ?
で split* があるのかなと考えたのは
>> "abcd".split*''
=> "abcd"
>> "abcd".split* ''
=> "abcd"
>> "abcd".split*('')
=> "abcd"
>> "a bcd".split*('')
=> "abcd"
>> "a bc d".split*('')
=> "abcd"
>> "a bc d".split*(',')
=> "a,bc,d"
>> "a bc d".split('')
=> ["a", " ", " ", " ", "b", "c", " ", "d"]
>> "a bc d".split('')
で返り値が array ではなく string なので引数展開ではないのかなーと
考えています
766:デフォルトの名無しさん
08/06/07 23:25:26
展開の * は前につくんだったと思うんだが
hoge(*arr)
あと、配列 * s が 配列.join(s) と同じ動作になるのは s が文字列だったときだけだぞ
s が整数だったときには単に繰り返される
だから、to_s や to_i が乱れ飛ぶ初心者のスクリプトでは紛らわしいから使ったら駄目
というか、そもそも紛らわしいから素直に join 使え
767:デフォルトの名無しさん
08/06/07 23:36:09
>>765
1whileはrubyの標準にはない。たぶんコードゴルフ用の拡張
ついでに言うと、初心者がコードゴルフを参考にするのは薦められない
あれは一般的に美しくない(分かりにくい)書き方が多いから
768:デフォルトの名無しさん
08/06/07 23:47:03
>>762
違ってたらごめんね
>> "abcd".split() * ''
=> "abcd"
>> print 1while true
1111111111111
>> while true; print 1; end
1111111111111
769:デフォルトの名無しさん
08/06/07 23:57:22
>>768
ruby のコードながめていたらおっしゃる通りだと思いました
1while でも 1 while でも同じことで kWHILE のみしかなかったでした orz
1 while() { ...} なども添付コードにあったので変態的な構文解析だなぁと
split() もそうだとおもいます
>> a="a b cd".split()
=> ["a", "b", "cd"]
>> a *''
=> "abcd"
>> a *'abc'
=> "aabcbabccd"
>> a.*'abc'
=> "aabcbabccd"
>> a.*''
=> "abcd"
コメントみなさんありがとうございました
770:デフォルトの名無しさん
08/06/08 00:00:25
追記
URLリンク(www.ruby-lang.org)
ですね ありがとうです
771:デフォルトの名無しさん
08/06/10 00:03:39
Ruby1.6で書かれたクラスを利用しないとアクセスできないシステムがあります
そのシステムはEUC_JPしか受け取れないため、他のエンコードを使用しようとした場合は変換したいと考えています
ですがRuby1.6時代のKconvではUTF-8→EUC_JP変換ができません
そこで質問なのですが
・Kconvに限ってRuby1.8のクラスファイルを利用する、などといったことは可能ですか?
・指定ファイルはRuby1.6、それ以外はRuby1.8というようにクラス/ファイル別にインタプリタを指定して実行することはできますか?
現在は一時ファイルに実行結果を書きとめておくことで疑似的に実現していますが、よりスマートな方法がありましたらご教示願います
772:デフォルトの名無しさん
08/06/10 00:12:05
nkf.cだけ差し替えてコンパイルしてみるとか。
よしだむ氏のuconvを使ってみるとか。
773:デフォルトの名無しさん
08/06/10 00:15:53
1.6のUTF8関連はuconv使ったような記憶がある
というか、1.8で動かない上に書き換えも面倒な1.6のスクリプトって重症だなあ
マニアさんが書いたようなスクリプトですかね
774:デフォルトの名無しさん
08/06/10 00:28:32
でっかーいスクリプトだと1.8対応にするのはゼロから作り直すに等しい作業になりそうだな
1.6で完全に動いてるならそのまま使いたいとこだろう
Uconv試すのが一番だと思うぜ
775:デフォルトの名無しさん
08/06/10 00:30:55
UTF対応の外部NKFのラッパーを自前で書くというのはどう
Kconvの中の人がやってることは同じだし
一時ファイル使ってる現状とほとんど変わらないような気もするけどな
776:771
08/06/10 08:29:09
皆さんありがとうございました
Uconvの使用が一般的な方法のようですので、まずはこの方法でやってみたいと思います
777:デフォルトの名無しさん
08/06/10 17:34:19
index.rhtmlからtest.rbをrequireすると
エラーは出ないのですが、test.rb内に記述された関数群が利用できずにエラーとなります。
この拡張子でのrequireは無理なのでしょうか?
もしそうであれば、どのようにファイル分けをすればよいのでしょうか?
よろしくお願いします。
778:デフォルトの名無しさん
08/06/10 17:52:54
エスパー麻美の出番だな
779:デフォルトの名無しさん
08/06/10 18:02:07
エスパー…あさみ…?
780:デフォルトの名無しさん
08/06/10 19:00:07
ビーズで撃たれて死んでしまえ
781:デフォルトの名無しさん
08/06/10 19:12:57
魔女ステかよ
782:デフォルトの名無しさん
08/06/10 21:37:07
ダック・タイピングとよく言いますが、
オブジェクトが目的のメソッドを持っているかどうかの責任は、
プログラマにあるということでしょうか?
783:デフォルトの名無しさん
08/06/10 21:39:05
スクリプト言語でなおかつ動的にクラスもメソッドも追加可能な言語では
「ユーザー」と「プログラマー」の間が曖昧なんだよね
784:デフォルトの名無しさん
08/06/11 10:33:42
よくわからんが、処理系が実行時まで何もしてくれないことだけは確か。
785:デフォルトの名無しさん
08/06/11 10:59:33
>>778
洗剤か
786:デフォルトの名無しさん
08/06/11 12:05:00
Rubyのバージョンアップ方法に関してどなたかお力を貸して頂けないでしょうか。
現在CentOS4.5上で下記のパッケージでRubyを動作させております。
ruby-1.8.5-1.el4.centos
ruby-docs-1.8.5-1.el4.centos
ruby-libs-1.8.5-1.el4.centos
ruby-irb-1.8.5-1.el4.centos
ruby-devel-1.8.5-1.el4.centos
ruby-ri-1.8.5-1.el4.centos
ruby-rdoc-1.8.5-1.el4.centos
ruby-tcltk-1.8.5-1.el4.centos
今回Rubyのバージョンを1.8.6へあげたいと考えておりますが下記の
エラーに遭遇してしまい検索してみた物の./configureが出来ない状
態です。。
【エラー】
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
〜続く〜
787:786
08/06/11 12:06:09
【config.logを見て該当すると思われる箇所】
gcc version 3.4.6 20060404 (Red Hat 3.4.6-9)
configure:2530: $? = 0
configure:2537: gcc -V >&5
gcc: `-V' option must have argument
configure:2540: $? = 1
configure:2563: checking for C compiler default output file name
configure:2590: gcc conftest.c >&5
/lib/libc.so.6: undefined reference to `_dl_out_of_memory@GLIBC_PRIVATE'
collect2: ld returned 1 exit status
configure:2593: $? = 1
configure:2631: result:
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define USE_BUILTIN_FRAME_ADDRESS 1
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:2638: error: C compiler cannot create executables
See `config.log' for more details.
788:786
08/06/11 12:08:41
【gcc関連インストールされている物】
compat-libgcc-296-2.96-132.7.2
compat-gcc-32-3.2.3-47.3
gcc-3.4.6-9
gcc-g77-3.4.6-9
gcc4-c++-4.1.2-14.EL4
gcc-objc-3.4.6-9
gcc-gnat-3.4.6-9
compat-gcc-32-c++-3.2.3-47.3
libgcc-3.4.6-9
gcc-java-3.4.6-9
gcc-c++-3.4.6-9
gcc4-4.1.2-14.EL4
gcc4-gfortran-4.1.2-14.EL4
gcc4-java-4.1.2-14.EL4
2日程格闘中ですが、お手上げ状態に近づいて来ました。。。
RPMで1.8.6があればいいのですが該当するものも無いため
今回tarからrpmをcheckinstallで作成しようと考えてお
ります。。
789:デフォルトの名無しさん
08/06/11 13:28:15
>>787
に書いてあるがな。GNU libcの
`_dl_out_of_memory@GLIBC_PRIVATE'
がないんだろ。glibcを入れ直してldconfigしてみろ
790:786
08/06/11 13:46:57
>>789さん
助言有り難う御座います。glibc関連を弄るのは初めて
なので依存関係でしくじる気が凄くしますが取り敢えず
調べてやってみます。
791:デフォルトの名無しさん
08/06/11 16:56:35
oreilly.co.jp -- Online Catalog: 初めてのRuby
URLリンク(www.oreilly.co.jp)
> 本書を最後まで読めば、「Rubyリファレンスマニュアル」を自在に読みこなし多様なRubyライブラリを活用して、
> 自力で高度なRubyプログラミングを習得するだけの基礎知識が手に入るでしょう。
> Ruby1.8及び1.9に対応しています。
( ^ω^)おっおっおっ
792:デフォルトの名無しさん
08/06/11 17:02:16
夢のような書籍だなw
793:デフォルトの名無しさん
08/06/11 17:14:19
たった224ページじゃ無理だろと思ったら
>他言語でのプログラミング経験を持つ人を対象に
なるほど。エッセンス部分だけ凝縮することに成功すれば
あるいは・・・・・・
794:デフォルトの名無しさん
08/06/11 17:17:59
魚を捕る方法を教える感じでなかなか好感が持てる
現状、9割くらいの人はオンラインのリファレンスマニュアル読んでるからな
というか、リファレンスマニュアル自体にマニュアルの読み方の解説がないというのが情けない
795:デフォルトの名無しさん
08/06/11 17:19:59
まああるいはオライリーの人がフカしてるだけかもしれん
これ目次ね
URLリンク(www.oreilly.co.jp)
796:デフォルトの名無しさん
08/06/11 19:21:21
また安いなw
最近のオライリーはどうなってるんだ,あれこれ安すぎるw
797:デフォルトの名無しさん
08/06/11 19:42:21
自分の部屋の本棚をオライリーで埋め尽くす・・・
そんな風に考えていた時期が僕にもありました・・・
798:デフォルトの名無しさん
08/06/11 19:58:37
2,310円?200ページとはいえ、オライリーにしてはえらく安いな
799:デフォルトの名無しさん
08/06/11 20:58:19
>>796
質が落ちたから
800:デフォルトの名無しさん
08/06/11 22:33:03
Learning Rubyの翻訳かと思ったら別の人が書くのか・・・
当然のようにFlanagan x Matz本出してくるかと思ってたが
マニングのMinimal Perlがオラから出てたりとかなんかカオスだな
801:高野光弘問題
08/06/11 23:58:28
takano32,TAKANO Mitsuhiroこと高野光弘(日立製作所社員、日本UNIXユーザ会幹事)が、
自身の『32nd diary』で公然と日立の機密を開示し、障害者差別発言をしている問題。
1981年11月12日 千葉県のディズニーランドのそばで誕生
2001年4月1日 千葉大学に入学
2005年4月1日 千葉大学大学院へ進学、日本UNIXユーザ会に入会
2007年4月1日 日立製作所に入社、神奈川県秦野市の寮へ
2007年8月22日 「ついに職場で人が倒れた」と公表
2007年11月13日 「情報漏えい」を言う上司に「死んだほうがいいよ」と暴言
2007年12月28日 「社内システムクソうんこ」と発言し、仕組みも暴露
2008年5月23日 機密漏洩問題について一応の謝罪
2008年5月26日 「給料泥棒とかうんぬん言われた」と謝罪を忘れて告白
2008年5月27日 「心バキバキ川田くん」と前日の発言者の名前を公言
2008年5月31日 「キチガイ」と日立のユーザーに障害者差別発言を連発
2006年10月27日(日立製作所に入社前に忠告されたこと)
「日記やコメントの投稿日時から勤務時間に業務外のことをしていることが判明」は
某社の某親会社が 2ch で祭られたように、NG です。
6月も勤務時間中に更新し続ける高野光弘君の『32nd diary』にツッコミをどうぞ
802:デフォルトの名無しさん
08/06/12 04:02:01
で、rubyとどう関係あるのか
まだ訊いてないんだが?
803:デフォルトの名無しさん
08/06/12 04:22:05
Ruby信者はあらゆるスレにRubyの話題を持ち込んでいるのだから、
逆にあらゆる話題がRubyスレに持ち込まれても、身から出た錆だな。
804:デフォルトの名無しさん
08/06/12 06:59:14
RubyってJavaのクラスローダーみたいな仕組みはないのですか?
805:デフォルトの名無しさん
08/06/12 09:46:01
>>804
requireじゃダメなの?
806:デフォルトの名無しさん
08/06/12 10:07:44
「Javaのクラスローダーの○○の仕組み」と限定して欲しいとこだな
807:デフォルトの名無しさん
08/06/12 11:17:08
.jarとか.classとかを実行時に読むのに相当するならrequire、
Classオブジェクトを名前な文字列とかで引っ張ってくるならModule#const_get
808:デフォルトの名無しさん
08/06/12 21:39:27
ネットワーク上からRubyスクリプトを受け取ってそれに記述されているクラスを動的に定義したいんだけど
たとえば
script = URI("URLリンク(host)").read
p script #=>
# class Matz
# def hige
# print "じょりじょり"
# end
# end
eval(script)
Matz.new.hige
こんな感じで実現できるんだけど
もっとスマートな方法は用意されてないの?
ファイルには書き出したくない。
809:デフォルトの名無しさん
08/06/12 21:41:29
Ruby で、現在のプロセス名を得ることはできますか。
やりたいのは、現在のコマンドが /usr/bin/ruby なのか /usr/local/bin/ruby なのか
/usr/local/ruby1.9/bin/ruby なのかを知ることです。
810:デフォルトの名無しさん
08/06/12 21:43:42
ローカルファイルシステム上にないファイルをスクリプトとして読み込みたいとかいう需要に対してスマートも糞もねーよ(w
require の中身は eval だからそれで正しい動作だ
我慢しとけ
811:デフォルトの名無しさん
08/06/12 21:46:53
>>810
> require の中身は eval
それは知らなんだ・・・
812:デフォルトの名無しさん
08/06/12 23:20:56
Rubyで、
メタ・プログラミングやコード・ジェネレーションを学びたいのですが、
その辺を詳しく扱っている書籍やサイトはないのでしょうか?
ピッケル本とか読みましたけど、なでる程度しか載っていないので・・
813:デフォルトの名無しさん
08/06/13 01:55:27
>>812
今は懐かしい256シリーズの無道編でRaccをフィーチャー(というか宣伝)してる。
でも無知な俺は、Raccを本当に活用した例ってRDtoolしか知らない。
Rubyでメタプログラミングなら、強力なevalとmethod_missingで対応するDSLが主流だね。
ActiveRecordなんか、その最たるもの。
Rubyist Magazine -あなたのコードを添削します-
URLリンク(jp.rubyist.net)
DSLについて、一部参考になるかも。
814:デフォルトの名無しさん
08/06/13 02:34:00
これとか。
URLリンク(ola-bini.blogspot.com)
815:デフォルトの名無しさん
08/06/14 18:53:09
プロパティを定義したいのですが、セッターがうまく働きません orz
以下のようにすると、2と表示してほしいのですが、5と表示されてしまいます。
どこが間違っているのでしょうか?
#ruby -Ku
class Calculator
def initialize
@unit = 5
end
def unit=(value)
@unit = value
end
def run
unit = 2
puts @unit
end
end
Calculator.new.run
816:デフォルトの名無しさん
08/06/14 18:55:36
self.unit = 2
817:デフォルトの名無しさん
08/06/14 18:55:59
self.unit = 2
818:デフォルトの名無しさん
08/06/14 18:56:17
self.unit = 2
だとうまくいきました
何だこの違い・・・
ほかの言語のプロパティみたいに使っちゃだめなのか
819:デフォルトの名無しさん
08/06/14 18:59:52
わかるまでは attr_accessor :unit とだけ書け。
820:デフォルトの名無しさん
08/06/14 19:02:42
この挙動はどういうことなんでしょうか?
ドキュメントのどこかに記載などありますでしょうか?
しかし、エラーなどでずに実行されるもんで子一時間悩んでしまいました
>>819
セッターを拡張したいときには使えません
あれは最小限のコードで実際のコードでは、最大値のチェックなどしています。
821:デフォルトの名無しさん
08/06/14 19:04:05
>>819
試しに attr_writerを使ってみましたが、やはりselfがいりますね・・・。
822:デフォルトの名無しさん
08/06/14 19:08:52
ああああ、わかた。
宣言が要らない言語だから、セッターのインスタンス省略すると
ローカル変数への新規代入になるのか orz
823:デフォルトの名無しさん
08/06/14 19:11:24
>>822
Ruby以外はどんな言語を使ってるのか教えてくれまいか
ちょっと興味があるんだ
824:デフォルトの名無しさん
08/06/14 19:17:11
これは筋のよさそうな自称初心者
825:デフォルトの名無しさん
08/06/14 19:33:13
>>823
他にはDelphiを長年つこーてました。
Delphiだと属性でなくてプロパティなんですが、
上記コードのような形で問題なく、
selfなしでクラス内でプロパティに代入できます。
静的な言語のせいもあり、変数は宣言しないと使えないです。
826:デフォルトの名無しさん
08/06/14 20:04:10
なるほど、丁寧にありがとう
今度Delphiのコード見かけたら
そこらへんちょっと気にして読んでみるよ
827:デフォルトの名無しさん
08/06/15 00:03:24
やさしいやりとりだな。いい感じ。
828:デフォルトの名無しさん
08/06/15 00:24:46
これは珍しく建設的なやりとり。
829:デフォルトの名無しさん
08/06/15 00:45:06
初心者側に「ピンと来る力」があれば、話は俄然充実するんだよ。
830:デフォルトの名無しさん
08/06/15 03:02:58
>>820
> ドキュメントのどこかに記載などありますでしょうか?
一応rubyの落とし穴には書いてあるけど見つけにくいね。
URLリンク(www.ruby-lang.org)
attr_xxx もFAQやModuleのリファレンス見ないと分からないし。
まぁリファレンスだからしょうがないか。
入門書ならselfが必要なことも含めてちゃんと書いてあるかも。
831:815
08/06/15 06:40:18
>>830
おお、こんなところに記述が
やはりFAQなのですね。
わざわざありがとうございます。
attr_系の説明やサンプルは大概クラス外部からのアクセスのみかかれてますね。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4705日前に更新/261 KB
担当:undef