54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/grape/util/strict_hash_configuration.rb', line 54
def self.nested_settings_methods(setting_name, new_config_class)
new_config_class.class_eval do
setting_name.each_pair do |key, value|
define_method "#{key}_context" do
@contexts[key] ||= Grape::Util::StrictHashConfiguration.config_class(*value).new
end
define_method key do |&block|
send("#{key}_context").instance_exec(&block)
end
end
define_method 'to_hash' do
merge_hash = {}
setting_name.each_key { |k| merge_hash[k] = send("#{k}_context").to_hash }
@settings.to_hash.merge(
merge_hash
)
end
end
end
|