lib/rack/tracker/handler.rb in rack-tracker-1.5.0 vs lib/rack/tracker/handler.rb in rack-tracker-1.6.0

- old
+ new

@@ -11,10 +11,13 @@ end class_attribute :position self.position = :head + class_attribute :allowed_tracker_options + self.allowed_tracker_options = [] + attr_accessor :options attr_accessor :env # Allow javascript escaping in view templates include Rack::Tracker::JavaScriptHelper @@ -53,7 +56,31 @@ end end def handler_name self.class.name.demodulize.underscore + end + + def tracker_options + @_tracker_options ||= {}.tap do |tracker_options| + options.slice(*allowed_tracker_options).each do |key, value| + if option_value = value.respond_to?(:call) ? value.call(env) : value + tracker_options[tracker_option_key(key)] = tracker_option_value(option_value) + end + end + end + end + + private + + # Transformations to be applied to tracker option keys. + # Override in descendants, if necessary. + def tracker_option_key(key) + key.to_sym + end + + # Transformations to be applied to tracker option values. + # Override in descendants, if necessary. + def tracker_option_value(value) + value end end