Module: Remi::Job::JobClassMethods
- Defined in:
- lib/remi/job.rb
Instance Attribute Summary collapse
-
#params ⇒ Object
Returns the value of attribute params.
-
#sources ⇒ Object
Returns the value of attribute sources.
-
#targets ⇒ Object
Returns the value of attribute targets.
-
#transforms ⇒ Object
Returns the value of attribute transforms.
Class Method Summary collapse
Instance Method Summary collapse
- #define_param(key, value) ⇒ Object
- #define_source(name, type_class, **options) ⇒ Object
- #define_target(name, type_class, **options) ⇒ Object
- #define_transform(name, sources: [], targets: [], &block) ⇒ Object
- #included(receiver) ⇒ Object
- #work_dir ⇒ Object
Instance Attribute Details
#params ⇒ Object
Returns the value of attribute params.
4 5 6 |
# File 'lib/remi/job.rb', line 4 def params @params end |
#sources ⇒ Object
Returns the value of attribute sources.
5 6 7 |
# File 'lib/remi/job.rb', line 5 def sources @sources end |
#targets ⇒ Object
Returns the value of attribute targets.
6 7 8 |
# File 'lib/remi/job.rb', line 6 def targets @targets end |
#transforms ⇒ Object
Returns the value of attribute transforms.
7 8 9 |
# File 'lib/remi/job.rb', line 7 def transforms @transforms end |
Class Method Details
.extended(receiver) ⇒ Object
71 72 |
# File 'lib/remi/job.rb', line 71 def self.extended(receiver) end |
Instance Method Details
#define_param(key, value) ⇒ Object
9 10 11 12 |
# File 'lib/remi/job.rb', line 9 def define_param(key, value) @params ||= Hash.new { |h, key| raise "Parameter #{key} is not defined" } @params[key] = value end |
#define_source(name, type_class, **options) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/remi/job.rb', line 14 def define_source(name, type_class, **) @sources ||= [] @sources << name unless @sources.include? name define_method(name) do iv_name = instance_variable_get("@#{name}") return iv_name if iv_name source = type_class.new() instance_variable_set("@#{name}", source) end end |
#define_target(name, type_class, **options) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/remi/job.rb', line 27 def define_target(name, type_class, **) @targets ||= [] @targets << name unless @targets.include? name define_method(name) do iv_name = instance_variable_get("@#{name}") return iv_name if iv_name target = type_class.new() instance_variable_set("@#{name}", target) end end |
#define_transform(name, sources: [], targets: [], &block) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/remi/job.rb', line 40 def define_transform(name, sources: [], targets: [], &block) @transforms ||= {} @transforms[name] = { sources: Array(sources), targets: Array(targets) } define_method(name) do instance_eval { @logger.info "Running transformation #{__method__}" } instance_eval(&block) end end |
#included(receiver) ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/remi/job.rb', line 74 def included(receiver) receiver.extend(JobClassMethods) receiver.params = self.params.merge(receiver.params) receiver.sources = self.sources + receiver.sources receiver.targets = self.targets + receiver.targets receiver.transforms = self.transforms.merge(receiver.transforms) end |