Module: RablRails

Extended by:
Renderer
Defined in:
lib/rabl-rails.rb,
lib/rabl-rails/handler.rb,
lib/rabl-rails/library.rb,
lib/rabl-rails/railtie.rb,
lib/rabl-rails/version.rb,
lib/rabl-rails/compiler.rb,
lib/rabl-rails/renderer.rb,
lib/rabl-rails/template.rb,
lib/rabl-rails/condition.rb,
lib/rabl-rails/responder.rb,
lib/rabl-rails/renderers/xml.rb,
lib/rabl-rails/renderers/base.rb,
lib/rabl-rails/renderers/json.rb,
lib/rabl-rails/renderers/plist.rb

Defined Under Namespace

Modules: Handlers, Renderer, Renderers Classes: CompiledTemplate, Compiler, Condition, Library, Railtie, Responder

Constant Summary collapse

VERSION =
'0.3.0'
@@cache_templates =
true
@@include_json_root =
true
@@use_custom_responder =
false
@@responder_default_template =
'show'
@@plist_engine =
nil
@@include_plist_root =
nil

Class Method Summary collapse

Methods included from Renderer

render

Class Method Details

.cache_templates?Boolean

Returns:

  • (Boolean)


73
74
75
# File 'lib/rabl-rails.rb', line 73

def self.cache_templates?
  ActionController::Base.perform_caching && @@cache_templates
end

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (RablRails)

    the object that the method was called on



42
43
44
45
46
# File 'lib/rabl-rails.rb', line 42

def self.configure
  yield self

  ActionController::Base.responder = Responder if self.use_custom_responder
end

.json_engineObject



54
55
56
# File 'lib/rabl-rails.rb', line 54

def self.json_engine
  MultiJson.engine
end

.json_engine=(name) ⇒ Object



48
49
50
51
52
# File 'lib/rabl-rails.rb', line 48

def self.json_engine=(name)
  MultiJson.engine = name
rescue LoadError
  Rails.logger.warn %Q(WARNING: rabl-rails could not load "#{name}" as JSON engine, fallback to default)
end

.load_default_engines!Object



77
78
79
80
81
82
83
84
85
86
# File 'lib/rabl-rails.rb', line 77

def self.load_default_engines!
  self.json_engine  = MultiJson.default_engine
  self.plist_engine = Plist::Emit if defined?(Plist)

  if defined?(LibXML)
    self.xml_engine = 'LibXML'
  elsif defined?(Nokogiri)
    self.xml_engine = 'Nokogiri'
  end
end

.plist_engine=(name) ⇒ Object



68
69
70
71
# File 'lib/rabl-rails.rb', line 68

def self.plist_engine=(name)
  raise "Your plist engine does not respond to #dump" unless name.respond_to?(:dump)
  @@plist_engine = name
end

.xml_engineObject



64
65
66
# File 'lib/rabl-rails.rb', line 64

def self.xml_engine
  ActiveSupport::XmlMini.backend
end

.xml_engine=(name) ⇒ Object



58
59
60
61
62
# File 'lib/rabl-rails.rb', line 58

def self.xml_engine=(name)
  ActiveSupport::XmlMini.backend = name
rescue LoadError, NameError
  Rails.logger.warn %Q(WARNING: rabl-rails could not load "#{name}" as XML engine, fallback to default)
end