class BqGuess::Cli

Attributes

options[R]

Public Class Methods

new(args = []) click to toggle source
# File lib/bq_guess/cli.rb, line 11
def initialize(args = [])
  @options = parse_option(args)
end

Public Instance Methods

execute() click to toggle source
# File lib/bq_guess/cli.rb, line 15
def execute
  puts JSON.pretty_generate(guesser.guess.as_schema)
end

Private Instance Methods

format() click to toggle source
# File lib/bq_guess/cli.rb, line 21
def format
  JSON.parse(input_content.lines.first)
  :json_lines
rescue
  :ltsv
end
guesser() click to toggle source
# File lib/bq_guess/cli.rb, line 28
def guesser
  case format
  when :json_lines
    Guessers::JsonLines.new(input_content)
  when :ltsv
    Guessers::Ltsv.new(input_content)
  end
end
input_content() click to toggle source
# File lib/bq_guess/cli.rb, line 37
def input_content
  @input_content ||= File.read(File.expand_path(options[:input_path]))
end
parse_option(args) click to toggle source

TODO: ignore error line TODO: default nullable instead of required

# File lib/bq_guess/cli.rb, line 43
def parse_option(args)
  if args.include?("-h") || args.include?("--help")
    puts "usage: bq_guess input_file"
    exit
  elsif args.include?("-v") || args.include?("--version")
    require "bq_guess/version"
    puts BqGuess::VERSION
    exit
  else
    { input_path: args.first }
  end
end