lib/gon/helpers.rb in gon-2.3.0 vs lib/gon/helpers.rb in gon-3.0.0
- old
+ new
@@ -6,31 +6,28 @@
end
module InstanceMethods
def include_gon(options = {})
- if Gon.request_env && Gon.all_variables.present? && Gon.request == request.object_id
- data = Gon.all_variables
- namespace = options[:namespace] || 'gon'
- start = '<script>window.' + namespace + ' = {};'
- script = ''
- if options[:camel_case]
- data.each do |key, val|
- script << namespace + '.' + key.to_s.camelize(:lower) + '=' + val.to_json + ';'
- end
- else
- data.each do |key, val|
- script << namespace + '.' + key.to_s + '=' + val.to_json + ';'
- end
- end
- script = start + Gon::Escaper.escape(script) + '</script>'
- script.html_safe
+ if variables_for_request_present?
+ Gon::Base.render_data(options)
+ elsif Gon.global.all_variables.present?
+ Gon.clear
+ Gon::Base.render_data(options)
else
""
end
end
+ private
+
+ def variables_for_request_present?
+ Gon::Request.env &&
+ Gon::Request.id == request.object_id &&
+ Gon.all_variables.present?
+ end
+
end
end
module GonHelpers
@@ -39,14 +36,21 @@
end
module InstanceMethods
def gon
- if !Gon.request_env || Gon.request != request.object_id
- Gon.request = request.object_id
- Gon.request_env = request.env
+ if wrong_gon_request?
+ Gon::Request.id = request.object_id
+ Gon::Request.env = request.env
end
Gon
+ end
+
+ private
+
+ def wrong_gon_request?
+ Gon::Request.env.blank? ||
+ Gon::Request.id != request.object_id
end
end
end