class MusicXML::Node::Config

Attributes

clazz[RW]
plural_attrs[RW]
plural_nodes[RW]
properties[RW]
singular_attrs[RW]
singular_nodes[RW]

Public Class Methods

new(clazz) click to toggle source
# File lib/musicxml/node/config.rb, line 9
def initialize(clazz)
  self.clazz = clazz
  %w[plural_attrs plural_nodes singular_attrs singular_nodes properties].each do |name|
    send("#{name}=", [])
  end
end

Public Instance Methods

pattrs(*names) click to toggle source
# File lib/musicxml/node/config.rb, line 16
def pattrs(*names)
  self.plural_attrs += names
  add_accessors(*names)
end
pnodes(*names) click to toggle source
# File lib/musicxml/node/config.rb, line 21
def pnodes(*names)
  self.plural_nodes += names
  add_accessors(*names)
end
props(*names) click to toggle source
# File lib/musicxml/node/config.rb, line 26
def props(*names)
  self.properties += names
  add_accessors(*names)
end
sattrs(*names) click to toggle source
# File lib/musicxml/node/config.rb, line 31
def sattrs(*names)
  self.singular_attrs += names
  add_accessors(*names)
end
snodes(*names) click to toggle source
# File lib/musicxml/node/config.rb, line 36
def snodes(*names)
  self.singular_nodes += names
  add_accessors(*names)
end

Private Instance Methods

add_accessors(*names) click to toggle source
# File lib/musicxml/node/config.rb, line 43
def add_accessors(*names)
  clazz.class_eval { attr_accessor(*names) }
end