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