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