Rubyまつもとゆきひろ氏が作成されたプログラミング言語です。実はRailsに興味をもち、この機会にRubyを勉強しようと思った次第です。開発環境はEclipseです。なんといってもEclipseプラグインがあるからです。 インストールhttp://www.ruby-lang.org/ja/からダウンロードしました。日本語なので大変ありがたいです。ぐだぐた書く必要もありません。 http://www.ruby-lang.org/ja/install.cgi?cmd=view;name=top がすべてですね。とってもわかりやすいです。といいつつ ./configure --help で確認して、 ./configure --enable-shared にしてます。 windowsはRubyのダウンロードとインストールを参考に。終ったら(といっても展開するだけですが)、ruby\binにpathをきっておきます。 開発環境とりあえずエディターでやるのもなーと思い、EclipseでRadRailsを使っていたのですが、(Eclipseプラグイン参照)
コード補完が使えなく、Declarationもないので、ん?あるぞ。両方ともいけます!
コンテンツ・アシストはRubyコンテンツ・アシストなんですね。
aptanaになってからか?サーバをdebugで起動させれば、debugもできますね。
他にも、NetBeans6.0でいけます。
http://ja.netbeans.org/ gem install ruby-debug-ide でいれても /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin にrdebug-ideがないと怒られたので、 そのディレクトリで ln -s /Library/Ruby/Gems/1.8/gems/ruby-debug-ide-0.1.9/bin/rdebug-ide としておきました。 EclipseユーザのためのNetBeans入門 irbTIPSdef self.メソッド名クラスを作成していなくても呼び出せる。javaのstaticみたいなものか? 変数変数の先頭で意味合いが変わります。 @ #インスタンス変数 @@ #クラス変数 $ #グローバル変数 コメント# もしくは =begin =end で囲む シンボルソースを見てると:hogeとかコロンで始まるのを見つけ、なんじゃこりゃと思って調べてみると、参考:rubyのシンボルがいまいち理解できません p "hoge".object_id == "hoge".object_id >false p :hoge.object_id == :hoge.object_id >true でなのです。 yieldこれも最初は?でした。サンプルで理解しましょう。 class TestClass attr_accessor :name1 attr_accessor :name2 def initialize() @test = Array.new @test.push("aaaa") @test.push("bbb") @test.push("ccc") end def hoge yield(10,20) #2回動く yield(10,20) end def hoge2 @test.each{|tes| yield(tes) } end def hoge3 yield(name1,name2) end end testclass = TestClass.new testclass.hoge{|x,y| p x*y} testclass.hoge2{|aa| p aa.length} testclass.name1 = "名字"; testclass.name2 = "名前"; testclass.hoge3{|aa,bb| puts aa+bb} 結果 200 200 4 3 3 名字名前 false true pprequire 'pp' としておいて、 pp hoge とするとpより改行してみやすくしてくれます。 メソッドの一覧p hoge.methods p hoge.public_methods p hoge.private_methods p hoge.protected_methods で一覧がみれます。 hashmapa = [10, 20, 30, 40, 50] a.map! {|x| x*10} p a #=>[100, 200, 300, 400, 500] a.map {|x| x*10} p a #=>[100, 200, 300, 400, 500] ちなみに!は破壊的メソッドです。 ディープコピーnewcart = Marshal.load(Marshal.dump(cart)) 参考:Marshal net/httpquery_hash = Hash.new query_hash["va"] = "hoge" query_string = query_hash.map{|key,value| "#{URI.encode(key)}=#{URI.encode(value)}" }.join("&") begin Net::HTTP.start('search.yahoo.co.jp', 80) {|http| response = http.post('/web/advanced',query_string) p response.body } rescue puts "exception on HTTP: #{$!}" end 参考:標準添付ライブラリ紹介 【第 7 回】 net/http WWW::Mechanizegem install mechanizeで入れておいて、 require 'mechanize' agent = WWW::Mechanize.new page = agent.get('http://search.yahoo.co.jp/web/advanced') form = page.forms.first form.va = "hoge" res = agent.submit(form) resbody = res.body p resbody WWW::Mechanizeとnet/httpではWWW::Mechanizeの方が使いやすい ただ0.7.0と0.7.1で動きが違うのが気になる... とりあえず0.7.0を使ってます。 参考:WWW::Mechanize による Webアクセスの自動化 HpricotWWW::Mechanizeをいれれば入ってきてます。htmlを解析するのがとても楽! RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechaniz ハッシュソートhashhoge2 = hashhoge.sort_by{|key,val|val} スレッドetcattr_accessible :aaa,:bbb #ここで指定した項目以外が保護される。 リンクhttp://wiki.rubyonrails.com/rails/pages/RailsOnFedora DBMySQLgem install mysql -- --with-mysql-dir=/usr/local/mysql メニュがでてきますので、windowsであれば、1番(-- --with-mysql-dir=/usr/local/mysqlはいりません)Linuxであれば、3で。またwindowsの場合は、pathに ;C:\Program Files\MySQL\MySQL Server 5.0\bin; を追加しておいてあげましょう。 PostgreSQLhttp://www.postgresql.jp/interfaces/ruby/index-ja.html ApolloApollo = Delphi + Rubyとのことです。http://www.moriq.com/apollo/からダウンロードしました。 今はどうなっているんだろうか。 リンク本家 参考書籍コメント
|