Class: MilkTea::ImportedBindings::Registry
- Inherits:
-
Object
- Object
- MilkTea::ImportedBindings::Registry
- Includes:
- Enumerable
- Defined in:
- lib/milk_tea/bindings/imported_bindings.rb
Instance Method Summary collapse
- #check_task_names ⇒ Object
- #each(&block) ⇒ Object
- #fetch(name) ⇒ Object
- #find_by_module_name(module_name) ⇒ Object
-
#initialize(bindings = []) ⇒ Registry
constructor
A new instance of Registry.
- #register(binding) ⇒ Object
- #task_names ⇒ Object
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_names ⇒ Object
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
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_names ⇒ Object
127 128 129 |
# File 'lib/milk_tea/bindings/imported_bindings.rb', line 127 def task_names map(&:task_name) end |