lib/gon.rb in gon-1.0.0 vs lib/gon.rb in gon-1.1.0
- old
+ new
@@ -1,14 +1,40 @@
require 'action_view'
require 'gon/helpers'
-require 'ostruct'
-Gon = OpenStruct.new
+module Gon
+ def self.all_variables
+ @request_env[:gon]
+ end
-class << Gon
- def all_variables
- instance_variable_get :@table
+ def self.clear
+ @request_env[:gon] = {}
end
- def clear
- instance_variable_set :@table, {}
+
+ def self.request_env=(request_env)
+ @request_env = request_env
+ end
+
+ def self.request_env
+ if defined?(@request_env)
+ return @request_env
+ end
+ end
+
+ def self.method_missing(m, *args, &block)
+ @request_env[:gon] ||= {}
+
+ if ( m.to_s =~ /=/ )
+ set_variable(m.to_s.delete('='), args[0])
+ else
+ get_variable(m.to_s)
+ end
+ end
+
+ def self.get_variable(name)
+ @request_env[:gon][name]
+ end
+
+ def self.set_variable(name, value)
+ @request_env[:gon][name] = value
end
end