class SqlDatasource

:nodoc

Public Class Methods

new(sql:, ar_connection:) click to toggle source
# File lib/rotating_es_loader/sql_datasource.rb, line 9
def initialize(sql:, ar_connection:)
  @sql = sql
  @ar_connection = ar_connection
  raise unless @sql
end

Public Instance Methods

data() click to toggle source
# File lib/rotating_es_loader/sql_datasource.rb, line 19
def data
  queries = @sql.is_a?(String) ? [@sql] : @sql

  queries.flat_map do |query|
    records_array = @ar_connection.execute(@sql)
    fields = records_array.fields.map(&:to_sym)

    records_array.map do |row_array|
      normalize(fields.zip(row_array).to_h)
    end
  end
end
each(&block) click to toggle source
# File lib/rotating_es_loader/sql_datasource.rb, line 32
def each(&block)
  return to_enum(:each) unless block

  data.each(&block)

  self
end
normalize(o) click to toggle source
# File lib/rotating_es_loader/sql_datasource.rb, line 15
def normalize(o)
  o
end