module Rabl
Defines the default cache engine for RABL when caching is invoked for a template. You can define your own caching engines by creating an object that responds to fetch and setting the configuration option:
config.cache_engine = AdvancedCacheEngine.new
Constants
- VERSION
Public Instance Methods
Returns the configuration options set for RABL #configuration.include_json_root => false
# File lib/rabl.rb, line 45 def configuration @_configuration ||= Configuration.new end
Yields a RABL configuration block #configure do |config|
config.include_json_root = false config.enable_json_callbacks = true
end
# File lib/rabl.rb, line 38 def configure(&block) yield(configuration) configuration end
Initialize RABL within an application #register!
# File lib/rabl.rb, line 29 def register! require 'rabl/template' end
Renders an object using a specified template within an application. render(@post, 'posts/show', :view_path => “/path/to/app/views”)
# File lib/rabl.rb, line 76 def render(object, source, options = {}) Rabl::Renderer.new(source, object, options).render end
Resets the RABL configuration back to the defaults.
# File lib/rabl.rb, line 50 def reset_configuration! @_configuration = nil end
Resets the RABL source cache
# File lib/rabl.rb, line 70 def reset_source_cache! @_source_cache = {} end
Fetches from the #source_cache, stores block result in cache if nil Used to cache the contents and paths to various rabl templates #source_cache(“users/index”, “path/to/view”) { “/full/path/to/template/users/index” }
# File lib/rabl.rb, line 57 def source_cache(file, view_path, &block) return yield unless Rabl.configuration.cache_sources @_source_cache ||= {} cache_key = [file, view_path].compact.join(":") if cached_result = @_source_cache[cache_key] cached_result else # store result of block @_source_cache[cache_key] = yield end end