Class: MilkTea::ImportedBindings::Registry

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/milk_tea/bindings/imported_bindings.rb

Instance Method Summary collapse

Constructor Details

#initialize(bindings = []) ⇒ Registry

Returns a new instance of Registry.



99
100
101
102
103
# File 'lib/milk_tea/bindings/imported_bindings.rb', line 99

def initialize(bindings = [])
  @bindings = {}
  @bindings_by_module_name = {}
  bindings.each { |binding| register(binding) }
end

Instance Method Details

#check_task_namesObject



131
132
133
# File 'lib/milk_tea/bindings/imported_bindings.rb', line 131

def check_task_names
  map(&:check_task_name)
end

#each(&block) ⇒ Object



119
120
121
# File 'lib/milk_tea/bindings/imported_bindings.rb', line 119

def each(&block)
  @bindings.each_value(&block)
end

#fetch(name) ⇒ Object



113
114
115
116
117
# File 'lib/milk_tea/bindings/imported_bindings.rb', line 113

def fetch(name)
  @bindings.fetch(name.to_s)
rescue KeyError
  raise Error, "unknown imported binding #{name}"
end

#find_by_module_name(module_name) ⇒ Object



123
124
125
# File 'lib/milk_tea/bindings/imported_bindings.rb', line 123

def find_by_module_name(module_name)
  @bindings_by_module_name[module_name]
end

#register(binding) ⇒ Object

Raises:



105
106
107
108
109
110
111
# File 'lib/milk_tea/bindings/imported_bindings.rb', line 105

def register(binding)
  raise Error, "duplicate imported binding #{binding.name}" if @bindings.key?(binding.name)
  raise Error, "duplicate imported binding module #{binding.module_name}" if @bindings_by_module_name.key?(binding.module_name)

  @bindings[binding.name] = binding
  @bindings_by_module_name[binding.module_name] = binding
end

#task_namesObject



127
128
129
# File 'lib/milk_tea/bindings/imported_bindings.rb', line 127

def task_names
  map(&:task_name)
end