class Interscript::DSL::Metadata

Constants

NECESSARY_KEYS
NONSTANDARD_KEYS
STANDARD_ARRAY_KEYS
STANDARD_STRING_KEYS

Attributes

node[RW]

Public Class Methods

new(yaml: false, map_name: "", library: true, &block) click to toggle source
# File lib/interscript/dsl/metadata.rb, line 6
def initialize(yaml: false, map_name: "", library: true, &block)
  raise ArgumentError, "Can't evaluate metadata from Ruby context" unless yaml
  @map_name = map_name
  @node = Interscript::Node::MetaData.new
  self.instance_exec(&block)
  @node[:nonstandard] = {}

  NECESSARY_KEYS.each do |i|
    unless @node.data.key? i
      warn "[#{@map_name}] Necessary key #{i} wasn't defined. Defaulting to an empty string"
      @node[i] = ""
    end
  end unless library
end