Class: Chordpro::Directive

Inherits:
Struct
  • Object
show all
Defined in:
lib/chordpro/directive.rb

Defined Under Namespace

Classes: Name

Constant Summary collapse

BY_NAME =
{}
BY_ALIAS =
{}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



2
3
4
# File 'lib/chordpro/directive.rb', line 2

def name
  @name
end

#valueObject

Returns the value of attribute value

Returns:

  • (Object)

    the current value of value



2
3
4
# File 'lib/chordpro/directive.rb', line 2

def value
  @value
end

Class Method Details

.find(name) ⇒ Object



29
30
31
# File 'lib/chordpro/directive.rb', line 29

def self.find(name)
  BY_NAME[name.to_s] || BY_ALIAS[name.to_s]
end

.register(name, **options) ⇒ Object



22
23
24
25
26
27
# File 'lib/chordpro/directive.rb', line 22

def self.register(name, **options)
  directive = Name.new(name, **options)

  BY_NAME[directive.to_s] = directive
  BY_ALIAS[directive.aka] = directive if directive.aka
end

Instance Method Details

#accept(visitor) ⇒ Object



33
34
35
# File 'lib/chordpro/directive.rb', line 33

def accept(visitor)
  visitor.respond_to?(name.to_s) ? visitor.send(name.to_s, value) : self
end