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