Class: SchemaRD::Metadata::Parser
- Inherits:
-
Object
- Object
- SchemaRD::Metadata::Parser
- Defined in:
- lib/schemard/metadata.rb
Overview
parser for metadata yaml
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(output_file, *metadata_files) ⇒ Parser
constructor
A new instance of Parser.
-
#parse ⇒ Object
get hash of metadata.
Constructor Details
#initialize(output_file, *metadata_files) ⇒ Parser
Returns a new instance of Parser.
116 117 118 119 120 121 122 |
# File 'lib/schemard/metadata.rb', line 116 def initialize(output_file, *) @parsed = {} .select{|| File.exist?() }.each do || self.class.deep_merge(@parsed, YAML.load_file()) end self.class.deep_merge(@parsed, YAML.load_file(output_file)) if File.exist?(output_file) end |
Class Method Details
.deep_merge(source, other) ⇒ Object
127 128 129 130 131 132 |
# File 'lib/schemard/metadata.rb', line 127 def self.deep_merge(source, other) other.each do |k,v| next self.deep_merge(source[k], other[k]) if other[k].is_a?(Hash) && source[k].is_a?(Hash) source[k] = other[k] end end |
Instance Method Details
#parse ⇒ Object
get hash of metadata
124 125 126 |
# File 'lib/schemard/metadata.rb', line 124 def parse @parsed end |