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

  unless api_key
    raise Fredric::MissingAuth, "Missing Authentication\nPlease set FRED_KEY=y0urAP1k3y"
  end
end
fredric() click to toggle source
# File lib/fredric/command_line.rb, line 57
def fredric
  @fredric ||= fredric!
end
get() click to toggle source
# File lib/fredric/command_line.rb, line 26
def get
  if csv
    puts fredric.get_csv path, params
  else
    payload = fredric.get! path, params
    puts payload.response.body
  end
end
pretty() click to toggle source
# File lib/fredric/command_line.rb, line 44
def pretty
  payload = fredric.get path, params
  puts JSON.pretty_generate payload
end
save() click to toggle source
# File lib/fredric/command_line.rb, line 35
def save
  if csv
    success = fredric.save_csv file, path, params
  else
    success = fredric.save file, path, params
  end
  puts success ? "Saved #{file}" : "Saving failed"
end
see() click to toggle source
# File lib/fredric/command_line.rb, line 49
def see
  lp fredric.get path, params
end
url() click to toggle source
# File lib/fredric/command_line.rb, line 53
def url
  puts fredric.url path, params
end

Private Instance Methods

api_key() click to toggle source
# File lib/fredric/command_line.rb, line 89
def api_key
  ENV['FRED_KEY']
end
cache_dir() click to toggle source
# File lib/fredric/command_line.rb, line 93
def cache_dir
  ENV['FRED_CACHE_DIR']
end
cache_life() click to toggle source
# File lib/fredric/command_line.rb, line 97
def cache_life
  ENV['FRED_CACHE_LIFE']
end
fredric!() click to toggle source
# File lib/fredric/command_line.rb, line 63
def fredric!
  Fredric::API.new api_key, options
end
options() click to toggle source
# File lib/fredric/command_line.rb, line 79
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
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/fredric/command_line.rb, line 69
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