weer 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 25092b01a78355aed6966fa35c67d29c01649efa
4
- data.tar.gz: 1677fd4f5c120df9869dd4a1cc0918c1eec7d194
3
+ metadata.gz: 39ba03cfb5acbdb5f0c3d906a81f2f2c30c61de4
4
+ data.tar.gz: 1518c689b6ec15a967d07608dd63398ee0c382a6
5
5
  SHA512:
6
- metadata.gz: 40dbcc727b28077f8a4e62de549603ac59e083dbbcf1c113493195d9a6b104a2e97590f011a5f8aee09e8b8e416a5ccb76301192baf3064b7bfb5b58ececa98c
7
- data.tar.gz: 2dc64cf0dd3c48f22626736ded173f951189ff7840ea4890bcd93c14b4adf700433ea83f77ea311053ad27a2797de8f3cb3fefad31dab411deb8b4cfd4167b08
6
+ metadata.gz: a2f854a55055c5c1755ecd8461d3f1212e3ad4b26a47415deb7bf5d607d039795767a2097c3e40f1c3474881d3e97a5259bcc1c26905fdc5c721ab6c66d95ce1
7
+ data.tar.gz: d171493dc11a20253bb2de2698ae6654d37083df4dae0e685ec46cf8c6ce1089cb7636924cef06f96df123172499498ef26c76cb1a136c3eb9eacb493b72168e
@@ -1,6 +1,6 @@
1
1
  require 'weer/version'
2
2
  require 'weer/cli'
3
- require 'weer/error'
3
+ require 'weer/invalid_city'
4
4
 
5
5
  module Weer
6
6
  # Your code goes here
@@ -21,23 +21,23 @@ module Weer
21
21
  wetter = Wetter.new options[:city]
22
22
  response = wetter.connect
23
23
 
24
- raise FakeURLInvalid if response['query']['results'].nil?
24
+ raise InvalidCity, "Oops, hey man! looks like your city is wrong" if response['query']['results'].nil?
25
25
  forecasts = wetter.forecast response
26
26
 
27
- puts Rainbow("============= The forecast(#{options[:temperature]}) of #{options[:city].upcase!} in the next coming days =============").green
27
+ puts Rainbow(" The forecast(#{options[:temperature]}) of #{options[:city].upcase!} in the next coming days ".center(80, '=')).green
28
28
  puts Rainbow(wetter.parse_forecast forecasts, temperature).orange
29
29
 
30
30
  if options[:all]
31
31
  wind = wetter.wind response
32
32
 
33
33
  puts "\n"
34
- puts Rainbow("========================= The wind power of #{Date.today.to_s} =========================").green
34
+ puts Rainbow(" The wind power of #{Date.today.to_s} ".center(80, '=')).green
35
35
  puts Rainbow(wetter.parse_wind wind).orange
36
36
 
37
37
  atmosphere = wetter.atmosphere response
38
38
 
39
39
  puts "\n"
40
- puts Rainbow("========================= The atmosphere of #{Date.today.to_s} =========================").green
40
+ puts Rainbow(" The atmosphere of #{Date.today.to_s} ".center(80, '=')).green
41
41
  puts Rainbow(wetter.parse_atmosphere atmosphere).orange
42
42
  end
43
43
  end
@@ -0,0 +1 @@
1
+ class InvalidCity < StandardError; end
@@ -3,11 +3,13 @@ require 'terminal-table'
3
3
 
4
4
  class Wetter
5
5
  # Set attributes reader
6
- attr_reader :city
6
+ attr_reader :options
7
+
8
+ # include HTTParty
9
+ include HTTParty
7
10
 
8
11
  # Instance variable
9
- BASE_URL = 'https://query.yahooapis.com/v1/public/yql?q='
10
- FORMAT_RESPONSE = '&format=json&env=store://datatables.org/alltableswithkeys'
12
+ base_uri 'query.yahooapis.com'
11
13
 
12
14
  # Create constructor Wetter object
13
15
  #
@@ -19,7 +21,7 @@ class Wetter
19
21
  #
20
22
  # Returns nothing
21
23
  def initialize(city)
22
- @city = city.downcase
24
+ @options = { query: { q: yql_city(city), format: 'json', env: 'store://datatables.org/alltableswithkeys' } }
23
25
  end
24
26
 
25
27
  # Make an http request to Yahoo Weather API
@@ -31,9 +33,8 @@ class Wetter
31
33
  #
32
34
  # Returns the Hash response
33
35
  def connect
34
- url = URI.parse(URI.encode((BASE_URL + yql_city + FORMAT_RESPONSE).strip))
35
- request = HTTParty.get(url)
36
- request.code == 200 ? JSON.parse(request.body) : nil
36
+ response = self.class.get('/v1/public/yql', options)
37
+ response.code == 200 ? JSON.parse(response.body) : nil
37
38
  end
38
39
 
39
40
  # Parse the forecasts to table
@@ -166,7 +167,7 @@ class Wetter
166
167
  # # => "select * from weather.forecast where woeid in (select woeid from geo.places(1) where text=\"Da Nang\")"
167
168
  #
168
169
  # Returns an query
169
- def yql_city
170
+ def yql_city(city)
170
171
  "select * from weather.forecast where woeid in (select woeid from geo.places(1) where text=\"#{city}\")"
171
172
  end
172
173
 
@@ -1,3 +1,3 @@
1
1
  module Weer
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vinh Nguyen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-06 00:00:00.000000000 Z
11
+ date: 2016-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- - !ruby/object:Gem::Dependency
56
- name: byebug
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: webmock
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -164,7 +150,7 @@ files:
164
150
  - lib/weer.rb
165
151
  - lib/weer/cli.rb
166
152
  - lib/weer/cli/weather.rb
167
- - lib/weer/error.rb
153
+ - lib/weer/invalid_city.rb
168
154
  - lib/weer/lib/wetter.rb
169
155
  - lib/weer/version.rb
170
156
  homepage: http://todayifoundout.net
@@ -1 +0,0 @@
1
- class FakeURLInvalid < StandardError; end