class Intrinio::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/intrinio/command_line.rb, line 15
def before_execute
  @path   = args['PATH']
  @params = translate_params args['PARAMS']
  @file   = args['FILE']
  @csv    = args['--csv']

  if intrinio_auth.empty?
    raise Intrinio::MissingAuth, "Missing Authentication\nPlease set INTRINIO_AUTH=username:password"
  end
end
get() click to toggle source
# File lib/intrinio/command_line.rb, line 26
def get
  if csv
    puts intrinio.get_csv path, params
  else
    payload = intrinio.get! path, params
    puts payload.response.body
  end
end
intrinio() click to toggle source
# File lib/intrinio/command_line.rb, line 69
def intrinio
  @intrinio ||= intrinio!
end
pretty() click to toggle source
# File lib/intrinio/command_line.rb, line 44
def pretty
  payload = intrinio.get path, params
  puts JSON.pretty_generate payload
end
save() click to toggle source
# File lib/intrinio/command_line.rb, line 35
def save
  if csv
    success = intrinio.save_csv file, path, params
  else
    success = intrinio.save file, path, params
  end
  puts success ? "Saved #{file}" : "Saving failed"
end
see() click to toggle source
# File lib/intrinio/command_line.rb, line 49
def see
  lp intrinio.get path, params
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/intrinio/command_line.rb, line 59
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
url() click to toggle source
# File lib/intrinio/command_line.rb, line 53
def url
  puts intrinio.url path, params
end

Private Instance Methods

cache_dir() click to toggle source
# File lib/intrinio/command_line.rb, line 101
def cache_dir
  ENV['INTRINIO_CACHE_DIR']
end
cache_life() click to toggle source
# File lib/intrinio/command_line.rb, line 105
def cache_life
  ENV['INTRINIO_CACHE_LIFE']
end
intrinio!() click to toggle source
# File lib/intrinio/command_line.rb, line 75
def intrinio!
  Intrinio::API.new options
end
intrinio_auth() click to toggle source
# File lib/intrinio/command_line.rb, line 97
def intrinio_auth
  ENV['INTRINIO_AUTH'] || ''
end
options() click to toggle source
# File lib/intrinio/command_line.rb, line 79
def options
  result = { username: username, password: password }
  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
password() click to toggle source
# File lib/intrinio/command_line.rb, line 93
def password
  @password ||= intrinio_auth.split(':').last
end
username() click to toggle source
# File lib/intrinio/command_line.rb, line 89
def username
  @username ||= intrinio_auth.split(':').first
end