Sha256: a5794ded33c4ee35723537b55922fec86562194b848a972d4a95ceb8b630c20f
Contents?: true
Size: 892 Bytes
Versions: 8
Compression:
Stored size: 892 Bytes
Contents
require 'rest-core/middleware' class RestCore::Defaults def self.members; [:defaults]; end include RestCore::Middleware # 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 def method_missing msg, *args, &block env = args.first if env.kind_of?(Hash) && (d = defaults(env)) && d.key?(msg) if (value = defaults(env)[msg]).respond_to?(:call) value.call else value end else super end end def respond_to? msg if (d = defaults({})) && d.key?(msg) true else super end end end
Version data entries
8 entries across 8 versions & 1 rubygems