Method: Fidgit::Schema#merge_elements!

Defined in:
lib/fidgit/schema.rb

#merge_elements!(elements_hash) ⇒ Object

Merge in a hash containing default values for each element.

Parameters:



56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/fidgit/schema.rb', line 56

def merge_elements!(elements_hash)
  elements_hash.each_pair do |klass_names, data|
    klass = Fidgit
    klass_names.to_s.split('::').each do |klass_name|
      klass = klass.const_get klass_name
    end

    raise "elements must be names of classes derived from #{Element}" unless klass.ancestors.include? Fidgit::Element
    @elements[klass] ||= {}
    @elements[klass].deep_merge! data
  end

  self
end