Module: Gon::Base

Defined in:
lib/gon/base.rb

Class Method Summary collapse

Class Method Details

.get_controller(options = {}) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/gon/base.rb', line 16

def get_controller(options = {})
  options[:controller] ||
    (
      current_gon &&
      current_gon.env['action_controller.instance'] ||
      current_gon.env['action_controller.rescue.response'].
        instance_variable_get('@template').
        instance_variable_get('@controller')
    )
end

.get_template_path(options, extension) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/gon/base.rb', line 27

def get_template_path(options, extension)
  if options[:template]
    if right_extension?(extension, options[:template])
      options[:template]
    else
      [options[:template], extension].join('.')
    end
  else
    controller = get_controller(options).controller_path
    action = get_controller(options).action_name
    "app/views/#{controller}/#{action}.json.#{extension}"
  end
end

.render_data(options) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/gon/base.rb', line 5

def render_data(options)
  namespace, tag, cameled, camel_depth, watch, type, cdata = parse_options(options)
  script = "window.#{namespace}={};"

  script << formatted_data(namespace, cameled, camel_depth, watch)
  script = Gon::Escaper.escape_unicode(script)
  script = Gon::Escaper.javascript_tag(script, type, cdata) if tag

  script.html_safe
end