Class: Ellipses::Server::Symbols
- Inherits:
-
Object
- Object
- Ellipses::Server::Symbols
- Defined in:
- lib/ellipses/server/symbols.rb
Constant Summary collapse
- CircularReferenceError =
Class.new Error
- MissingSymbolError =
Class.new Error
- BogusLeafError =
Class.new Error
- EmptyPayloadError =
Class.new Error
Instance Method Summary collapse
- #[](string) ⇒ Object
-
#initialize(meta) ⇒ Symbols
constructor
A new instance of Symbols.
- #register(string) ⇒ Object
- #resolve(string) ⇒ Object
- #walk(symbol, &block) ⇒ Object
Constructor Details
#initialize(meta) ⇒ Symbols
Returns a new instance of Symbols.
78 79 80 81 82 83 |
# File 'lib/ellipses/server/symbols.rb', line 78 def initialize() @meta = @registry = {} build end |
Instance Method Details
#[](string) ⇒ Object
85 86 87 88 89 |
# File 'lib/ellipses/server/symbols.rb', line 85 def [](string) raise MissingSymbolError, "Missing symbol: #{string}" unless @registry.key? string @registry[string] end |
#register(string) ⇒ Object
97 98 99 |
# File 'lib/ellipses/server/symbols.rb', line 97 def register(string) _register Symbol.from_string(string) end |
#resolve(string) ⇒ Object
91 92 93 94 95 |
# File 'lib/ellipses/server/symbols.rb', line 91 def resolve(string) resolved = [] walk(self[string]) { |symbol| resolved << symbol } resolved end |
#walk(symbol, &block) ⇒ Object
101 102 103 |
# File 'lib/ellipses/server/symbols.rb', line 101 def walk(symbol, &block) _walk(symbol, Set[symbol], &block) end |