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
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
Merge in a hash containing default values for each element.

 @param [Hash<Symbol => Hash>] elements_hash