class States::Dsl::Naming
Attributes
children[R]
converter[RW]
names[R]
namespace[R]
parent[R]
Public Class Methods
new(parent)
click to toggle source
# File lib/states/dsl/naming.rb, line 11 def initialize(parent) @parent = parent @names = [] @references = [] @children = [] if parent @namespace = parent.namespace if parent.converter self.converter = parent.converter end parent.children << self else @namespace = Namespace.new end end
Public Instance Methods
<<(name)
click to toggle source
# File lib/states/dsl/naming.rb, line 27 def <<(name) nm = StateName.new(name, self) @names << nm nm end
convert(str)
click to toggle source
# File lib/states/dsl/naming.rb, line 39 def convert(str) if converter converter.call(str) else str end end
ref(name)
click to toggle source
# File lib/states/dsl/naming.rb, line 33 def ref(name) ref = StateReference.new(name, self) @references << ref ref end
resolve()
click to toggle source
# File lib/states/dsl/naming.rb, line 47 def resolve return if @resolved if parent parent.resolve else resolve_children end end
resolve_children()
click to toggle source
# File lib/states/dsl/naming.rb, line 56 def resolve_children @names.each { |name| @namespace.resolve(name) } @references.each do |ref| ref.resolved_to = @names.detect { |nm| nm.local_name == ref.name } end @children.each(&:resolve_children) @resolved = true end