Module: JsVars::TagHelper

Defined in:
lib/js_vars/tag_helper.rb

Instance Method Summary collapse

Instance Method Details

#js_vars_tag(default_namespace = 'APP') ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/js_vars/tag_helper.rb', line 4

def js_vars_tag(default_namespace = 'APP')
  script_data = '' 

  JsVars::VarMap.get.each do |namespace, vars|
    namespace ||= default_namespace
    script_data += "if(!window.#{namespace}){ window.#{namespace} = {}};"
    script_data = vars.inject(script_data) {|s, (k, v)| s += "#{namespace}.#{k} = #{v.is_a?(String) ? v : v.to_json};" } if vars
  end

  return '' if JsVars::VarMap.empty?

  JsVars::VarMap.clear

  return script_data.html_safe if request.xhr?

  raw javascript_tag(jsvars: :jsvars){ script_data.html_safe }
end