Module: BehaviorTree::Dsl::Registration
- Included in:
- Builder
- Defined in:
- lib/behavior_tree/concerns/dsl/registration.rb
Overview
Register DSL commands.
Instance Method Summary collapse
-
#register(node_name, class_name, children: :none) ⇒ Object
Don’t validate class_name, because in some situations the user wants it to be evaluated in runtime.
- #register_alias(original, alias_key) ⇒ Object
Instance Method Details
#register(node_name, class_name, children: :none) ⇒ Object
Don’t validate class_name, because in some situations the user wants it to be evaluated in runtime.
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/behavior_tree/concerns/dsl/registration.rb', line 9 def register(node_name, class_name, children: :none) valid_children_values = %i[none single multiple] raise "Children value must be in: #{valid_children_values}" unless valid_children_values.include?(children) node_name = node_name.to_sym raise RegisterDSLNodeAlreadyExistsError, node_name if @node_type_mapping.key?(node_name) @node_type_mapping[node_name] = { class: class_name, children: children } end |
#register_alias(original, alias_key) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/behavior_tree/concerns/dsl/registration.rb', line 22 def register_alias(original, alias_key) unless @node_type_mapping.key?(original) raise "Cannot register alias for '#{original}', since it doesn't exist." end raise RegisterDSLNodeAlreadyExistsError, alias_key if @node_type_mapping.key?(alias_key) raise 'Alias key cannot be empty' if alias_key.to_s.empty? @node_type_mapping[original][:alias] = alias_key @node_type_mapping[alias_key] = @node_type_mapping[original].dup @node_type_mapping[alias_key][:alias] = original end |