Module: JsendWrapper::Rails

Defined in:
lib/jsend_wrapper/rails/railtie.rb,
lib/jsend_wrapper/rails/template_handler.rb

Defined Under Namespace

Classes: Railtie, TemplateHandler

Class Method Summary collapse

Class Method Details

.install_render_optionObject

Adds the “jsend:” option to ActiveController::Base#render



51
52
53
54
55
56
57
58
# File 'lib/jsend_wrapper/rails/railtie.rb', line 51

def self.install_render_option
  require 'jsend_wrapper/rails/render_option'

  ActionController::Renderers.add :jsend do |value, _|
    self.content_type ||= Mime::JSON
    RenderOption.new(value).render
  end
end

.install_template_handlerObject

Install a “template handler” for .jsend view files. These files will be processed with Jbuilder, just like .jbuilder view files, but the result will be wrapped in a “success” JSend wrapper.



42
43
44
45
46
47
# File 'lib/jsend_wrapper/rails/railtie.rb', line 42

def self.install_template_handler
  require 'jsend_wrapper/rails/template_handler'

  ActionView::Template.register_template_handler \
    :jsend, JsendWrapper::Rails::TemplateHandler
end

.jbuilder_available?Boolean

Returns true if the Jbuilder gem is available.

Returns:

  • (Boolean)

    true if the Jbuilder gem is available



31
32
33
34
35
36
37
# File 'lib/jsend_wrapper/rails/railtie.rb', line 31

def self.jbuilder_available?
  require 'jbuilder'
  true
rescue LoadError
  $stderr.puts 'WARN: Please include the "jbuilder" gem for .jsend templates'
  false
end