cptec_inpe 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: 59b3a9bb1b3ac88d10fb8bb6a36df8b7b5c9e84e
4
- data.tar.gz: 7cc47ff26f7b926273a17c7d2684c000ed24f885
3
+ metadata.gz: 29ac7b1643adb286b96e0e93734bbb08889e071e
4
+ data.tar.gz: a1527c9a4a1ce9c2e7034443d927b2c655317ebc
5
5
  SHA512:
6
- metadata.gz: b0c190e8eddd89bc99e64224f825fef580b5d14dca87f04c5870982cf07a90f4e3c2715dac5bc6bd78271c88a59284a2a0366546fcbf57c7b990987d8126667e
7
- data.tar.gz: 2bf65c3e76d98affac6ec384f7e9051efb877f809c006c58d09efcd7bb3a6ed88b58627601aa9e80f1e9b5b6238da4a982690468d158dd4ec1cb1fcefdd8544e
6
+ metadata.gz: 312a38825d81e5340f7852c61f1402a1fc35519468976fec741d87ab5dfc90fd917a2a1f54bd7861ad46a32ab78a553c49625d0d6cd5f4a025492f3b06383fe9
7
+ data.tar.gz: 2e5d5f75bb8b31598592771509b0480ab6e64d75002409675411dcf4d57b501798486b4faacb697224662a402ea92446c2e8bfc25f1e187986c802be915a55fe
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.travis.yml CHANGED
@@ -1,4 +1,16 @@
1
1
  language: ruby
2
+ cache: bundler
3
+
2
4
  rvm:
3
5
  - 2.2.2
6
+
7
+ script: 'bundle exec rake'
8
+
4
9
  before_install: gem install bundler -v 1.10.5
10
+
11
+ notifications:
12
+ email:
13
+ recipients:
14
+ - tadeu.valentt@gemail.com
15
+ on_failure: change
16
+ on_success: never
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # CptecInpe
2
2
 
