ruby
array = [] array2 = [] : array2 = array array.clear 当然のことなんですが、上のように記述したら、 array2の内容もclearされます。そんなときは、sliceを使う。配列を要素を含めて全てコピーする - gan2 の Ruby 勉強日記
h = Hash.new{ |hash,key| hash[key] = {} } Ruby 2次元のハッシュ -Rubyで2次元のハッシュを扱いたいです。perlで- その他(プログラミング・Web制作) | 教えて!goo
Kwartz - kuwata-lab.com るびま るびま学習したことをメモがてら、載せていく。 ex プレゼンテーションデータファイルex.html <table> <tr id="list"> <td id="mark:item">Foo</td> </tr> <tr id="dummy:d1"> <td>Bar</td> </tr> </table> プレゼンテーションロジックファイルex.plogic #list { logic: { for member in @members _stag _cont _etag end …
Makoto Kuwataさんに教えて頂きました。 早すぎる最適化オジサン on Twitter: "@rdera とりいそぎ、kwartz 3.2.0用のパッチを作成しました。http://gist.github.com/646778 これを例えばpatch.diffで保存し、kwartz.rbがあるディレクトリでpatch -p1 < patch…
マイクロ秒まで含んだ文字列が欲しかった。 以下の記事のコードを少し修正して、対応した。 instance_evalのこと、良く分かってませんが……。 ミリ秒まで含んだ時刻文字列 - gan2 の Ruby 勉強日記 エロと風俗情報満載 どう抜く? puts Time.now.instance_eva…
rubyで任意のファイルの行数を調べたいときはどうするのか。 方法は2つあると思っている。 fp = open(filename,'r') line_count = fp.read.count("\n") fp = open(filename,'r') line_count = 0 while fp.gets line_count += 1 end 前者の方法はファイルの…
require 'json' open(filename,'r'){|fp| fp_json = JSON.parse(fp.read) } fp_json.each_key do |key| p fp_json[key][hoge] end とか。filenameの容量が大きい場合、 JSON.parse(fp.read)って、一気に読み込んでるんだけど。 これって、問題はないのかなぁ…
やりたいこと $ rvm install 1.9.2 $ rvm use 1.9.2 $ gem install pg rvmでruby1.9.2をインストールして、 そのrubyのgemでpgをインストールした。この、pgをapacheのcgiで使用したい。 で、使ってみる #!/home/rdera/.rvm/rubies/ruby-1.9.2-p180/bin/ruby…
環境 rvm 1.2.8 centos 5 ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] opensslがrequireできない require 'openssl' requireしたら、怒られた。 no such file to load -- openssl (LoadError) 解決手順 id:TrinityTさんの下記記事通り実行し…
自分がフォローしている人のXMLデータをゲットするAPIを叩いて、 idだけを取得したかった。 http://api.twitter.com/1/friends/ids/rdera.xml rubyでxmlデータを処理するには"rexml/document"というのが、 利用できるようなので、使ってみた。 コード requir…
やりたかったこと 以下のようなファイルを abc.txt <aaa></aaa> <bbb></bbb> <ccc></ccc> <ddd></ddd>以下のようなファイルへ書き換える abc.txt <aaa></aaa> <bbb></bbb> <ccc>hogehogehoge</ccc> <ddd></ddd> コード #!/usr/bin/ruby open("abc.txt","r+") {|f| f.flock(File::LOCK_EX) body = f.read body = body.gsub(/(^<bbb>).*(<\/bbb>$)/) do |tmp| </bbb>…
rvmとは Ruby Version Managerのこと。 rubyのversionを管理できるツール。 rvmをインストールする。 下記の通り実行。 $ bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head ).bashrcとか.zshrcに以下追記。 [[ -s "$HOME/.rvm/scrip…
プログラミング言語 Ruby リファレンスマニュアル cgi.headerを使う cgi= CGI.new cgi.header({ "status" => "OK", "server" => "ENV['SERVER_SOFTWARE'] }) みたいな。 クッキー クッキーオブジェクトを作成する。 cookie1 = CGI::Cookie.new({ 'name' => '…
centos5.5のyumで入れるImageMagickは古い。 そのため、rubyのgemでrmagickをinstallしようとすると エラーが出ていた。 そのため、以下手順でImageMagickをインストールした。 手順はid:tohaeさんの下記記事の通り。 CentOS5にRMagickをインストールする - …
例えば、以下のようにプログラムを書いていた。 conn.exec_prepared("stmt",[hoge_1,hoge_2,hoge_3]) exec_preparedの引数が多いときは、一行がとても長くなってしまい、ちょっと困っていた。 でも、少し考えて、気づいたのだが、配列で渡してやれば良いんだ…
rubyでsprintfを使うと、NoMethodErrorとか怒られて、 よく分からなくなるときがあるので、困っていた。 ググッてみたら、rubyではsprintfを使わなくても、 やりたい事ができるみたいなので、sprintfを使うのを止めた。 sprintf使ってた頃 str = sprintf("%0…
#!/usr/bin/ruby -Ku a = [1,2,3] a.unshift(100) a << 200 puts a
Rubyで標準エラー出力に出力したい時。 STDERR.puts(args[0])
rubyバージョン $ ruby -v ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux] メール送信するクラスを作ってみた class SendMail require 'net/smtp' def initialize(from,to,sub,server,port=25) @from = from @to = to @sub = sub @server = serve…
実施環境。 CentOS release 5.5 (Final) ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] Server version: Apache/2.2.3 ruby1.8.7をインストール # wget ftp://ftp.iij.ad.jp/pub/lang/ruby/1.8/ruby-1.8.7-p302.tar.gz # tar zxvf ruby-1.8.7-p302…
[rk10][29S09] HTMLデザインをまったく崩さないテンプレートエンジンの作り方 - ニコニコ動画でKwartz - kuwata-lab.comの存在を知り、 これは良いなーと思い、使ってみたんだけど、うまくいかない。 行ったことは以下の通り。 kwartzをインストールする # g…
offline mode: enter name=value pairs on standard input と怒られた。 CGIのオフラインモードを回避するには - わさっきhb ありがとう。id:takehikomさん。 ということで、CGI.newの前にARGV.replace(["abc=001"])と記述して、解決した。
半角英数字の3文字以上32文字以下の文字列を"true"として、それ以外は"false"として扱いたかった。 以下のような制御構造の文を書いてみた。これで対応できると考えている。 #!/usr/bin/ruby -Ku #str = "a" #str = "ab" str = "abc" if str.empty? str =…
rubyでcgiを書いてて、htmlを出力する部分に日本語を書いてたんだけど、そこが怒濤の勢いで怒られた。ちょっと調べてみたら、rubyの実行を以下のようにすることで解決した。UTF-8で記述していたので。 #!/usr/bin/ruby -Ku rubyはデフォルトでは漢字を処理し…
今までは、メソッドを動的に呼び出したいときは、 以下の手順を踏んでいた。 1.evalでメソッドが記述されているファイルをrequire 2.evalでメソッドを実行。ただ、この方法だとメソッドに引数を渡すのが、 うまくできなくなったんで、__send__を使うことに…
ググったら、一発でした。 プログラミング言語 Ruby リファレンスマニュアル 複数の戻り値の渡しかた def hoge(*z) if z.empty? puts "YES!!" else puts "NO!!" puts z.first end end def hoge2(x,*z) puts x puts z.first end hoge("a","b","c") # => NO!! …
題名の通りの現象に直面した。 どうやら、自作のmoduleを使用するには requireが必要らしいのだ。 requireしてなかった。以下の記事が詳しい。Rubyで自作の外部モジュールを読み込む方法 - include と extend と module_function - (゚∀゚)o彡 sasata299's blo…
rubyを弄ってて、ruby dynamic constant assignment,と怒られた。 どうやら、定数をメソッド内で使うとダメみたいだ。 def hoge Hoge = "" end dynamic constant assignment - リンギオ
#!/usr/bin/ruby STRINGS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz._+-" puts STRINGS str = "" 40.times do str += STRINGS[rand 66] end puts str
;を使えば、良いと知った。 if a==1; puts "a" elsif a==2; puts "b" else puts "c" end と以下は同様な実行結果。 if a==1 puts "a" elsif a==2 puts "b" else puts "c" end