Module: BaseHarvester::DataFieldsClassMethods

Defined in:
lib/datafy/BaseHarvester.rb

Instance Method Summary collapse

Instance Method Details

#attr_fields(fields) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/datafy/BaseHarvester.rb', line 56

def attr_fields fields
  logger.debug "#{self.class}::#{__method__}"
  logger.debug "fields: #{fields}"
  return if fields.nil?
  props = properties
  fields.each do |name,hash|
      prop        = hash[:property]
      props[prop] = name
      self.instance_eval do
          attr_accessor hash[:property].to_s
      end
  end
end

#details_fieldsObject

end



101
102
103
104
105
106
107
# File 'lib/datafy/BaseHarvester.rb', line 101

def details_fields
  # puts "#{self.class}::#{__method__}"
  if @details_fields.nil?
      register_fields(nil)
  end
  @details_fields
end

#logFileNameObject



52
53
54
# File 'lib/datafy/BaseHarvester.rb', line 52

def logFileName
    @logFileName ||= FileProvider.getDataFileName("#{self.class}.log")
end

#loggerObject



48
49
50
# File 'lib/datafy/BaseHarvester.rb', line 48

def logger
    @logger ||= Logger.new(logFileName,5,1024000)
end

#prop_accessor(*prop_groups) ⇒ Object



70
71
72
73
74
75
76
77
78
# File 'lib/datafy/BaseHarvester.rb', line 70

def prop_accessor *prop_groups
    logger.debug "#{self}::#{__method__}"
    logger.debug *prop_groups.inspect
    prop_groups.each do |props|
        logger.debug    props
        attr_fields     props
        register_fields props
    end
end

#propertiesObject



80
81
82
# File 'lib/datafy/BaseHarvester.rb', line 80

def properties
  @properties ||= Hash.new
end

#register_fields(fields) ⇒ Object



84
85
86
87
88
89
90
91
# File 'lib/datafy/BaseHarvester.rb', line 84

def register_fields fields
  logger.debug "#{self.class}::#{__method__} fields: #{fields}"
  return if fields.nil?
  @data_fields = {} if @data_fields.nil?
  @data_fields.merge!(fields) unless fields.nil?
  @data_fields.merge!(BASE_HARVEST_DATA_FIELDS)
  attr_fields fields
end