Module: Runbook::Extensions::SharedVariables::RunHooks
- Defined in:
- lib/runbook/extensions/shared_variables.rb
Class Method Summary collapse
- ._copy_ivars_to_repo(object, metadata) ⇒ Object
- ._eqls_method(key) ⇒ Object
- ._target(object) ⇒ Object
- .register_shared_variables_hooks(base) ⇒ Object
Class Method Details
._copy_ivars_to_repo(object, metadata) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/runbook/extensions/shared_variables.rb', line 27 def self._copy_ivars_to_repo(object, ) target = _target(object) ivars = target.instance_variables - Runbook::DSL.dsl_ivars ivars.each do |ivar| repo_key = ivar.to_s[1..-1].to_sym val = target.instance_variable_get(ivar) [:repo][repo_key] = val end end |
._eqls_method(key) ⇒ Object
42 43 44 |
# File 'lib/runbook/extensions/shared_variables.rb', line 42 def self._eqls_method(key) "#{key}=".to_sym end |
._target(object) ⇒ Object
38 39 40 |
# File 'lib/runbook/extensions/shared_variables.rb', line 38 def self._target(object) object.parent.dsl end |
.register_shared_variables_hooks(base) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/runbook/extensions/shared_variables.rb', line 4 def self.register_shared_variables_hooks(base) base.register_hook( :set_ivars_hook, :before, Runbook::Statement, ) do |object, | target = SharedVariables::RunHooks._target(object) [:repo].each do |key, value| target.singleton_class.class_eval { attr_accessor key } target.send(SharedVariables::RunHooks._eqls_method(key), value) end end base.register_hook( :copy_ivars_to_repo_hook, :after, Runbook::Statement, before: :save_repo_hook ) do |object, | SharedVariables::RunHooks._copy_ivars_to_repo(object, ) end end |