Method: Remi::Job::JobClassMethods#define_source

Defined in:
lib/remi/job.rb

#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, **options)
  @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(options)
    instance_variable_set("@#{name}", source)
  end
end