Module: Remi::Job::JobClassMethods
- Defined in:
- lib/remi/job.rb
Instance Attribute Summary collapse
-
#lookups ⇒ Object
Returns the value of attribute lookups.
-
#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_lookup(name, type_class, options) ⇒ Object
- #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
#lookups ⇒ Object
Returns the value of attribute lookups.
5 6 7 |
# File 'lib/remi/job.rb', line 5 def lookups @lookups end |
#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.
6 7 8 |
# File 'lib/remi/job.rb', line 6 def sources @sources end |
#targets ⇒ Object
Returns the value of attribute targets.
7 8 9 |
# File 'lib/remi/job.rb', line 7 def targets @targets end |
#transforms ⇒ Object
Returns the value of attribute transforms.
8 9 10 |
# File 'lib/remi/job.rb', line 8 def transforms @transforms end |
Class Method Details
.extended(receiver) ⇒ Object
93 94 |
# File 'lib/remi/job.rb', line 93 def self.extended(receiver) end |
Instance Method Details
#define_lookup(name, type_class, options) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/remi/job.rb', line 15 def define_lookup(name, type_class, ) @lookups ||= [] @lookups << name define_method(name) do iv_name = instance_variable_get("@#{name}") return iv_name if iv_name if type_class == Hash lookup = else lookup = type_class.new() end instance_variable_set("@#{name}", lookup) end end |
#define_param(key, value) ⇒ Object
10 11 12 13 |
# File 'lib/remi/job.rb', line 10 def define_param(key, value) @params ||= {} @params[key] = value end |
#define_source(name, type_class, **options) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/remi/job.rb', line 32 def define_source(name, type_class, **) @sources ||= [] @sources << 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
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/remi/job.rb', line 45 def define_target(name, type_class, **) @targets ||= [] @targets << 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
58 59 60 61 62 63 64 65 66 |
# File 'lib/remi/job.rb', line 58 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
96 97 98 99 100 101 102 103 |
# File 'lib/remi/job.rb', line 96 def included(receiver) receiver.extend(JobClassMethods) receiver.params = self.params.merge(receiver.params) receiver.lookups = self.lookups + receiver.lookups receiver.sources = self.sources + receiver.sources receiver.targets = self.targets + receiver.targets receiver.transforms = self.transforms.merge(receiver.transforms) end |