Class: Stone::TypeRegistry

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/stone/type_registry.rb

Instance Method Summary collapse

Constructor Details

#initializeTypeRegistry

Returns a new instance of TypeRegistry.



8
9
10
# File 'lib/stone/type_registry.rb', line 8

def initialize
  @types = {}
end

Instance Method Details

#allObject



38
39
40
# File 'lib/stone/type_registry.rb', line 38

def all
  @types.values
end

#boolObject



55
56
57
# File 'lib/stone/type_registry.rb', line 55

def bool
  @types["Bool"]
end

#intObject

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

#primitivesObject



42
43
44
# File 'lib/stone/type_registry.rb', line 42

def primitives
  @types.values.select(&:primitive?)
end

#record?(name) ⇒ Boolean

Returns:



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

#recordsObject



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

Returns:



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

#stringObject



59
60
61
# File 'lib/stone/type_registry.rb', line 59

def string
  @types["String"]
end

#typeObject



63
64
65
# File 'lib/stone/type_registry.rb', line 63

def type
  @types["Type"]
end