97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# File 'lib/sinatra/namespace.rb', line 97
def setup(base, prefix = nil, options = {}, mixin = nil, &block)
prefix, options = nil, prefix if options.empty? and prefix.respond_to? :key?
prefix ||= ""
mixin ||= self
mixin.class_eval { @prefix, @options, @base = prefix, options, base }
mixin.extend ClassMethods, NestedMethods
mixin.send(:define_method, :error_block!) do |*keys|
if block = keys.inject(nil) { |b,k| b ||= mixin.errors[k] }
instance_eval(&block)
else
super(*keys)
end
end
mixin.before { extend mixin }
mixin.class_eval(&block) if block
mixin
end
|