class Jsonsql::Command

Public Class Methods

new(argv) click to toggle source
Calls superclass method
# File lib/jsonsql/command.rb, line 19
def initialize(argv)
  @jsons = []

  while argument = argv.shift_argument
    @jsons << argument
  end

  @verbose = argv.flag?('verbose', false)
  @console = argv.flag?('console', true)
  @filename = argv.option('save-to') || ':memory:'
  @table_name = argv.option('table-name') || 'table'
  super
end
options() click to toggle source
Calls superclass method
# File lib/jsonsql/command.rb, line 11
def self.options
  [
    ['--console', 'After all commands are run, open pry console with this data'],
    ['--save-to=[filename]', 'If set, sqlite3 db is left on disk at this path'],
    ['--table-name=[table]', 'Override the default table name (table)']
  ].concat(super)
end

Public Instance Methods

run() click to toggle source
# File lib/jsonsql/command.rb, line 40
def run
  sequel = Sequel.sqlite(@filename)
  importer = Importer.new(database: sequel, table_name: @table_name, verbose: @verbose)
  importer.import @jsons

  if @console
    importer.database.pry
  end
end
validate!() click to toggle source
Calls superclass method
# File lib/jsonsql/command.rb, line 33
def validate!
  super
  if @jsons.size == 0
    help! "At least one JSON files is required."
  end
end