Ruby
- 素数列挙 Ruby
1000までの素数を列挙するプログラムは書けました。 def s(max) arr=(2..max).to_a (2..Math::sqrt(max)).each do |i| arr.delete_if {|a|a % i == 0 && a!=i} end arr end puts s(1000) 今度は10の10乗から10の11乗の間に存在する素数を列挙するプログラムを書きたいのです。 時間は気にしないので、上の試し割り方法で良いです。助けてください。 また、メモリの上限を変更する必要がありますか?ないとしたら、どの範囲から変更は必要ですか。 10の20乗から?30乗から? 本当の初心者なのでどうかよろしくお願いします。
- 締切済み
- Ruby
- sawayakacola
- 回答数4
- MacにてRVM謎の挙動を示し使用不能に
RVMを公式サイトのトップページにあるコマンドにてインストール後,MacPortsにてインストールしなおしたところ,謎の挙動を示すようになり,使い物にならなくなりました.インストール後にて指示されるsourceコマンドを実行してシステムを再起動して使おうとするとrvmコマンドが見つからないと言われますし,Rubyは1.9.3を入れているはずなのになぜか1.8.3になってしまいます.先ほどのsourceコマンドを再び使った直後はrvmコマンドが使え,Ruby1.9.3を使うように設定できるのですが,シェルを再起動した途端にアクティブなRubyバージョンの状態が1.8.3になり,rvmコマンドが見つからなくなってしまいます. RVMをアンインストール後,公式サイトのトップページにあるコマンドにて再インストールしても同様です. 解決法はあるのでしょうか.どうかよろしくおねがいします.
- ベストアンサー
- Ruby
- noname#213069
- 回答数1
- [aptana studio 3]プレビュー
aptana studio 3を使用してPHPページを作成しようとしております。 XAMPPをインストールし、ローカルでの開発環境は構築できました。 そこで、便利だと思いaptanaのプレビューウィンドウでPHPページのプレビューを試みているのですが、うまくいきません。 aptanaの「プロジェクト」→「プロパティ」の画面にある「preview settings」画面で、新規にプレビュー用サーバー(XAMPP)を設定し、登録までは出来たのですが、既存の「Built-in Server」から登録したXAMPPのサーバーに変更しようしても、反映されません。 一旦変更して、設定ウィンドウを閉じると設定がクリアされてしまい、再度「preview settings」を開くと、元の「Built-in Server」に設定が戻っています。 理由がわからず困っております。 どなたかご存知でしたらお願いいたします。
- Ruby Vectorの===変更の問題
言語はRubyです。 Vectorにて数値を管理している都合上、まとめて計算や判定ができないかと思い、 要素に範囲オブジェクトを入れたVectorと、同じ要素数のVectorとの、 範囲内判定を実装したい為、下記のように組んでみました。 # # 全ての要素が、範囲内か判定 # def ===(v) each2(v) { |range, x| return false unless range === x } return true end Vector[(0..10), (5..8)] === Vector[3, 8]のように組めます。 しかしこの記述だと、元の===が変更されてしまう為、元の処理が使えなくなると思います。 ===が重要な処理と関係していなければ良いのですが、やはり大きく影響するのでしょうか? ヘルプで検索を掛けても記号の為、ヒットせず、どこで実装されているか分からないので質問しました。 ご教授下されば幸いです。 宜しくお願いいたします。
- GUIプログラムを作りたいのですが
どんな方法がいいでしょうか?(もちろん、Rubyを使うことが前提です。Ruby/Tkとか、FxRubyとかいろいろあるみたいですが) ずっと前は、Apolloを使っていたのですが、最近のRubyバージョンには対応していないようですし。 または、Winoleについて詳しく書かれたサイトはないでしょうか? (まずは、ファイル選択部分をGUIにしたいと思っています)
- 開発工程についての質問
開発工程について質問ですが、 要件定義→サーバー設計→プログラミング→テスト→デプロイ→保守運用 この流れであってますか?
- ruby mechanize アクセス出来ない
https://login.ocn.ne.jp/auth/s2016/pc/AuthLoginDisplay.action このサイトにRubyのmechanizeからログインしたいのですが、 そもそもここにアクセスできていないようです。 .actionというのはhtmlと違ってアクセスできないのでしょうか。 以下、コードと出力です。 # -*- encoding: utf-8 -*- require 'rubygems' require 'mechanize' agent = Mechanize.new page = agent.get('https://login.ocn.ne.jp/auth/s2016/pc/AuthLoginDisplay.action') pp page 出力 #<Mechanize::Page {url #<URI::HTTPS:0x007f989240a150 URL:https://login.ocn.ne.jp/auth/s2016/pc/AuthLoginDisplay.action>} {meta_refresh} {title "システムエラー"} {iframes} {frames} {links #<Mechanize::Page::Link "ヘルプ" "http://www.ocn.ne.jp/login/mb/index.html"> #<Mechanize::Page::Link "著作権について" "http://mobile.ntt.com/m/copyright.html"> #<Mechanize::Page::Link "プライバシーポリシー" "http://506506.ntt.com/mbl/privacy/s_policy01.html"> #<Mechanize::Page::Link "→OCNトップ" "http://www.ocn.ne.jp"> #<Mechanize::Page::Link "NTT Communications" "http://www.ntt.com/"> #<Mechanize::Page::Link "著作権について" "http://www.ntt.com/COPYRIGHT/"> #<Mechanize::Page::Link "プライバシーポリシー" "http://www.ocn.ne.jp/privacy-policy/"> #<Mechanize::Page::Link "NTTコミュニケーションズ" "http://www.ntt.com/">} {forms}> 以上
- ルビープログラムのフォーム入力について
Rubyプログラムを勉強中です。 簡単な掲示板から始めているのですが、実行させるとうまく動きません。 なにかヒントになるものがあれば教えて下さい。 参考サイト http://jp.rubyist.net/magazine/?0012-CGIProgrammingForRubyBeginners-3 エラーの症状 上記サイトの「CGI クラスを使ってフォームデータを取得する」項目で実際にhtmlフォームへ半角英数で入力すると値を返してくれます。 下記は値を返した時のページのソース <html><head></head><body>1<br></body></html> しかし全角入力でフォームへ入力するとするとHTML値を返してくれません。 下記は値を返した時のページのソース <html><head></head><body> 参考サイトのデータをそのまま実行させているのですが、何か原因はわかりますでしょうか? Rubyプログラムの中身は下記のとおりです。 #!/usr/local/bin/rubyrequire "cgi"print "Content-Type: text/html\n\n" print "<html><head></head><body>" c = CGI.newtext = c["t"] print textprint "<br>" print "</body></html>" もしわかれば教えて下さい。よろしくお願いします。
- ベストアンサー
- Ruby
- m6419875622
- 回答数2
- 配列に入った文字列を結合したいのですが
str = array1[m] + array2[n] というように結合したいのですがエラーになります。 どうすればいいのでしょうか?
- Rails3でのルーティングの書き方
Ruby1.9.3とRails3.2.9の環境でのルーティングではまってしまっているので、御経験のある方、御教示ください。現在、 config/routes.rbに Sample::Application.routes.draw do resources :users resources :tasks match '/users/login' match '/users/logout' match ':controller(/:action(/:id))' match ':controller(/:action(/:id))(.:format)' end を記述して、WEBrickを起動して、 http://localhost:3000/users/login/ を実行すると、このアドレスには移動するのですが、 NoMethodError in Users#show Showing C:/user/Ruby193/rails/sample/app/views/users/show.html.erb where line #5 raised: のエラーが出ます。 WEBrickの表示を見てみると、 Started GET "/users/login/" for 127.0.0.1 at 2013-01-22 22:56:06 +0900 Processing by UsersController#show as HTML Parameters: {"id"=>"login"} Rendered users/show.html.erb within layouts/users (2.0ms) Completed 500 Internal Server Error in 5ms となっていて、/users/login/をGETしているのですが、アクションでshowが呼び出されて、そのIDとして loginが渡っているように見えます。 現在、users\controller.rbのshowの関数の定義は全てコメントアウトしています。usersコントローラの def login関数の定義と、app/views/users/login.html.erbも置いているのですが、それらが表示されない状態で原因が分かりかねています。 上記のルーティングの書き方に何か問題があるのでしょうか?
- テスト環境でのsaveについて
Ruby1.9.3とRails3.2.9でのテスト環境のモデルの単体テスト(unit)での質問です。 unitのuser_test.rb に下記の記述を書いて試験しているのですが、saveコマンドでのusersテーブル への書き込みが、下記でnewしたuserの内容ではなく、fixturesフォルダの下の、users.ymlのテストデータの内容が書き込まれるようなのですが、動作はそれでよいのでしょうか?また、YMLデータではなくて下記のデータを書き込ませるsaveの書き方とかはあるのでしょうか? test "user auth test" do user = User.new(:name => "tanaka", :password => "pass", :password_confirmation => "pass") user.save assert User.auth("tanaka", "pass") end 後、現在、usersテーブルのhashed_passwordフィールドに、モデル(user.rb)の中で、パスワードの セッターを再定義するために、 class User < ActiveRecord::Base def password=(pwd) @password = pwd # return if pwd.blank? self.hashed_password = User.encrypt(@password) end # 以下、省略 end の記述を入れているのですが、現在何故か、YMLのデータが暗号化されないでそのまま入力されてしまっていますま。このメソッドの呼び出しは、上に書いたusersテーブルの内容またはYMLデータの書き込み時に、実行されると思っていいのでしょうか?(両方、またはどちらか?) 御教示願えればと思います。
- Rails3でのYAMLファイルのtメソッド呼出し
config\locales\translation_ja.ymlファイルを下記のように編集して、 ja: activerecord: models: demandapp: "要望" #g attributes: demandapp: acquisition: "補足" #g class1: "大分類" #g class2: "分類" #g content: "内容" #g derivery: "納期" #g report_count: "件数 #g" source: "提起" #g state: "状態" #g これをviewのindexから下記のように、I18n.tメソッドを使って日本語訳を呼び出そうとすると、 <% Demandapp.column_names.each do |col| %> <th> <%= t("activerecord.attributes.demandapp.#{col}") %> # <ーここ </th> <% end %> I18n::InvalidLocaleData in Demandapps#index can not load translations from c:/user/Ruby193/rails/demand/config/locales/translation_ja.yml, expected it to return a hash, but does not #の所でエラーが出て理由が分かりかねています。 ご経験のある方、御教示願えればと思います。
- Railsでのpaginateの方法
Rails3.2.9でのpaginateがうまくいきません。 分かる方、御教示ください。 今のところ、下記の状態です。 (1)Ruby193/lib/ruby/gems/1.9.1/gemsの下に、mislav-will_paginate-2.3.11 をインストールした。 (2)Ruby193/rails/demand/Gemfileに gem 'mislav-will_paginate', '~> 2.3' を追加した。 (3)コマンドプロンプトで、>bundle installを実行 Using mislav-will_paginate (2.3.11)となっていることを確認 (4)app/controller/demandapps_controller.rb のdef indexの@demandapps = Demandapp.allを @demandapps = Demandapp.paginate(:page => params[:page], :per_page => 15) に変更 (5)app/views/demandappsのindex.html.erbの <table>~</table>の下に <%= will_paginate(@items) %> を追加。 この状態でWEBrickを動かすと、 NoMethodError in DemandappsController#index undefined method `paginate' for #<Class:0x3c0a218> app/controllers/demandapps_controller.rb:5:in `index' のエラーが出ます。paginateが認識されていないようなのですが、 この他にどこか設定しないといけない個所とかあるのでしょうか? よろしくお願い致します。
- WinXP+Apache2にerubyを入れました
自身の質問「WinXP+Apache2にeRubyを入れたい」の結果報告と 「httpd.conf」の設定に付いての質問です。 まず、使用環境の詳細から記述します。 Windows-XP/Pro SP3 Apache v2.0.55 (H:\Apache Group\Apache2にインストール) PHP v5.1.6 (H:\php5.1.6にインストール) MySQL v5.1.36 (H:\MySQL5にインストール) DocumentRootは「H:/Ap2_Ruby/home」で cgi-binは「H:/Ap2_Ruby/cgi-bin」です。 インストールの顛末を記述します。 1.ActiveRubyをインストール http://www.artonx.org/data/asr/ から ActiveScriptRuby(1.8.7-p330 --with-winsock2 --enable-tcltk-stub) Microsoft Installer Package (1.8.7.36) をダウンロード ActiveRuby.msi をダブルクリックしインストールを開始 「H:\Ruby」へインストール PATHを追加「H:\Ruby\bin;」 2.gemをアップデート コマンドプロンプトから gem update --system を実行 3.erubyをインストール http://www.garbagecollect.jp/ruby/mswin32/ja/download/ext.html から eruby-1.0.5-i386-mswin32-1.8.zip をダウンロード 解凍後フォルダーを全て「H:\Ruby」へコピー 4.mod_ruby.soのインストール http://rubyforge.org/projects/rubyforapache から RubyForApache-1.3.1.exe をダウンロード ダブルクリックしインストールを開始 C:\Program Files\RubyForApache\ H:\Apache Group\Apache2\ H:\Ruby\ のフォルダを指定 インストールモジュールの選択で mod_ruby のみにチェック msvcp71.dllがOPENできないエラーが出れば無視して継続 5.httpd.confを編集/Apache2を起動 「The requested operation has failed!」となる confのmod_ruby.soをコメントアウト Apache2が起動した mod_ruby.soがエラーの原因と判断 6.別のmod_ruby.soをインストール http://www.moriq.com/ruby/win32-apache2-ruby1.8.1-mod_ruby/ から mod_ruby.so をダウンロード modulesに上書きコピー 7.Apache2を起動 Apache2は起動した 8.erubyのテスト 以下の「test.rhtml」を記述 ------------------------------------------------- <% ERuby.charset="Shift-JIS" %> <html> <body> HTML文と混在で、Ruby CGIが使えます。<br> <font size=6>ここはHTMLで、</font>次の行はRubyです。<br> <br> <% print "eRuby TEST<br>" %> </body> </html> ------------------------------------------------- IE8で「http://localhost/test.rhtml」を実行 正常に表示される。 と、言う結末でした。 eruby-1.0.5-i386-mswin32-1.8.zip や RubyForApache-1.3.1.exe や http://www.moriq.com/ruby/win32-apache2-ruby1.8.1-mod_ruby/ を見つけるのに、完全に「ネット迷子」に為り往生しました。 前置きが長くなりましたが、ここからが質問です。 ネットで色々探して記述した内容ですが 意味も良く分からず記述していますので これで良いのかどうか全く分かりません。 思いっきり突っ込みを頂きたいと思います。 httpd.confの変更箇所 ------------------------------------------------- LoadModule ruby_module modules/mod_ruby.so <IfModule mod_ruby.c> RubyAddPath H:/Ruby/lib/ruby/site_ruby/1.8/apache RubyAddPath H:/Ruby/lib/ruby/site_ruby/1.8 RubyAddPath H:/Ruby/bin RubyRequire apache/ruby-run RubyRequire apache/eruby-run RubyRequire auto-reload <Location /ruby> Options Indexes FollowSymLinks ExecCGI SetHandler ruby-object RubyHandler Apache::RubyRun.instance </Location> <Files *.rbx> Options Indexes FollowSymLinks ExecCGI SetHandler ruby-object RubyHandler Apache::RubyRun.instance </Files> <Location /eruby> Options Indexes FollowSymLinks ExecCGI SetHandler ruby-object RubyHandler Apache::ERubyRun.instance </Location> <Files *.rhtml> Options Indexes FollowSymLinks ExecCGI SetHandler ruby-object RubyHandler Apache::ERubyRun.instance </Files> </IfModule> DocumentRoot "H:/Ap2_Ruby/home" Options Indexes FollowSymLinks Includes ExecCGI UserDir "H:/Ap2_Ruby/home" ScriptAlias /cgi-bin/ "H:/Ap2_Ruby/cgi-bin/" <Directory "H:/Ap2_Ruby/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi .rb .rbx .rhtml ------------------------------------------------- 以上 Rubyの達人様方、よろしくご教授ください。
- 名前空間
module Mod1 def samemethod p "Mod1.samemethod" end module_function :samemethod end module Mod2 def samemethod p "Mod2.samemethod" end module_function :samemethod end class Cls extend Mod1 extend Mod2 end Mod1.samemethod # => (1) Cls.Mod2.samemethod # => (2) 上の記述において、(1)は、"Mod1.samemethod" と表示されるのですが、 (2)が、undefined method `Mod2' for Cls:Class (NoMethodError) となってしまいます。Clsから名前空間のメソッドを呼び出したい場合、 どういった書き方をすればいいのでしょうか? 御経験のある方、御教示願えたらと思います。
- Ruby on Railsのインストールについて
Ruby on Railsのインストールをしています。 そこで、gemのインストールまではいきついたのですが、RMagickのインストールに失敗します。 失敗時のログは以下です。 --------------------------------------------------------------------------------- [manabix]# gem install rmagick --no-ri --no-rdoc -v 2.12.2 Building native extensions. This could take a while... /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/ext/builder.rb:46: warning: Insecure world writable dir /usr/local in PATH, mode 040777 ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb checking for Ruby version >= 1.8.5... yes checking for gcc... yes checking for Magick-config... yes checking for ImageMagick version >= 6.3.5... yes checking for HDRI disabled version of ImageMagick... yes checking for stdint.h... yes checking for sys/types.h... yes checking for wand/MagickWand.h... yes checking for InitializeMagick() in -lMagickCore... no checking for InitializeMagick() in -lMagick... no Can't install RMagick 2.12.2. Can't find the ImageMagick library or one of the dependent libraries. Check the mkmf.log file for more detailed information. *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/local/bin/ruby --with-MagickCorelib --without-MagickCorelib --with-Magicklib --without-Magicklib Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/rmagick-2.12.2 for inspection. Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/rmagick-2.12.2/ext/RMagick/gem_make.out --------------------------------------------------------------------------------- どうすれば、うまくRMagickをインストールできますでしょうか?
- 漢字が表示されない
Rubyの初心者です。 Rubyのバージョンを、 ruby-1.8.7 から ruby-1.9.3 に上げたのですが、 コマンドプロンプト上での漢字の表示が1.8.7ではできていたのですが、 19.3にすると、putsやprintで漢字を表示させようとすると、 invalid multibyte char (US-ASCII) のエラーが出てしまって、漢字が表示されなくなってしまいました。 ヴァージョンを上げたことで、漢字を表示させるために何かやらないといけないこととかあるのでしょうか? 御経験のある方、御教示願えればと思います。
- WinXP+Apache2にeRubyを入れたい。
Ruby初心者です。 「WinXp+Apache2+PHP5+MySQL5」の環境を使用しています。 今度Rubyも入れようと考えています。 PHPのようにRubyを動かしたくてネットを検索すると「eRuby」を使い 「mod_ruby.so」をApacheのモジュールとして組込む必要が有る と書かれています。が・・・ネットに記載のある 「http://rtokiwa.s55.xrea.com/wiki/index.php?mod_ruby_win32bin」や 「http://www.modruby.net」が接続できません。 mod_rubyのWindowsバイナリーは何処で入手出来るのでしょうか? 同様にeRubyのWindowsバイナリーは何処で入手出来るのでしょうか? ネットの記載も古い物が多く、最近は「mod_ruby.so」や「eRuby」を使わなくても 「WinXp+Apache2」環境でPHPの様に使用出来る環境設定が有るのでしょうか? 初心者なもので自分の環境にRubyを構築できず困っています。 どなたか、ご教授ください。 よろしくお願いします。
- MacRubyにおけるコメントアウトの記法
Rubyだと =begin コメントアウト コメントアウト =end という形で=beginと=endを使用して複数行のコメントアウトをすると思うのですが、 MacRubyだと以下のエラーが出てしまいます。 syntax error, unexpected '=' MacRubyはRubyと違って書き方が違うのでしょうか。 よろしくお願いいたします。
- Railsのメモリサイズについて
Railsを使用して開発をしている者です。 そこで質問があるのですが、実はDBから読み込んだデータをメモリ上に展開して キャッシュ参照するロジックを書いたのですが 試しに大量件数をロードしたらメモリアロケーション(NoMemoryError)の エラーが発生しました。 実行時の環境は下記のとおりです OS:WindowsVista Rubyバージョン:1.9.3 Railsバージョン:3.2.6 Server:WebRick AptanaStudio3の環境から実行 そこで、Railsが使用する最大のメモリサイズがどの程度なのかを 調べてみたのですが、参考書などを調べてみたものの RailsのみならずRubyでも最大メモリサイズの設定等について 言及されている情報が見つかりませんでした。 Java等であれば、実行時のオプションに「-Xmn256m」等と指定して実行する事で 最大ヒープサイズを指定して実行する事が可能かと思いますが Railsにこの様な設定は無いのでしょうか? また、NoMemoryErrorが発生した際にも物理メモリには余裕がありましたので Railsの処理環境で何らかの上限値が存在するものと思いますが その値や設定箇所等もあれば、教えて頂きたいです。
- ベストアンサー
- Ruby
- in_no_delusion
- 回答数3