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 + -
显示快捷键?