class Kamome::CsvHandler

Public Class Methods

new(operation) click to toggle source
# File lib/kamome/csv_handler.rb, line 9
def initialize(operation)
  @operation = operation
end

Public Instance Methods

call(csv_path) { |obj, $INPUT_LINE_NUMBER| ... } click to toggle source
# File lib/kamome/csv_handler.rb, line 13
def call(csv_path)
  prev = nil
  ::CSV.foreach(csv_path) do |row|
    obj = transform(row)
    next if skip?(prev, obj)

    yield(obj, $INPUT_LINE_NUMBER)
    prev = obj
  end
end

Private Instance Methods

general_transformer() click to toggle source
# File lib/kamome/csv_handler.rb, line 42
def general_transformer
  ::Kamome::Transformations::GeneralCsv.new
end
jigyosho_transformer() click to toggle source
# File lib/kamome/csv_handler.rb, line 38
def jigyosho_transformer
  ::Kamome::Transformations::JigyoshoCsv.new
end
skip?(previous, current) click to toggle source
# File lib/kamome/csv_handler.rb, line 46
def skip?(previous, current)
  return false unless previous.respond_to?(:ambiguous_town)
  return false unless previous.ambiguous_town

  previous.zipcode == current.zipcode
end
transform(row) click to toggle source
# File lib/kamome/csv_handler.rb, line 26
def transform(row)
  transformer.public_send(transformed_method, row)
end
transformed_method() click to toggle source
# File lib/kamome/csv_handler.rb, line 30
def transformed_method
  @operation.type_detail? ? :generate_detail_model : :generate_model
end
transformer() click to toggle source
# File lib/kamome/csv_handler.rb, line 34
def transformer
  @transformer ||= @operation.genre_jigyosho? ? jigyosho_transformer : general_transformer
end