lib/rails_current.rb in rails_current-1.4.1 vs lib/rails_current.rb in rails_current-1.5.0

- old
+ new

@@ -2,11 +2,11 @@ require 'map' module Current def Current.version - '1.4.1' + '1.5.0' end def Current.data Thread.current[:current] ||= Map.new end @@ -57,21 +57,20 @@ self end def Current.define_attribute_method(name) + name = name.to_s unless respond_to?(name) singleton_class.module_eval do define_method(name) do - if data.has_key?(name) and !data[name].nil? - data[name] - else - if generator = generators[name] - value = generator.call - data[name] = value - end + value = data[name] + if value.nil? and generator = generators[name] + value = generator.call + data[name] = value end + value end define_method(name + '=') do |value| data[name] = value end @@ -133,22 +132,22 @@ def method_missing(method, *args, &block) case method.to_s when /^current_(.*)$/ msg = $1 - Current.send(msg, *args, &block) + value = Current.send(msg, *args, &block) + else super end end end def Current(*args, &block) Current.attribute(*args, &block) end - if defined?(Rails) ## # module Current @@ -165,9 +164,10 @@ prepend_before_filter do |controller| Current.clear Current.controller = controller end + extend Current include Current helper{ include Current } end end end