Ruby
- アカウントプログラムについて
rubyでアカウントとパスワードを検証するプログラムを、ハッシュを使って作成しようと思っています。 そこで、if文を使って条件をわけようとしているのですが、うまくいきません。 自分なりに書いてはみたのですが間違っているようで、どこをどう直したらよいか教えていただきたいです! $KCODE = "e" hash_account = {} fo = open("accountData.txt", "r") i = 0 while(line = fo.gets) ary = line.split hash_account[ary[0]] = ary[1] i = i + 1 end fo.close print "*** ログインしてください。自分のアカウント名とパスワードを入力してください。 ***\n" print "アカウント:" account = gets.chop print "パスワード:" password = gets.chop if (hash_account[account] == password) print "ようこそ、", account,"さん。それではゲームを始めましょう。\n" elsif print "パスワードが間違っているようです。\n" else print account,"というアカウントはありません。\n" end ちなみに、accountData.txtには、アカウント名、パスワードの順に入っています。
- RubyのDateクラスのメソッドが見つからない
先日よりRubyでのプログラミングを始めてみたのですが DateクラスのDate::MOTHNAMESを参照しようとしたところ undefined method `MOTHNAMES' for Date:Class (NoMethodError) と返ってきてしまいました。 ほかにもDate::exist?メソッドもためしてみましたが、同じ様なコメントが 返ってきました。 undefined method `exist?' for Date:Class (NoMethodError) なお、 Date.newなどはつかえています どういった問題でどのように解決すれば良いのか、ご教示願えればと思います。 バージョンは ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0] で、Mac OSX Lionで動かしています。
- タスクスケジューラでコマンドを実行するには
WinXPでタスクスケジューラを使い、ローカルでスクリプトを定期的に実行させたいと考えています。 RUBYでスクリプトを走らせたいのですが、タスクスケジューラでコマンドプロンプトにコマンドを自動入力・実行させることは可能でしょうか。 RUBYの起動は C:\WINDOWS\system32\cmd.exe /E:ON /K C:\Ruby193\bin\setrbvars.bat でスケジュールできたのですが、その後 cd c:\a ruby hoge.rb の2つを自動で実行できるようにしたいです。 可能であればどのようにすればよいか、不可能でしたら代替案があれば是非ご教示下さい。
- rubyであるサイトのデータを自動でつぶやくbot
http://www.sanabo.com/words/ 上記サイトから言葉を拾ってきて、つぶやかせるという自動botを考えてます。 流れとしては、サイト上からスクレイピングしデータを切り取り(nokogiri)、それをハッシュ?の中に格納して、その値の中からランダムにつぶやかせる。という感じかなと思ってます。 ※TwitterのAPIはなんとか大丈夫です。 ですが、2点疑問があります。 01) サイト見てみると、「あ」…「お」など言葉がディレクトリごとに分かれており、どうやってアクセスして切り取ってくるのか不明?正規表現とか使うのでしょうか? 02) どういうふうにハッシュの中に値を入れるのか? ご教授いただけますでしょうか? よろしくお願いいたします。
- ベストアンサー
- Ruby
- sho27_2009
- 回答数2
- rubuのプログラミング
accountData.txtというファイルを読み込み、空のハッシュに登録し、そこから関数を使わずにアカウント管理のプログラムを作りたいと思っています。 アカウントとパスワードが一致すれば成功しましたと、アカウントがない場合はアカウントがありませんと、アカウントがあっていて、パスワードが合わない場合はパスワードが間違っていますと作りたいと思っていますが、どうやればいいのか教えてください! accountData.txtというのは名前、パスワードの順番で入っています。 初心者で申し訳ないですが詳しく教えていただけると嬉しいです。 よろしく、お願いします。
- requireするファイルのパス
プログラミングの知識はほぼ皆無なのですが、仕事でRUBYを使わなければならなくなり、オープンソースを弄っているところです。 rbファイルの記述に require '○○' とあるのですが、判らなかったので無視して実行してみたところ、 C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot loa d such file -- ○○ (LoadError) from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require ' from makeindex.rb:2:in `<main>' というエラーが出ました。 ○○ファイルを色々なディレクトリに置いてみたのですが、どれも同じエラーでした。 一般的に、○○ファイルは何処に置くべきなのでしょうか。 尚、環境は以下の通りです。 WindowsXP RUBY 1.9.3 「require '○○'」の記述があるrbファイルの場所 c:\a rbファイルはカレントディレクトリをaにしてから実行 プログラマーの方からすれば意味不明な質問かも知れませんが、ネットで調べてみてもさっぱり判らなかったので質問させて頂きました。 宜しくお願いします。
- Ruby ファイルのリネームでのエラー
組み込みライブラリのFileクラスを使用してリネームをしようとしているのですが、パスを直接記述した場合はリネーム処理がおこなわれますが、変数で渡した場合は Invalid argument とエラーが出ます。 変数で渡した場合でも出来るようにするには何か別の処理が必要なのでしょうか。 宜しくお願いします。 ○のパターン File::rename("C:\test\01sample01.txt","C:\test\sample01.txt") ×のパターン sample1 = "C:\test\01sample01.txt" sample2 = "C:\test\sample01.txt" File::rename(sample1,sample2)
- ベストアンサー
- Ruby
- nightcrows
- 回答数2
- Rails3でのクリックされたボタンの判定について
現在Rails3でWEBアプリの開発をしているのですが 実現方法が不明な事が有るので質問させて頂きました。 実行環境は OS:Windows7 Railsバージョン:3.0.9 APサーバー:WEBrick です。 実現方法が不明なのは、一つのフォームに複数のサブミットボタンを配置し コントローラーでどのボタンが押されたのか判定する方法です。 ビューにおいてフォーム内に <%= submit_tag 'OK', {:disable_with => "Sending…"} %> <%= submit_tag 'CANCEL', {:disable_with => "Sending…"} %> と言う様にサブミットボタンを配置し コントローラーでどちらのボタンが押されたのかを判定する方法なのですが 検索して調べてみると if 'OK' == params[:commit] then OKボタンが押された際の処理 else CANCELボタンが押された際の処理 end と言う風に出来ると言う情報を見つけたのですが、実際にやってみると 上記の様な値はparamsから取得出来ないので、正しく動作しません。 paramsで取得した値の中身を見ても、それらしい値も無く 何を判断すればどのボタンが押されたのかを判断出来るのかが判らず 非常に困っております。 サブミットボタンにjavascriptのコードを埋め込み 送信前にHIDDEN項目にクリックされたボタンを表す値を埋め込むと言った方法で 回避する事も可能かとは思いますが、標準的なやり方とも思えず また、良く行われる処理だと思いますので、他に方法が有る様に思えます。 どなたかご存知の方が居れば御回答お願いします。
- ベストアンサー
- Ruby
- in_no_delusion
- 回答数2
- Rubyで文字列の抽出
Rubyで質問があります。 AAAA;BBBB、CCCCC=DDDDD という文字列が存在したときに、 AAAAとBBBBとCCCCCとDDDDDの文字列を取得したいです。 splitは、特定の区切り文字しか対応していないようなので、複数の区切り文字を指定出来る方法はありませんでしょうか? 確かにsplitで地道に処理するより もうちょっと効率的な方法はないか知りたいです。
- RubyでのOpenIDについての問い合わせ
RubyOnRailsにてOpenIDのライブラリを試しているのですが 付属して来たサンプルを移植しても上手く動作せずに困っています。 環境はWindows7環境でRailsのバージョンは3.0.9 gemコマンドでruby-openidライブラリの2.1.8のバージョンを取得して来て そのサンプルとして付属して来たOP(OpenID Provider)を移植しました。 この際、rack-openidと言うライブラリも取得しております。 RP(Relying Party)の方も同様にネット上の情報を参考にサンプルアプリを作成し ログインシーケンスの動きを確認してみようとしている状況です。 ところが、ログインしようとしてRPのログイン画面からOPのServerの画面にリダイレクトする タイミングで、エラーが発生してしまいます。 調べてみたところ、リダイレクトする際のGETクエリーのパラメータ値が上手く OPのServerの処理に引き継ぎ出来て居ませんでした。 値自体はURLの後にキチンと付加されているので疑問に思い 更に調べてみたのですが、如何もrack-openidライブラリのRack::OpenIDクラスが行っている sanitize_query_stringと言うパラメータ値の無害化(サニタイズ)処理で query_hash = env["rack.request.query_hash"] query_hash.delete("_method") query_hash.delete_if do |key, value| key =~ /^openid\./ end とかやっていまして、 openid関係の値をクリアしている様子 結果として全てのパラメータをクリアしてしまっている様です。 確かに全部クリアしてしまえば無害でしょうけれど、これでは動作に問題が出ると思われる状況です。 そこで、この処理の妥当性をしかるべき相手に問い合わせしたいのですが プロジェクトホームページを見ても、開発者の名前と思われる情報は判るのですが 問い合わせする方法が判らず困っています。 どなたか問い合わせ方法をご存知であれば、教えて頂きたいです。 宜しくお願いします。
- ベストアンサー
- Ruby
- in_no_delusion
- 回答数1
- アカウントのプログラムについて
rubyのプログラミングでアカウントに関するプログラムでアカウントがある場合は成功しました、パスワード違う場合はもう一度入力してください、アカウントがない場合はアカウントがありませんと表示をさせようと思っています。ちなみに、アカウントデータはテキストファイルの中に、名前、パスワードの順番に入っています。 そこで何ですが、def verifyAccount(account, password)という関数の中身をどう定義したら良いのでしょうか? あと、result = verifyAccount(account, password)以降に何を書いたら良いか教えてもらえたら嬉しいです。 聞きたいことが多くて申し訳ないですが是非ともよろしくお願いします! def verifyAccount(account, password) end print "*** ログインしてください。自分のアカウント名とパスワードを入力してください。 ***\n" print "アカウント:" account = gets.chop print "パスワード:" password = gets.chop result = verifyAccount(account, password) ...
- Rubyのソースコードの読み方
現在JavaからRubyに移行しようと勉強をしているのですが、Rubyのソースコードを読んでいくと、変数に何が入っているかわからなくて困っています。 ソースコードを例に説明させていただくと、 gs = TCPServer.open(12345) addr = gs.addr こんなソースがあったとして、2行目のgs.addrというメソッドが何をするメソッドなのか知りたいとします。 しかしRubyでは型宣言をしないので、gsが何のクラスなのかわかりません。 そこでTCPServerクラスのリファレンス(http://www.ruby-lang.org/ja/old-man/html/TCPServer.html)を見るのですが、このサイトのクラスメソッド欄にかいてあるTCPServer.openを呼んでも、戻り値の型が書いていません。 このような場合どうやって、gs.addrメソッドの挙動をしればよいのでしょうか?なお現在は動的にデバックするという方法は無しで考えています。 ご回答よろしくおねがいします。
- rubyのmarkabyの出力の件です
rubyでmarkabyの使用するとhtmソースが普通のエディタでみれません どうしたら表示できるかをよろしくお願いいたします。 =====make_htm.rb/================================================ require 'rubygems' require 'markaby' html = Markaby::Builder.new do head { title 'マイホームページ'} body do h1 "ようこそ" b "項目" ul do li "ライン1" li "ライン2" li "ライン3" end end end puts html =====make_htm.rb/end================================================ を実行すると <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> <title>& #12510;& #12452;& #12507;& #12540;& #12512;& #12506;& #12540;& #12472;</title> </head> <body> <h1>& #12424;& #12358;& #12371;& #12381;</h1> <b>& #38917;& #30446;</b> <ul> <li>& #12521;& #12452;& #12531;& #65297;</li> <li>& #12521;& #12452;& #12531;& #65298;</li> <li>& #12521;& #12452;& #12531;& #65299;</li> </ul> </body> と出力されます(改行はあとで付加しました&と#の間にわざとスペースいれてます) これをブラウザでみればちゃんとみえるのですが htmのソースの状態で <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> <title>マイホームページ</title> </head> <body> <h1>ようこそ</h1> <b>項目</b> <ul> <li>ライン1</li> <li>ライン2</li> <li>ライン3</li> </ul> </body> と出力するにはどうしたらいいでしょうか str = html.to_s puts Iconv.conv('Shift_JIS','UTF-8',str) とやってみても変わりませんでした。 よろしくご教授おねがいいたします。
- 前の質問の住所の追加について。
回答を頂いてやってみたんですが、プログラムを実行して表示された結果は追加出来ているんですが、テキストファイルを開くと追加されていませんでした。 実行したプログラムがテキストファイルにも反映するにはどうしたら良いのでしょうか?? よろしく、お願いします。
- Rails3でAjaxを使いたい
どなたが知識をご教授下さい。 Rails3でAjaxのごく普通のハイパーリンクを作成したいのですが、うまくいきません。 /users/index.html.erb <div id="hoge"> <%= link_to "ajax",{:action => 'draw'},:remote => true %> </div> -- /users/_draw.html.erb ~いろいろ内容~ -- /users/draw.js.erb $('#hoge').html("<%= escape_javascript(render :partial => 'draw' )%>"); -- /users_controller.rb def draw ~いろいろ処理~ end -- ルーティング match 'users/draw' => 'users#draw' -- application.html.erb <%= javascript_include_tag :defaults %> -- gemfile gem 'jquery-rails' 以上のように処理するよう様々なサイトや書籍にはありましたが、「Templete Missing」のエラーが出てしまいます。かれこれ5時間以上ハマってまして、、、 どなたか知識をご教授頂けたら幸いです。 *メモ アクションdrawに渡ったときに、 「request.xhr?がfalse」ということは、ajax通信できていないということでしょうか???
- ベストアンサー
- Ruby
- mizunoke88
- 回答数2
- 住所の追加について
AddressFileクラスに記録されているハッシュの内容に、新たに名前とメールアドレスを追加するメソッドaddをAddressFileクラスのメソッドとして定義したいんですが、def add以降の作り方がわかりません。 どのように作成したらいいか、教えてください! お願いします。 ○が名前で、△が住所になります。 class AddressFile def initialize(file) @original = file @meibo = {} fo = open("address_list.txt", "r") lines = fo.readlines fo.close for aLine in lines data = aLine.split @meibo[data[0]] = data[1] end end attr_accessor :meibo def search(name) @meibo[name] end def add(name,address) end end obj = AddressFile.new("address_list.txt") obj.add("○○○○", "△△△△") obj.search("○○○○") obj.search("○○○○") obj.search("○○○○") 初心者で申し訳ないですが、お願いします。
- Rubyのクラス
class Test def initialize @ary = Array.new(size){false} end def print _print end def _print print"#{@ary}" end end test = Test.new(5) test.print 上記のプログラムはエラーが出て実行できません。期待している動作は[false,false,false,false,false]です。どうしてエラーが出るか教えていただきたいです。また、解決策もよろしくお願いします。
- ベストアンサー
- Ruby
- cheatingkonishi
- 回答数4
- プログラミングについて教えてください!
rubyについてのプログラムで、テキストファイルの中に人の名前と住所が書かれていて、その人の住所が登録されていると、その人の住所が表示され、なければnilを返すプログラムを作りたいと思っていて、 def (search)から後をどう書いたらいいのかわからないので、是非教えていただきたいのでお願いします! class AddressFile def Initialize(file) @original = file @meibo = {} fo = open(file,"r") lines = fo.readlines fo.close for aLine in lines data = aLine.split @meibo[data[0]] =data[1] end end attr_accessor :meibo end def search(name) end end obj = AddressFile.new("address_list.txt") obj.search(○○○○) テキストファイルの中身は、名前、住所の順番で入っています。このプログラムでおかしいとこがあれば、それも教えていただきたいです! よろしく、お願いします!
- rubyのメソッドについて
Ruby初心者(オブジェクト指向はわかります)なのですが、メソッドについてわからないことがあって質問させていただきました。 Net::SMTP.start('smtp.example.com', 25) {|smtp| smtp.send_message(<<-EndOfMail, 'from@example.com', 'to@example.net') From: Your Name <from@example.com> To: Dest Address <to@example.net> Subject: test mail Date: Sat, 23 Jun 2001 16:26:43 +0900 Message-Id: <unique.message.id.string@yourhost.example.com> This is a test mail. EndOfMail } このプログラムの意味を理解しようとしているのですが、どうもわかりません。 私の現在の認識を説明させていただくと、 1)NetクラスのインナークラスであるSMTPクラスのstartメソッドを呼び出している。 2)('smtp.example.com', 25)これはstartメソッドの引数である。 3)|smtp|よくわからない。このstartメソッドの戻り値?startメソッドの中なのに? 4)From: Your Name <from@example.com> ここもよくわからない。なぜ急に変数にも代入しない 文字列を書いたのか? 以上が私の現在の認識と疑問点です。 疑問点はもちろん、認識している点も誤って認識している点があればご指摘いただけると幸いです。