Sha256: 26e22cc7df094ae309038d7861c9ad3e3cb24974fdc864c2364e1bfd4a60621c

Contents?: true

Size: 1.91 KB

Versions: 15

Compression:

Stored size: 1.91 KB

Contents

require 'active_support'
require 'active_support/core_ext/string/inflections'
require 'active_support/core_ext/object/blank'
require 'active_support/core_ext/hash/reverse_merge'
require 'active_support/core_ext/hash/slice'

require 'rabl/version'
require 'rabl/helpers'
require 'rabl/partials'
require 'rabl/engine'
require 'rabl/builder'
require 'rabl/configuration'
require 'rabl/railtie' if defined?(Rails) && Rails.version =~ /^3/

# Rabl.register!
module Rabl
  class << self

    def register!
      require 'rabl/template'
    end

    # Yields a RABL configuration block
    # Rabl.configure do |config|
    #  config.include_json_root     = false
    #  config.enable_json_callbacks = true
    # end
    def configure(&block)
      yield(configuration)
      configuration
    end

    # Returns the configuration options set for RABL
    # Rabl.configuration.include_json_root => false
    def configuration
      @_configuration ||= Configuration.new
    end

    # Resets the RABL configuration back to the defaults.
    def reset_configuration!
      @_configuration = nil
    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" }
    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

    # Resets the RABL source cache
    def reset_source_cache!
      @_source_cache = {}
    end

  end
end

# Register
if defined?(Padrino)
  require 'padrino-core'
  Padrino.after_load { Rabl.register! }
elsif defined?(Rails) && Rails.version =~ /^2/
  Rabl.register!
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
rabl-0.6.8 lib/rabl.rb
rabl-0.6.7 lib/rabl.rb
rabl-0.6.6 lib/rabl.rb
rabl-0.6.5 lib/rabl.rb
rabl-0.6.3 lib/rabl.rb
rabl-0.6.2 lib/rabl.rb
rabl-0.6.1 lib/rabl.rb
rabl-0.6.0 lib/rabl.rb
rabl-0.5.5.j lib/rabl.rb
rabl-0.5.5.i lib/rabl.rb
rabl-0.5.5.h lib/rabl.rb
rabl-0.5.5.g lib/rabl.rb
rabl-0.5.5.f lib/rabl.rb
rabl-0.5.5.e lib/rabl.rb
rabl-0.5.5.d lib/rabl.rb