Class: Stone::TypeRegistry
- Inherits:
-
Object
- Object
- Stone::TypeRegistry
- Includes:
- Singleton
- Defined in:
- lib/stone/type_registry.rb
Instance Method Summary collapse
- #all ⇒ Object
- #bool ⇒ Object
-
#initialize ⇒ TypeRegistry
constructor
A new instance of TypeRegistry.
-
#int ⇒ Object
Convenience accessors for built-in types.
- #lookup(name) ⇒ Object (also: #[])
- #primitives ⇒ Object
- #record?(name) ⇒ Boolean
- #records ⇒ Object
- #register(type) ⇒ Object
- #register_as(name, type) ⇒ Object
- #registered?(name) ⇒ Boolean
-
#reset! ⇒ Object
Reset registry (useful for testing).
- #string ⇒ Object
- #type ⇒ Object
Constructor Details
#initialize ⇒ TypeRegistry
Returns a new instance of TypeRegistry.
8 9 10 |
# File 'lib/stone/type_registry.rb', line 8 def initialize @types = {} end |
Instance Method Details
#all ⇒ Object
38 39 40 |
# File 'lib/stone/type_registry.rb', line 38 def all @types.values end |
#bool ⇒ Object
55 56 57 |
# File 'lib/stone/type_registry.rb', line 55 def bool @types["Bool"] end |
#int ⇒ Object
Convenience accessors for built-in types
51 52 53 |
# File 'lib/stone/type_registry.rb', line 51 def int @types["Int"] end |
#lookup(name) ⇒ Object Also known as: []
22 23 24 |
# File 'lib/stone/type_registry.rb', line 22 def lookup(name) @types[name] end |
#primitives ⇒ Object
42 43 44 |
# File 'lib/stone/type_registry.rb', line 42 def primitives @types.values.select(&:primitive?) end |
#record?(name) ⇒ Boolean
31 32 33 34 35 36 |
# File 'lib/stone/type_registry.rb', line 31 def record?(name) type = @types[name] return false unless type !type.primitive? end |
#records ⇒ Object
46 47 48 |
# File 'lib/stone/type_registry.rb', line 46 def records @types.values.reject(&:primitive?) end |
#register(type) ⇒ Object
12 13 14 15 |
# File 'lib/stone/type_registry.rb', line 12 def register(type) @types[type.name] = type type end |
#register_as(name, type) ⇒ Object
17 18 19 20 |
# File 'lib/stone/type_registry.rb', line 17 def register_as(name, type) @types[name] = type type end |
#registered?(name) ⇒ Boolean
27 28 29 |
# File 'lib/stone/type_registry.rb', line 27 def registered?(name) @types.key?(name) end |
#reset! ⇒ Object
Reset registry (useful for testing)
68 69 70 |
# File 'lib/stone/type_registry.rb', line 68 def reset! @types.clear end |
#string ⇒ Object
59 60 61 |
# File 'lib/stone/type_registry.rb', line 59 def string @types["String"] end |
#type ⇒ Object
63 64 65 |
# File 'lib/stone/type_registry.rb', line 63 def type @types["Type"] end |