weer 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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