Entries

スポンサーサイト

javascriptは参照渡し

Perlは深く、Rubyは浅いの続きでjavascript。<script type="text/javascript">hash1={ hoge:1, piyo:2, fuga:3};hash2=hash1;hash2.hoge=10;for(key in hash1){ alert('hash1 '+key+' : '+hash1[key]);}for(key in hash2){ alert('hash2 '+key+' : '+hash1[key]);}</script>結果『hash1 hoge : 10』『hash1 piyo : 2』『hash1 fuga : 3』『hash2 hoge : 10』『hash2 piyo : 2』『hash2 fuga : 3』一般にjavascriptは、...

+=

a=1b=aa+=1puts "a: #{a}"puts "b: #{b}"実行結果a: 2b: 1あれれ、rubyは浅いコピーなんだから、結果はaもbも2と思いきや、そうではない。演算子+=は破壊的メソッドではないからである。『変数aに1を加えたオブジェクトを生成し、それを指し示している。』とでも言うのかな。因みに以下はa,b同じ結果がでる例。a='1'b=aa...

Perlは深く、Rubyは浅い

%hash1=( 'hoge'=>1, 'piyo'=>2, 'fuga'=>3);%hash2=%hash1;$hash1{'hoge'}=10;foreach (keys %hash1){ print "$_ : $hash1{$_}\n";}print "\n";foreach (keys %hash2){ print "$_ : $hash2{$_}\n";}実行結果piyo : 2fuga : 3hoge : 10piyo : 2fuga : 3hoge : 1hash1={ 'hoge'=>1, 'piyo'=>2, 'fuga'=>3}hash2=hash1hash1['hoge']=10hash1.each do |key,val| puts key + ' : ' + val.to_sendputshash2.each do |key,val| ...

zipファイルデータをSTDOUTに出力

zipファイルを標準出力に書き出したい。そこで、おしえて!goo質問。ズバリ回答は得られなかったが、その後なんとか自分で出来たので、整理する。■経緯 zipファイルを生成するライブラリは、探したところ ・rubyzip ・zipruby というのがある。 共に標準出力への書き出し機能は備わっていないが、 ziprubyには、Zip::Archive.open_bufferというメソッドがあるので、 これを使って、body=''Zip::Archive.open_buffer(body, Z...

JRuby その2

JRubyは、使いものにならん。以上。...

JRuby その1

rubyのライブラリで事足らない。そんなこと、今まで無かったのだが、rubyでは簡単にできそうにもない。ゴリゴリ作れば出来るのだろうけど、めんどくさい。色々調べてみると、JAVAならやりたい事は簡単にできそうであることがわかった。でも、いまさらJAVAは億劫だ。そこで、JRuby。JRubyならrubyからJAVAのライブラリを使えるらしい。■rubyからJAVAのライブラリを使うには? rubyでなく、jrubyに乗り換える。 ?juby インストー...

エクセルファイルを返すcgi

エクセルファイルをレスポンスするcgi。#!/usr/local/bin/rubyrequire 'cgi'header={ "status"=>"OK", "type"=>"application/vnd.ms-excel", "pragma"=>"no-cache", "Content-Disposition"=>'attachment; filename="e.xls"', "cache-control"=>"no-cache,must-revalidate"}cgi=CGI.new('html3')f=open('/hoge.xls','rb')body=f.readf.closecgi.out(header){body}が、これIEだと読み込んでくれない。"cache-control"=>"no-ca...

rubyのクロージャproc

rubyでZipファイルを取り扱うのに便利なziprubyは、ファイルからZipファイルを読み込む時と、通信などでメモリバッファに取り込んだZip形式データとで、呼び出すメソッドが異なる。・Zip::Archive.open(ファイル名)・Zip::Archive.open_buffer(バッファ名)これを一つのメソッドにして、与える引数によって、ファイルでもバッファでもおkにしてみる。#Zipの中にZipがあるようなデータをアーカイブしたい場合には、...

sqlite3 バイナリデータ(blob)の突っ込み方

#!/usr/bin/rubyrequire 'sqlite3'db = SQLite3::Database.new("hoge.db")path='./hoge'f = open(path,'rb')val=f.readdb.execute('insert into table01 (path, val) values(?, ?)',path,SQLite3::Blob.new(val))f.closeSQLite3::Blob.new()でくくってやらないとダメ。しかしsqlite3は、らくだねぇ...

Appendix

プロフィール

kovayashi

Author:kovayashi
・嫌いなもの
 →好きなもの

・インストール
 →バンドル
・バックアップ
 →アップロード
・努力
 →チート

最近のトラックバック

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。