Class: MilkTea::RawBindings::Registry

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

Instance Method Summary collapse

Constructor Details

#initialize(bindings = []) ⇒ Registry

Returns a new instance of Registry.



224
225
226
227
228
# File 'lib/milk_tea/bindings/raw_bindings.rb', line 224

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

Instance Method Details

#check_task_namesObject



256
257
258
# File 'lib/milk_tea/bindings/raw_bindings.rb', line 256

def check_task_names
  map(&:check_task_name)
end

#each(&block) ⇒ Object



244
245
246
# File 'lib/milk_tea/bindings/raw_bindings.rb', line 244

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

#fetch(name) ⇒ Object



238
239
240
241
242
# File 'lib/milk_tea/bindings/raw_bindings.rb', line 238

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

#find_by_module_name(module_name) ⇒ Object



248
249
250
# File 'lib/milk_tea/bindings/raw_bindings.rb', line 248

def find_by_module_name(module_name)
  @bindings_by_module_name[module_name]
end

#register(binding) ⇒ Object

Raises:



230
231
232
233
234
235
236
# File 'lib/milk_tea/bindings/raw_bindings.rb', line 230

def register(binding)
  raise Error, "duplicate raw binding #{binding.name}" if @bindings.key?(binding.name)
  raise Error, "duplicate raw 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



252
253
254
# File 'lib/milk_tea/bindings/raw_bindings.rb', line 252

def task_names
  map(&:task_name)
end