class SunnyDay::CLI

Public Instance Methods

d_forecast(days, city = nil) click to toggle source
# File lib/sunnyday/cli/cli.rb, line 29
def d_forecast(days, city = nil)
  return unless validate(city)
  opts = w_options(city)
  opts[:cnt] = days
  data = client.daily_forecast(opts)
  SunnyDay::Output.new.daily_forecast(data)
end
find(city = nil) click to toggle source
# File lib/sunnyday/cli/cli.rb, line 39
def find(city = nil)
  return unless validate(city)
  opts = w_options(city)
  opts[:cnt] = (options[:limit] - 1) if options[:limit] && options[:limit] > 0
  opts.delete(:limit) if opts.has_key?(:limit)
  data = client.find(opts)
  SunnyDay::Output.new.find(data)
end
forecast(city = nil) click to toggle source
# File lib/sunnyday/cli/cli.rb, line 22
def forecast(city = nil)
  return unless validate(city)
  data = client.forecast(w_options(city))
  SunnyDay::Output.new.forecast(data)
end
weather(city = nil) click to toggle source
# File lib/sunnyday/cli/cli.rb, line 15
def weather(city = nil)
  return unless validate(city)
  data = client.current_weather(w_options(city))
  SunnyDay::Output.new.weather(data)
end

Private Instance Methods

client(config = {}) click to toggle source
# File lib/sunnyday/cli/cli.rb, line 62
def client(config = {})
  SunnyDay.client(config)
end
validate(city) click to toggle source
# File lib/sunnyday/cli/cli.rb, line 50
def validate(city)
  valid = !city.nil? || (!options[:lat].nil? && !options[:long].nil?) || !options[:id].nil?
  puts 'Sorry, your input doesn’t appear to be valid. Use "sunnyday help" to see available options.' unless valid
  valid
end
w_options(city) click to toggle source
# File lib/sunnyday/cli/cli.rb, line 56
def w_options(city)
  opts = options.dup
  opts[:q] = city unless city.nil?
  opts
end