3
- Api Client gem for the CPTEC/INPE weather forecast.
3
+ [![Build Status](https://travis-ci.org/t4deu/cptec_inpe.svg?branch=master)](https://travis-ci.org/t4deu/cptec_inpe)
4
+ [![Coverage Status](https://coveralls.io/repos/t4deu/cptec_inpe/badge.svg?branch=master&service=github)](https://coveralls.io/github/t4deu/cptec_inpe?branch=master)
5
+ [![security](https://hakiri.io/github/t4deu/cptec_inpe/master.svg)](https://hakiri.io/github/t4deu/cptec_inpe/master)
4
6
 
5
- TODO: Delete this and the text above, and describe your gem
7
+ Api Client gem for the CPTEC/INPE weather forecast.
6
8
 
7
9
  ## Installation
8
10
 
@@ -22,8 +24,14 @@ Or install it yourself as:
22
24
 
23
25
  ## Usage
24
26
 
25
- TODO: Write usage instructions here
27
+ ```ruby
28
+ client = CptecInpe.new "Rio de janeiro"
26
29
 
30
+ client.location = "São Paulo" # Change current location
31
+ client.forecast # List of next days weather forecast
32
+ client.waves_today # Today waves forecast
33
+ client.waves_next_days # List of next days waves forecast
34
+ ```
27
35
  ## Development
28
36
 
29
37
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -32,8 +40,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
32
40
 
33
41
  ## Contributing
34
42
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/cptec_inpe.
36
-
43
+ Bug reports and pull requests are welcome on GitHub at https://github.com/t4deu/cptec_inpe.
37
44
 
38
45
  ## License
39
46
 
data/Rakefile CHANGED
@@ -1,10 +1,10 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
3
 
4
- Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
4
+ Rake::TestTask.new(:spec) do |t|
5
+ t.libs << "spec"
6
6
  t.libs << "lib"
7
- t.test_files = FileList['test/**/*_test.rb']
7
+ t.test_files = FileList['spec/**/*_spec.rb']
8
8
  end
9
9
 
10
- task :default => :test
10
+ task :default => :spec
data/cptec_inpe.gemspec CHANGED
@@ -22,5 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "bundler", "~> 1.10"
23
23
  spec.add_development_dependency "rake", "~> 10.0"
24
24
  spec.add_development_dependency "minitest"
25
- spec.add_development_dependency "httparty", "~> 0.13.5"
25
+ spec.add_development_dependency "minitest-reporters"
26
+ spec.add_development_dependency "coveralls"
27
+
28
+ spec.add_runtime_dependency "httparty", "~> 0.13.5"
26
29
  end
@@ -0,0 +1,6 @@
1
+ class Utils
2
+ def self.normalize(str)
3
+ str.tr("ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž",
4
+ "AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz").downcase
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  class CptecInpe
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/cptec_inpe.rb CHANGED
@@ -1,30 +1,52 @@
1
1
  require "cptec_inpe/version"
2
- require 'httparty'
2
+ require "cptec_inpe/utils"
3
+ require "httparty"
3
4
 
4
5
  class CptecInpe
5
6
  include HTTParty
6
7
 
7
- attr_accessor :location
8
-
9
8
  base_uri "servicos.cptec.inpe.br"
10
9
 
11
- def initialize(location)
12
- @location = location
10
+ attr_reader :location_code
11
+
12
+ def initialize(str)
13
+ self.location = str unless str.nil?
14
+ end
15
+
16
+ def location=(location)
17
+ city = find_location(location)
18
+
19
+ unless city.nil?
20
+ @location_code = city['id']
21
+ end
22
+ end
23
+
24
+ def find_location(location)
25
+ options = {
26
+ query: {
27
+ city: Utils.normalize(location)
28
+ }
29
+ }
30
+
31
+ path = "#{base_path}/listaCidades"
32
+ cities = self.class.get(path, options)['cidades']
33
+
34
+ return if cities.nil?
35
+ return cities.first if cities['cidate'].is_a?(Array)
36
+
37
+ cities["cidade"]
13
38
  end
14
39
 
15
40
  def waves_today
16
- path = "#{base_path}/cidade/#{@location}/dia/0/ondas.xml"
17
- self.class.get(path)
41
+ get "#{base_path}/cidade/%s/dia/0/ondas.xml"
18
42
  end
19
43
 
20
44
  def waves_next_days
21
- path = "#{base_path}/cidade/#{@location}/todos/tempos/ondas.xml"
22
- self.class.get(path)
45
+ get "#{base_path}/cidade/%s/todos/tempos/ondas.xml"
23
46
  end
24
47
 
25
48
  def forecast
26
- path = "#{base_path}/cidade/#{@location}/previsao.xml"
27
- self.class.get(path)
49
+ get "#{base_path}/cidade/%s/previsao.xml"
28
50
  end
29
51
 
30
52
  private
@@ -32,4 +54,8 @@ class CptecInpe
32
54
  def base_path
33
55
  "/XML"
34
56
  end
57
+
58
+ def get(path_format)
59
+ self.class.get(path_format % @location_code) unless @location_code.nil?
60
+ end
35
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cptec_inpe
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
  - Tadeu Valentt
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-29 00:00:00.000000000 Z
11
+ date: 2015-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest-reporters
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
+ - !ruby/object:Gem::Dependency
70
+ name: coveralls
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: httparty
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -59,7 +87,7 @@ dependencies:
59
87
  - - "~>"
60
88
  - !ruby/object:Gem::Version
61
89
  version: 0.13.5
62
- type: :development
90
+ type: :runtime
63
91
  prerelease: false
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
@@ -73,6 +101,7 @@ executables: []
73
101
  extensions: []
74
102
  extra_rdoc_files: []
75
103
  files:
104
+ - ".coveralls.yml"
76
105
  - ".gitignore"
77
106
  - ".travis.yml"
78
107
  - Gemfile
@@ -83,6 +112,7 @@ files:
83
112
  - bin/setup
84
113
  - cptec_inpe.gemspec
85
114
  - lib/cptec_inpe.rb
115
+ - lib/cptec_inpe/utils.rb
86
116
  - lib/cptec_inpe/version.rb
87
117
  homepage: https://github.com/t4deu/cptec_inpe
88
118
  licenses: