class Kamome::Cli

Constants

REJECT_KEYS

Public Instance Methods

generate_csv(filepath) click to toggle source
# File lib/kamome/cli.rb, line 11
def generate_csv(filepath)
  path = ::Pathname.new(filepath)
  do_generate_csv(operation_all, path, options[:header])
  $stdout.puts "Generated csv: #{path}"
rescue StandardError => e
  path.delete if path&.exist?
  raise e
end
generate_diff_csv(filepath) click to toggle source
# File lib/kamome/cli.rb, line 23
def generate_diff_csv(filepath)
  path = ::Pathname.new(filepath)
  do_generate_csv(operation_diff(options[:date]), path, options[:header])
  $stdout.puts "Generated diff csv: #{path}"
rescue StandardError => e
  path.delete if path&.exist?
  raise e
end
generate_diff_json(filepath) click to toggle source
# File lib/kamome/cli.rb, line 41
def generate_diff_json(filepath)
  path = ::Pathname.new(filepath)
  do_generate_json(operation_diff(options[:date]), path)
  $stdout.puts "Generated diff json: #{path}"
rescue StandardError => e
  path.delete if path&.exist?
  raise e
end
generate_json(filepath) click to toggle source
# File lib/kamome/cli.rb, line 33
def generate_json(filepath)
  path = ::Pathname.new(filepath)
  do_generate_json(operation_all, path)
  $stdout.puts "Generated json: #{path}"
end

Private Instance Methods

build_pretty_attributes(model) click to toggle source
# File lib/kamome/cli.rb, line 97
def build_pretty_attributes(model)
  model.attributes.reject { |key, _| REJECT_KEYS.include?(key) }
end
csv_headers() click to toggle source
# File lib/kamome/cli.rb, line 93
def csv_headers
  Kamome::Models::Address.new.attributes.keys.reject { |o| REJECT_KEYS.include?(o) }
end
do_generate_csv(operations, path, header) click to toggle source
# File lib/kamome/cli.rb, line 68
def do_generate_csv(operations, path, header)
  require 'csv'
  ::CSV.open(path, 'w') do |csv|
    csv << csv_headers if header
    operations.each do |operation|
      Kamome.loader.call(operation: operation) do |model|
        csv << build_pretty_attributes(model).values
      end
    end
  end
end
do_generate_json(operations, path) click to toggle source
# File lib/kamome/cli.rb, line 80
def do_generate_json(operations, path)
  require 'json'
  json = {}
  operations.each do |operation|
    Kamome.loader.call(operation: operation) do |model|
      json[model.zipcode] ||= []
      json[model.zipcode] << build_pretty_attributes(model)
    end
  end
  ::File.write(path, ::JSON.pretty_generate(json))
end
operation_all() click to toggle source
# File lib/kamome/cli.rb, line 52
def operation_all
  [
    ::Kamome::Operation.general_all,
    ::Kamome::Operation.jigyosho_all
  ]
end
operation_diff(date) click to toggle source
# File lib/kamome/cli.rb, line 59
def operation_diff(date)
  require 'date'
  date ||= Date.today << 1
  [
    ::Kamome::Operation.general_diff(date: date),
    ::Kamome::Operation.jigyosho_diff(date: date)
  ]
end