class Quata::CommandLine

Handles the command line interface

Attributes

csv[R]
file[R]
params[R]
path[R]

Public Instance Methods

before_execute() click to toggle source
# File lib/quata/command_line.rb, line 15
def before_execute
  @path   = args['PATH']
  @params = translate_params args['PARAMS']
  @file   = args['FILE']
  @csv    = args['--csv']
end
get() click to toggle source
# File lib/quata/command_line.rb, line 22
def get
  if csv
    puts quandl.get_csv path, params
  else
    payload = quandl.get! path, params
    puts payload.response.body
  end
end
pretty() click to toggle source
# File lib/quata/command_line.rb, line 40
def pretty
  payload = quandl.get path, params
  puts JSON.pretty_generate payload
end
quandl() click to toggle source
# File lib/quata/command_line.rb, line 53
def quandl
  @quandl ||= quandl!
end
save() click to toggle source
# File lib/quata/command_line.rb, line 31
def save
  if csv
    success = quandl.save_csv file, path, params
  else
    success = quandl.save file, path, params
  end
  puts success ? "Saved #{file}" : "Saving failed"
end
see() click to toggle source
# File lib/quata/command_line.rb, line 45
def see
  lp quandl.get path, params
end
url() click to toggle source
# File lib/quata/command_line.rb, line 49
def url
  puts quandl.url path, params
end

Private Instance Methods

api_key() click to toggle source
# File lib/quata/command_line.rb, line 85
def api_key
  ENV['QUANDL_KEY']
end
cache_dir() click to toggle source
# File lib/quata/command_line.rb, line 89
def cache_dir
  ENV['QUANDL_CACHE_DIR']
end
cache_life() click to toggle source
# File lib/quata/command_line.rb, line 93
def cache_life
  ENV['QUANDL_CACHE_LIFE']
end
options() click to toggle source
# File lib/quata/command_line.rb, line 75
def options
  result = {}
  return result unless cache_dir || cache_life

  result[:use_cache] = true
  result[:cache_dir] = cache_dir if cache_dir
  result[:cache_life] = cache_life.to_i if cache_life
  result
end
quandl!() click to toggle source
# File lib/quata/command_line.rb, line 59
def quandl!
  API.new api_key, options
end
translate_params(pairs) click to toggle source

Convert a params array like [key:value, key:value] to a hash like {key: value, key: value}

# File lib/quata/command_line.rb, line 65
def translate_params(pairs)
  result = {}
  return result if pairs.empty?
  pairs.each do |pair|
    key, value = pair.split ':'
    result[key.to_sym] = value
  end
  result
end