class RestCore::Defaults
Public Class Methods
members()
click to toggle source
# File lib/rest-core/middleware/defaults.rb, line 4 def self.members; [:defaults]; end
Public Instance Methods
method_missing(msg, *args, &block)
click to toggle source
the use of singleton_class is making serialization hard! def initialize app, defaults
super singleton_class.module_eval do defaults.each{ |(key, value)| define_method(key) do |env| if value.respond_to?(:call) value.call else value end end } end
end
Calls superclass method
# File lib/rest-core/middleware/defaults.rb, line 23 def method_missing msg, *args, &block env = args.first if env.kind_of?(Hash) && (d = defaults(env)) && d.key?(msg) defaults(env)[msg] else super end end
respond_to_missing?(msg, include_private=false)
click to toggle source
Calls superclass method
# File lib/rest-core/middleware/defaults.rb, line 32 def respond_to_missing? msg, include_private=false # since psych would call respond_to? before setting up # instance variables when restoring ruby objects, we might # be accessing undefined ivars in that case even all ivars are # defined in initialize. we can't avoid this because we can't # use singleton_class (otherwise we can't serialize this) return super unless instance_variable_defined?(:@defaults) if (d = defaults({})) && d.key?(msg) true else super end end