Class: Cure::Builder::Candidate

Inherits:
Object
  • Object
show all
Includes:
Helpers::ObjectHelpers, Log
Defined in:
lib/cure/builder/candidate.rb

Overview

Per row, we will have a candidate for each transformation that needs to be made

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Log

#log_debug, #log_error, #log_info, #log_trace, #log_warn

Methods included from Helpers::ObjectHelpers

#class_exists?

Constructor Details

#initialize(column, named_range) ⇒ Candidate

Returns a new instance of Candidate.

Parameters:



29
30
31
32
# File 'lib/cure/builder/candidate.rb', line 29

def initialize(column, named_range)
  @column = column
  @named_range = named_range || "_default"
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, args) ⇒ Cure::Builder::BaseBuilder

Parameters:

  • method_name (Symbol)

Returns:



48
49
50
51
52
53
# File 'lib/cure/builder/candidate.rb', line 48

def method_missing(method_name, args)
  klass_name = "Cure::Builder::#{method_name.to_s.capitalize}Builder"
  raise "#{method_name} is not valid" unless class_exists?(klass_name)

  @action = Kernel.const_get(klass_name).new(@named_range, @column, args[:options] || {})
end

Instance Attribute Details

#actionCure::Builder::BaseBuilder (readonly)

What sort of data needs to be generated.



25
26
27
# File 'lib/cure/builder/candidate.rb', line 25

def action
  @action
end

#columnString? (readonly)

Lookup column name for CSV.

Returns:



21
22
23
# File 'lib/cure/builder/candidate.rb', line 21

def column
  @column
end

#named_rangeString (readonly)

Named range that column exists in

Returns:



17
18
19
# File 'lib/cure/builder/candidate.rb', line 17

def named_range
  @named_range
end

Instance Method Details

#performvoid

This method returns an undefined value.



35
36
37
# File 'lib/cure/builder/candidate.rb', line 35

def perform
  @action.call
end

#respond_to_missing?(_method_name, _include_private = false) ⇒ TrueClass

Parameters:

  • _method_name (String, Symbol)
  • _include_private (TrueClass, FalseClass) (defaults to: false)

Returns:

  • (TrueClass)


42
43
44
# File 'lib/cure/builder/candidate.rb', line 42

def respond_to_missing?(_method_name, _include_private=false)
  true
end