Class: Remi::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/remi/parser.rb

Overview

A parser is an object that converts data returned from an Remi::Extractor into a dataframe. This is a parent class meant to be inherited by child classes that define specific ways to parse data.

Direct Known Subclasses

CsvFile, DataFrame, Gsheet, None, Postgres, Salesforce

Defined Under Namespace

Classes: CsvFile, DataFrame, Gsheet, None, Postgres, Salesforce

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args, context: nil, field_symbolizer: Remi::FieldSymbolizers[:standard], fields: Remi::Fields.new({}), logger: Remi::Settings.logger, **kargs, &block) ⇒ Parser



11
12
13
14
15
16
17
# File 'lib/remi/parser.rb', line 11

def initialize(*args, context: nil, field_symbolizer: Remi::FieldSymbolizers[:standard], fields: Remi::Fields.new({}), logger: Remi::Settings.logger, **kargs, &block)
  @context = context
  @field_symbolizer = field_symbolizer

  @fields = fields
  @logger = logger
end

Instance Attribute Details

#contextObject

Returns the value of attribute context.



19
20
21
# File 'lib/remi/parser.rb', line 19

def context
  @context
end

#field_symbolizerProc



33
34
35
36
# File 'lib/remi/parser.rb', line 33

def field_symbolizer
  return context.field_symbolizer if context.respond_to? :field_symbolizer
  @field_symbolizer
end

#fieldsRemi::Fields



39
40
41
42
# File 'lib/remi/parser.rb', line 39

def fields
  return context.fields if context if context.respond_to? :fields
  @fields
end

#loggerObject

Returns the value of attribute logger.



20
21
22
# File 'lib/remi/parser.rb', line 20

def logger
  @logger
end

Instance Method Details

#parse(data) ⇒ Remi::DataFrame

Any child classes need to define a parse method that converts extracted data into a dataframe.

Raises:

  • (NoMethodError)


28
29
30
# File 'lib/remi/parser.rb', line 28

def parse(data)
  raise NoMethodError, "#{__method__} not defined for #{self.class.name}"
end