Class: PrevisaoClimaTempo
- Inherits:
-
Object
- Object
- PrevisaoClimaTempo
- Defined in:
- lib/previsao-clima-tempo.rb
Instance Attribute Summary collapse
-
#codCity ⇒ Object
readonly
Returns the value of attribute codCity.
Instance Method Summary collapse
-
#cities ⇒ Object
Devolve uma coleção de hashs com as cidades compreendidas pelo clima tempo.
-
#day(date) ⇒ Object
Devolve a previsão para a data informada, no máximo a data atual + 13 dias.
-
#days(qtdDays) ⇒ Object
Devolve uma coleção de objetos, no máximo a data atual + 13 dias.
-
#initialize(option) ⇒ PrevisaoClimaTempo
constructor
A new instance of PrevisaoClimaTempo.
-
#now ⇒ Object
Devolve um objeto com as condiões do tempo do dia atual.
-
#tomorrow ⇒ Object
Devolve um objeto com as condiões do tempo do dia seguinte.
Constructor Details
#initialize(option) ⇒ PrevisaoClimaTempo
Returns a new instance of PrevisaoClimaTempo.
14 15 16 17 18 19 |
# File 'lib/previsao-clima-tempo.rb', line 14 def initialize(option) raise TypeError unless option.kind_of? Hash raise ArgumentError unless option.has_key? :codCity @codCity = option[:codCity] end |
Instance Attribute Details
#codCity ⇒ Object (readonly)
Returns the value of attribute codCity.
12 13 14 |
# File 'lib/previsao-clima-tempo.rb', line 12 def codCity @codCity end |
Instance Method Details
#cities ⇒ Object
Devolve uma coleção de hashs com as cidades compreendidas pelo clima tempo
Example:
>> PrevisaoClimaTempo.cities()
Arguments:
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/previsao-clima-tempo.rb', line 118 def cities() url = "http://servicos.cptec.inpe.br/XML/listaCidades" cities = Array.new request ||= request(url) request.xpath('//cidades/cidade').each do |cidadePath| cidade = Hash.new cidade[:id] = cidadePath.at_xpath('id').text cidade[:uf] = cidadePath.at_xpath('uf').text cidade[:nome] = cidadePath.at_xpath('nome').text cities << cidade end cities end |
#day(date) ⇒ Object
Devolve a previsão para a data informada, no máximo a data atual + 13 dias
Example:
>> PrevisaoClimaTempo.day("02-03-2012".to_date)
Arguments:
date: (Date)
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/previsao-clima-tempo.rb', line 32 def day(date) days = self.days(14) day = Object days.each do |dayEach| break day = dayEach if dayEach.dia == date.strftime("%d-%m-%Y") end day end |
#days(qtdDays) ⇒ Object
Devolve uma coleção de objetos, no máximo a data atual + 13 dias
Example:
>> PrevisaoClimaTempo.days(4)
Arguments:
qtdDays: (Integer)
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/previsao-clima-tempo.rb', line 56 def days(qtdDays) days = Array.new urlPadrao = "http://servicos.cptec.inpe.br/XML/cidade/7dias/#{@codCity}/previsao.xml" urlEstendida = "http://servicos.cptec.inpe.br/XML/cidade/#{@codCity}/estendida.xml" loadDays(urlPadrao,days,qtdDays) if(qtdDays > 4) loadDays(urlEstendida,days,qtdDays) end days end |
#now ⇒ Object
Devolve um objeto com as condiões do tempo do dia atual
Example:
>> PrevisaoClimaTempo.now()
Arguments:
102 103 104 105 106 |
# File 'lib/previsao-clima-tempo.rb', line 102 def now() self.day(Time.now) end |
#tomorrow ⇒ Object
Devolve um objeto com as condiões do tempo do dia seguinte
Example:
>> PrevisaoClimaTempo.tomorrow()
Arguments:
86 87 88 89 90 |
# File 'lib/previsao-clima-tempo.rb', line 86 def tomorrow() self.day(Time.now + 1.days) end |