Ruby
- Rubyで書いているコードをPHPに書き換えたい
下記リンク先のRubyコードをPHPに書き換えたいのですが、どうすれば良いでしょうか? http://www40.atwiki.jp/spellbound/pages/2092.html http://www40.atwiki.jp/spellbound/pages/2093.html do | hoge |って、array_walkみたいなもの?
- Array (NoMethodError)
リンク先コードをcodepadで試したら下記エラーになりました。 エラーを消すにはどうすればよいでしょうか? Line 3:in `percentile_rank': undefined method `count' for [0, 20, 40, 60, 80, 100]:Array (NoMethodError) from t.rb:11 ▽Ruby - パーセンタイル順位 http://www40.atwiki.jp/spellbound/pages/2092.html
- プロキシを使うプログラムでエラーがでてしまいます。
初心者です。 プロキシサーバーを通してユーザーエージェントを実装し、 WEBページフィルターのようなものを使いたいです。 以下のようなソースをかいてみたのですが、原因はなんでしょうか。 シンタックスエラーと表示され、 コマンドプロンプトに以下の文字が表示されます。 :RequestCallback => proc {|req, res| 起動すらできずに終了してしまいます。 ユーザーエージェントと、WEBページフィルタを別々に使うとエラーがでないのですが。 どなたか教えてください。よろしくお願いします。 require 'webrick' require 'webrick/httpproxy' require 'uri' handler = Proc.new() {|req, res| res.body.gsub!("abc", "") } userAgent = 'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, likeGecko) Version/3.0 Mobile/1A543a Safari/419.3' server = WEBrick::HTTPProxyServer.new({ :BindAddress => '127.0.0.1', :Port => 8080, :ProxyContentHandler => handler :RequestCallback => proc {|req, res| req.header['user-agent'] = [userAgent] } }) server.start ここまでになります。 あと、正規表現ですべての文字にマッチするようなメタ文字があれば教えていただきたいです。 1文字だけでなく、複数の文字にマッチするものを探しています。 よろしくお願いします。
- ベストアンサー
- Ruby
- rararamuijin
- 回答数1
- Rubyでの条件分岐について
登録フォームについての質問です。 ログイン用フォームのhome.cgi と、それにリンクするユーザー登録用フォームのregistration.cgi があり、今回質問するのはユーザー登録用のregistration.cgiの方です。そしてユーザーIDとPasswordはdata.txtに書き込んでいます。書き込み自体は成功するのですが、それ以外のところで問題がでている状態です。条件分岐がうまくいきません。 下記のように書いた時におこる問題点等について教えていただきたいと思います。 (1)IDとPassword のinput に値が空の時に、ボタンを押しても、登録完了しました と表示されてしまうので、この様な場合は、"もういちど確認してください" などの警告文を出したいです。 (2)IDとPassword の文字数に制限を入れたいのですが、分かりませんでした。 双方とも4文字以上8文字以下にしたいです。それ以外の場合は、条件分岐で、"文字数を確認してください"などの警告文を出したいです。 -------- < ここから registration.cgi >-------------------- #!/usr/bin/ruby require "cgi" cgi = CGI.new puts <<HTML Content-Type: text/html <html> <head> <title>練習問題</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h1>練習(1)</h1> 登録フォーム <form action="registration.cgi" method="post"> ユーザーID:<input type="text" name="login" ><br> パスワード:<input type="text" name="password"><br> <input type="submit" value="submit"> </form> HTML if cgi.params["login"][0] then f = open("data.txt","a") f.puts"%s:%s" %[cgi.params["login"][0],cgi.params["password"][0]] f.close puts "登録完了しました" else end puts <<HTML <br> <a href="./home.cgi">戻る</a> HTML -------- < ここまで >--------------------
- cgi上のhtmlをrubyのifで条件分岐
rubyでcgiをつくっています。 htmlのinputとruybの絡めかたがわかりません教えてください。 まず下記のようにボタンを設置して、 <form> <input type="button" value="新規登録"> </form> ↑ ボタンを押したら、LoginとIDの登録フォームがでてきて、 それ以外なら変化なし のようなものをつくりたいのですが、どのようにifで書けばよいのかが分かりませんでした。教えてくださいよろしくお願いします。
- ruby on railsに関して
ruby on rails を独学で勉強しようと思い、 「基礎ruby on rails」を用いて、rubyやrailsなどをPCにダウンロードしたのですが、 rubyのバージョンが1.8.7だったので、 自分なりに調べてバージョンを1.9.3にしようとしたのですが、 再起動をするとどうしてもruby1.8.7になってしまいます。 しかたないと思って、1.8.7のまま、 「rails s」のコマンドを実行したら、 ターミナルに ↓ ーーーーーーーーーーーーーーーーーーーーーーー /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:230:in `activate': can't activate rack (~> 1.4.5, runtime) for ["actionpack-3.2.13", "railties-3.2.13"], already activated rack-1.5.2 for ["rack-ssl-1.3.3", "railties-3.2.13"] (Gem::LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:246:in `activate' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:245:in `each' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:245:in `activate' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:246:in `activate' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:245:in `each' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:245:in `activate' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:1056:in `gem' from /usr/bin/rails:18 ーーーーーーーーーーーーーーーーーーーーーーー このようなログがでてきました。 調べても内容が分からないので、 分かる人がおりましたら、 どのように対処をすればよいのかを教えていただけると幸いです。
- ファイルの読み込みデータを使って。
rubyでtxtファイル読み込みの時のプログラムについて教えて欲しいのです。 music.txtファイルの中身が↓2行である時に ヴォーカリスト : けんた ギターリスト : まさこ 実行結果を↓ 職業 ヴォーカリスト 名前 けんた 職業 ギターリスト 名前 まさこ にしたいのですが、どのようにしたほうがよいでしょうか? m ={} mlist = open("music.txt") mlist.each{ |line| line =~ /(\w*)\s*:\s* (\w*)/ m[$1]=$2 } mlist.close puts m このようなプログラムなら思いつくのですが、しかし、実行結果が自分がしたいのとは違います。よろしくお願いします。
- rubyについてです
rubyについて基礎的な知識はネットや文献である程度さらったので詳しいところは実際にゲームを作りながら学ぼうと思いRPGゲームが作りたいなと思ったのでググってみたのですがRPGつくーるなどの情報ばかり出てきて参考になるサイトがなかなか見つかりません>< なので参考になるサイト、文献などを教えてください あとセーブデータを作ったりするのに参考になるサイトも教えてくれるとうれしいです
- ネット上にあるファイルの更新確認を行うには?
ネット上にある特定のファイル(bz2、gz)が更新されているかを定期的に確認したいと思っています。 ですがファイルのサイズがとても大きく、毎回ダウンロードして確認するのはとても出来る状況ではありませんでした。 もしサーバー等に負担を掛けず、ファイルが更新されているかを確認するための手法などがありましたら、お教え頂きたく思います。よろしくお願いいたします。
- 締切済み
- Ruby
- 0xxxYuMixxx0
- 回答数4
- 【Ruby】マルチスレッドでなくマルチプロセスで
以下の様なプログラムをマルチスレッドでなくマルチプロセスで実現したいです。 #!/usr/bin/ruby require 'thread' q=Queue.new data=%w(a * * * b * * c * * d * *) data.each do |d| q.push d end (1..4).each do |n| Thread.start { while 1 do d=q.shift break if d!='*' end puts n.to_s+' '+d.to_s }.join end rubyのバーションは ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0] です。バージョンをあげる事は、できれば避けたいです。 実際には上記プログラムの【puts n.to_s+' '+d.to_s】してる所は、ネットに繋いで云々の時間のかかる処理なのですが、まったくパラレルに行なっている様子が無いので、マルチプロセス化したら早くなるかなと思いました。 子プロセスを生成して親プロセスとはパイプで繋いで、、などとするのかなあと試行錯誤したのですが、どうもうまくできません。 ご指導の程、よろしくお願い申し上げます。
- TeraTermで接続してemacsを起動する方法
Tera Term でサーバーに接続して、その時に emacs を起動して、rubyを使いたいのですが、 emacsをどこに設置するのか分かりません。それと、emacsの設定もわかりません。 分かる方いらっしゃいましたらよろしくお願いします。
- ruby forkについて教えて下さい
親プロで用意した配列の中の要素を一つづつ子プロでputsした後、最後一回、親プロで生成した子プロのPIDを確認したいです。 こんなふうに書いてみました。 #!/usr/bin/ruby table=%w(a b c d) array=[] while i=table.pop do if pid=fork then array.push pid puts pid break if table.size > 0 p array else puts i end end 実行すると、以下のような結果になりました。 $9200 c 9201 b 9202 [9202] a $ PIDが一つしか得られてません。 どうしたらよいでしょうか? ご教授の程、宜しくお願いいたします。 rubyは 1.8.7 を使ってます。 以上、宜しくお願いいたします。
- ブロックつきメソッドやyield文の用途について
こんにちは。 漠然とした質問なのですがご教示ください。 プログラミング初心者で、 現在、「楽しいRuby」と「プログラミング言語Ruby」を読みながら 勉強をしています。 そのなかで「ブロックつきメソッド」や「yield文」の用途についての 疑問が出てきました。 疑問というのは、 「わざわざ、『ブロックを引数として自作メソッドに与える』 ことの利点ってなに?」 ..です。 私としては、 自作メソッドを呼び出した後、その中のyield文で 再度メソッドの外(自作メソッドの呼び出し元)に制御を戻すんだったら、 自作メソッドの中にブロック処理の内容を書いておくか、 または、最初から自作メソッドを呼ばずにブロック処理をするほうが、 処理の流れがわかりやすくてよいのでは??? ..と感じています。 大規模なプログラムを複数の人で作るような場合にはこのようなしくみが あったほうが便利.. ということなんでしょうか? ちなみに私は主に テキストファイルの編集や比較、結合..などの目的で Rubyプログラムを作っていて、規模はせいぜい100~200行くらいです。 他のRubyプログラムとの連携もありません。 「そんな使い方なら、利点はないよ」というご回答でも構いません。 具体例などと併せてご教示ください。 よろしくお願いいたします。
- 作りながら学ぶRailsの本を探しています
後々、仕事で必要になるかと思いRuby on Railsを勉強しています。 現在、「Ruby on Rails3 アプリケーションプログラミング」という本で勉強していますが、 読んでいる内にリファレンス本のような印象を受け、少し退屈に思っています。 そこで、実際にWebアプリケーションプログラムを作りながら 進めていけるような本がありましたら、ご紹介いただけないでしょうか。 よろしくお願いします。
- モジュールのメリット、デメリットについて
Rubyでいろいろなツールを作っているのですが、共通するプログラムを抜き出して別のファイルにしようとしています。 今までは、xxx.rbに共通するプログラムを集めてrequireで読み込んでいたのですが、 webとか「たのしいRuby」を調べていたらモジュールとかがあるのがわかりました。 それで、モジュールを使って(モジュールにまとめて)みようと思ったのですが、 何か、メリットやデメリットはあるのでしょうか?
- windows8でruby
初めまして 今年情報系の大学生になり、C言語を習っているのですが なんとなくプログラミングを齧ってみたいと思ってrubyをやってみることにしました。 そこまではよかったのですが、windows8でrubyのやつ(すみませんよくわかりません) が出来ません。 windows8ではできないのでしょうか? また、コンピュータに詳しい友達がうぶんつをどうのこうのと言ってたのですが どういう風にするとうぶんつを使えるようになるのでしょうか? たぶんデュアルブート?ではないと思うのですが… 質問だらけで申し訳ありません。 ちなみに所謂情弱で、Googleで調べても意味が分かりませんでした よろしくお願いします
- Ruby ハッシュ継承クラス、作成方法について
ハッシュを拡張し、値をキーで指定した範囲内から取得したいと思っているのですが、ハッシュと同じように作成できないのでしょうか? 試行錯誤してみたのですが、記述が分かりません・・・。 class Range_List < Hash # # 範囲に対応する、値を取得(速度が気になりますが・・・) # def [](other) @list.each { |range, value| return value if range === other } nil end end # 角度 (0..1) に対応する、十キーのリストを作成 angle_to_direction = Range_List{ # => エラー。このような記述で呼び出したい 0.0625..0.1875 => 3, 0.1875..0.3125 => 2, 0.3125..0.4375 => 1, 0.4375..0.5625 => 4, 0.5625..0.6875 => 7, 0.6875..0.8125 => 8, 0.8125..0.9375 => 9, 0.9375..1 => 6, 0..0.0625 => 6 } # 角度対応の十キーを求める p angle_to_direction[0.1] # => 3 どうかご回答お願いいたします。
- RubyTkのTkLabelが変わらない
以下のコードが思うように動かないです。どのようにすればlabelchangedが表示されるでしょうか? require 'tk' class View def initialize Tk.root.title('test') @label = TkLabel.new('text' => "label").pack Tk.mainloop end def change(str) @label.text = str end end win = View.new win.change("labelchanged")
- ベストアンサー
- Ruby
- 1234567890abcde
- 回答数1
- テキストファイルの差分を取得するには?
2つのテキストファイルの差分を取得したいと思っています。 rubyを使用してdiffコマンドの様な事は可能でしょうか? テキストを1行ずつ配列に入れて - で比較していく方法を使用してみたのですが、途中で行数が変わるような変更が起こっていると上手く動作できませんでした。 理想としては一部が変更された行、追加された行、削除された行といった物を取得したいです。 もし上手く解決出来る様な手法がありましたら、ご教示お願いいたします。
- ベストアンサー
- Ruby
- 0xxxYuMixxx0
- 回答数2