rubyでBASE64エンコードするだけなら、
require 'base64' Base64.encode64 'hogehoge'
で良いのですが、なぜか改行を付けてくれる親切設計です。
BASE64してファイル名にすること等も多いと思うので、
Base64.encode64('hogehoge').chomp.sub('/', '_').sub('+', '-')
のようにまとめておくと良さそうですね。
ということで、手抜きのキャッシュモジュールです。
色々穴だらけですが。
module Datacache #キャッシュから取得する def cache_read(key) begin filename = get_filename key if File.exists? filename fp = File.open(filename) return Marshal.load(fp) end rescue ensure fp.close if fp end return nil end #キャッシュに書き込む def cache_write(key, value) begin filename = get_filename key fp = File.open(filename, 'w') Marshal.dump(value, fp) rescue ensure fp.close if fp end end #キー名からファイル名を返す def get_filename(key) file = Base64.encode64(key).chomp.sub('/', '_').sub('+', '-') return ::RAILS_ROOT + '/tmp/datacache/' + file end end