135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
# File 'lib/extend_it/dsl.rb', line 135
def dsl_use_hash(hash_name, variable: nil)
hash_name = hash_name.ensure_symbol!(name_of: :local)
variable = variable.ensure_symbol(name_of: :local)
define_method "use_#{hash_name}" do |*names, except: nil|
hash = dsl_get(variable || hash_name, {})
keys = hash.keys
names = names.ensure_array(:flatten, :ensure_symbol, :compact, :uniq)
names = Dsl.expand_asterisk(names, keys)
names = names.empty? ? keys : names & keys
names -= except.ensure_array(:flatten, :ensure_symbol, :compact, make: true)
hash.replace(Hash[names.map { |n| [n, hash[n]] }])
end
end
|