Sha256: 553a39dccc3c8d03b48d2b4c96750d98b185891ece89225f6aad4df8eb8c761b
Contents?: true
Size: 764 Bytes
Versions: 15
Compression:
Stored size: 764 Bytes
Contents
module MotionPrime module HasNormalizer def normalize_options(unordered_options, receiver = nil, order = nil) options = if order Hash[unordered_options.sort_by { |k,v| order.index(k.to_s).to_i }] else unordered_options end options.each do |key, option| unordered_options[key] = normalize_object(option, receiver) end end def normalize_object(object, receiver) receiver ||= self if object.is_a?(Proc) receiver.send(:instance_exec, self, &object) elsif object.is_a?(Hash) object.inject({}) do |result, (key, nested_object)| result.merge(key => normalize_object(nested_object, receiver)) end else object end end end end
Version data entries
15 entries across 15 versions & 1 rubygems