metafragment.rb
来自「用ruby on rails写的一个博客程序,还不错..ruby on rail」· RB 代码 · 共 47 行
RB
47 行
module MetaFragmentCache def meta_fragment_key(name) return "META/META/#{name}", "META/DATA/#{name}" end def read_meta_fragment(name, options = nil) metakey, contentkey = meta_fragment_key(name) meta = YAML.load(read_fragment(metakey)) rescue {} content = read_fragment(contentkey) return meta, content end def read_meta_fragment_expire(name, options = nil) meta, content = read_meta_fragment(name, options) if(meta.kind_of? Hash and meta[:expires].kind_of? Time and meta[:expires] < Time.now) expire_meta_fragment(name) return {},nil else return meta, content end end def write_meta_fragment(name, meta, content, options = nil) metakey, contentkey = meta_fragment_key(name) write_fragment(contentkey, content) write_fragment(metakey, YAML.dump(meta)) end def expire_meta_fragment(name, options = nil) if(name.kind_of? Regexp) metakey, contentkey = meta_fragment_key('.*'+name.source).collect {|key| Regexp.new("^#{key}")} elsif(name.kind_of? String) metakey, contentkey = meta_fragment_key(name) else raise "MetaFragmentCache only supports regexes and strings as expire keys" end expire_fragment(metakey) expire_fragment(contentkey) endendmodule ActionController class Base include MetaFragmentCache endend
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?