class MatterCompiler::KeyValueCollection
Blueprint
AST node for key-value collections
@abstract @attr collection [Array<Hash>] array of key value hashes
Attributes
collection[RW]
Public Instance Methods
filter_collection(ignore_keys)
click to toggle source
Filter collection keys
@returns [Array<Hash>] collection without ignored keys
# File lib/matter_compiler/blueprint.rb, line 102 def filter_collection(ignore_keys) return @collection if ignore_keys.blank? @collection.select { |kv_item| !ignore_keys.include?(kv_item.keys.first) } end
load_ast!(ast)
click to toggle source
# File lib/matter_compiler/blueprint.rb, line 75 def load_ast!(ast) return if ast.empty? @collection = Array.new ast.each do |item| @collection << Hash[item[:name].to_sym, item[:value]] end end
serialize(level = 0, ignore_keys = nil)
click to toggle source
Serialize key value collection node to a Markdown string buffer
@param ignore_keys [Array<String>] array of keys that should be ignored (skipped) during the serialization
# File lib/matter_compiler/blueprint.rb, line 86 def serialize(level = 0, ignore_keys = nil) buffer = "" @collection.each do |hash| unless ignore_keys && ignore_keys.include?(hash.keys.first) level.times { buffer << ONE_INDENTATION_LEVEL } buffer << "#{hash.keys.first}: #{hash.values.first}\n" end end buffer << "\n" unless buffer.empty? buffer end