Method: ComputedModel.normalize_dependencies
- Defined in:
- lib/computed_model.rb
.normalize_dependencies(deps) ⇒ Hash{Symbol=>Array}
Normalizes dependency list as a hash.
Normally you don't need to call it directly. ComputedModel::Model::ClassMethods#dependency, ComputedModel::Model::ClassMethods#bulk_load_and_compute, and ComputedModel::NormalizableArray#normalized will internally use this function.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/computed_model.rb', line 51 def self.normalize_dependencies(deps) normalized = {} deps = [deps] if deps.is_a?(Hash) Array(deps).each do |elem| case elem when Symbol normalized[elem] ||= [true] when Hash elem.each do |k, v| v = [v] if v.is_a?(Hash) normalized[k] ||= [] normalized[k].push(*Array(v)) normalized[k].push(true) if v == [] end else; raise "Invalid dependency: #{elem.inspect}" end end normalized end |