Class: Comma::DataExtractor

Inherits:
Extractor show all
Defined in:
lib/comma/data_extractor.rb

Defined Under Namespace

Classes: ExtractValueFromAssociationOfInstance, ExtractValueFromInstance

Instance Method Summary collapse

Methods inherited from Extractor

#__use__, #id, #initialize, #results

Constructor Details

This class inherits a constructor from Comma::Extractor

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(sym, *args, &block) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/comma/data_extractor.rb', line 52

def method_missing(sym, *args, &block)
  @results << ExtractValueFromInstance.new(@instance).extract(sym, &block) if
    args.blank?

  args.each do |arg|
    case arg
    when Hash
      arg.each do |k, _v|
        @results << ExtractValueFromAssociationOfInstance.new(@instance, sym).extract(k, &block)
      end
    when Symbol
      @results << ExtractValueFromAssociationOfInstance.new(@instance, sym).extract(arg, &block)
    when String
      @results << ExtractValueFromInstance.new(@instance).extract(sym, &block)
    else
      raise "Unknown data symbol #{arg.inspect}"
    end
  end
end

Instance Method Details

#__static_column__(_header = nil, &block) ⇒ Object



72
73
74
# File 'lib/comma/data_extractor.rb', line 72

def __static_column__(_header = nil, &block)
  @results << (block ? yield(@instance) : nil)
end