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