weather_hacker 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +1 -0
- data/README.md +39 -21
- data/lib/weather_hacker/area_data.rb +142 -142
- data/lib/weather_hacker/client.rb +34 -24
- data/lib/weather_hacker/version.rb +1 -1
- metadata +49 -39
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1fda08dc8d56cf2c30b93319960bee84a46913e3
|
4
|
+
data.tar.gz: a1540b074c12bdd2b81acc8495d4388a28b6b14f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a1775d1e8922cb4883ab2b96747f009ffdf3025b74da890d362a0897854290fe825b942875f3c8e336f0cec88e20698c6a6cfb30cc9080ab25774891a1a34d59
|
7
|
+
data.tar.gz: 0a631c08a76ddcc95c43aebbae9567f672bcffac22bfe703cb133a1b53cda6982c046c48733574608943f8f718f6a62b227898c109cb3e14ffccb98fdeb565a1
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -6,19 +6,45 @@ Library for [Livedoor Weather Web Service](http://weather.livedoor.com/weather_h
|
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
And then execute:
|
14
|
-
|
15
|
-
$ bundle
|
9
|
+
```
|
10
|
+
$ gem install weather_hacker
|
11
|
+
```
|
16
12
|
|
17
|
-
|
13
|
+
## Usage
|
14
|
+
### Command
|
15
|
+
WeatherHacker provides ```weather``` command to watch the weather forecast:
|
18
16
|
|
19
|
-
|
17
|
+
```
|
18
|
+
$ weather 690-0261
|
19
|
+
2012-04-15
|
20
|
+
{
|
21
|
+
"weather" => "晴れ",
|
22
|
+
"temperature" => {
|
23
|
+
"max" => "18",
|
24
|
+
"min" => "5"
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
2012-04-16
|
29
|
+
{
|
30
|
+
"weather" => "晴のち曇",
|
31
|
+
"temperature" => {
|
32
|
+
"max" => "18",
|
33
|
+
"min" => "2"
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
2012-04-17
|
38
|
+
{
|
39
|
+
"weather" => "曇り",
|
40
|
+
"temperature" => {
|
41
|
+
"max" => "17",
|
42
|
+
"min" => "9"
|
43
|
+
}
|
44
|
+
}
|
45
|
+
```
|
20
46
|
|
21
|
-
|
47
|
+
### Example
|
22
48
|
Here's an example script to watch the weather forecast:
|
23
49
|
|
24
50
|
```ruby
|
@@ -43,12 +69,12 @@ $ ruby forecast.rb
|
|
43
69
|
weather: 晴れ
|
44
70
|
temperature:
|
45
71
|
max: '18'
|
46
|
-
min: '
|
72
|
+
min: '5'
|
47
73
|
---
|
48
74
|
weather: 晴れ
|
49
75
|
temperature:
|
50
76
|
max: '18'
|
51
|
-
min: '
|
77
|
+
min: '5'
|
52
78
|
---
|
53
79
|
weather: 晴時々曇
|
54
80
|
temperature:
|
@@ -57,14 +83,6 @@ temperature:
|
|
57
83
|
---
|
58
84
|
weather: 曇り
|
59
85
|
temperature:
|
60
|
-
max: '
|
86
|
+
max: '17'
|
61
87
|
min: '9'
|
62
88
|
```
|
63
|
-
|
64
|
-
## Contributing
|
65
|
-
|
66
|
-
1. Fork it
|
67
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
68
|
-
3. Commit your changes (`git commit -am 'Added some feature'`)
|
69
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
70
|
-
5. Create new Pull Request
|
@@ -3,148 +3,148 @@
|
|
3
3
|
class WeatherHacker
|
4
4
|
module AreaData
|
5
5
|
ID_BY_CITY = {
|
6
|
-
"稚内" =>
|
7
|
-
"旭川" =>
|
8
|
-
"留萌" =>
|
9
|
-
"
|
10
|
-
"
|
11
|
-
"
|
12
|
-
"
|
13
|
-
"
|
14
|
-
"
|
15
|
-
"
|
16
|
-
"
|
17
|
-
"
|
18
|
-
"
|
19
|
-
"
|
20
|
-
"函館" =>
|
21
|
-
"江差" =>
|
22
|
-
"青森" =>
|
23
|
-
"むつ" =>
|
24
|
-
"八戸" =>
|
25
|
-
"
|
26
|
-
"
|
27
|
-
"
|
28
|
-
"
|
29
|
-
"
|
30
|
-
"
|
31
|
-
"
|
32
|
-
"山形" =>
|
33
|
-
"米沢" =>
|
34
|
-
"酒田" =>
|
35
|
-
"新庄" =>
|
36
|
-
"福島" =>
|
37
|
-
"小名浜" =>
|
38
|
-
"若松" =>
|
39
|
-
"水戸" =>
|
40
|
-
"土浦" =>
|
41
|
-
"宇都宮" =>
|
42
|
-
"大田原" =>
|
43
|
-
"前橋" =>
|
44
|
-
"みなかみ" =>
|
45
|
-
"さいたま" =>
|
46
|
-
"熊谷" =>
|
47
|
-
"秩父" =>
|
48
|
-
"
|
49
|
-
"
|
50
|
-
"
|
51
|
-
"
|
52
|
-
"
|
53
|
-
"
|
54
|
-
"
|
55
|
-
"横浜" =>
|
56
|
-
"小田原" =>
|
57
|
-
"
|
58
|
-
"
|
59
|
-
"
|
60
|
-
"
|
61
|
-
"
|
62
|
-
"
|
63
|
-
"
|
64
|
-
"
|
65
|
-
"
|
66
|
-
"
|
67
|
-
"
|
68
|
-
"
|
69
|
-
"長野" =>
|
70
|
-
"松本" =>
|
71
|
-
"飯田" =>
|
72
|
-
"
|
73
|
-
"
|
74
|
-
"
|
75
|
-
"
|
76
|
-
"
|
77
|
-
"
|
78
|
-
"
|
79
|
-
"
|
80
|
-
"津" =>
|
81
|
-
"尾鷲" =>
|
82
|
-
"大津" =>
|
83
|
-
"彦根" =>
|
84
|
-
"京都" =>
|
85
|
-
"舞鶴" =>
|
86
|
-
"大阪" =>
|
87
|
-
"神戸" =>
|
88
|
-
"豊岡" =>
|
89
|
-
"奈良" =>
|
90
|
-
"風屋" =>
|
91
|
-
"和歌山" =>
|
92
|
-
"潮岬" =>
|
93
|
-
"
|
94
|
-
"
|
95
|
-
"
|
96
|
-
"
|
97
|
-
"
|
98
|
-
"
|
99
|
-
"
|
100
|
-
"
|
101
|
-
"
|
102
|
-
"下関" =>
|
103
|
-
"山口" =>
|
104
|
-
"柳井" =>
|
105
|
-
"萩" =>
|
106
|
-
"徳島" =>
|
107
|
-
"日和佐" =>
|
108
|
-
"高松" =>
|
109
|
-
"松山" =>
|
110
|
-
"新居浜" =>
|
111
|
-
"宇和島" =>
|
112
|
-
"高知" =>
|
113
|
-
"
|
114
|
-
"清水" =>
|
115
|
-
"福岡" =>
|
116
|
-
"八幡" =>
|
117
|
-
"飯塚" =>
|
118
|
-
"久留米" =>
|
119
|
-
"
|
120
|
-
"
|
121
|
-
"
|
122
|
-
"
|
123
|
-
"
|
124
|
-
"
|
125
|
-
"
|
126
|
-
"
|
127
|
-
"
|
128
|
-
"
|
129
|
-
"
|
130
|
-
"
|
131
|
-
"
|
132
|
-
"
|
133
|
-
"宮崎" =>
|
134
|
-
"延岡" =>
|
135
|
-
"都城" =>
|
136
|
-
"高千穂" =>
|
137
|
-
"鹿児島" =>
|
138
|
-
"鹿屋" =>
|
139
|
-
"種子島" =>
|
140
|
-
"名瀬" =>
|
141
|
-
"那覇" =>
|
142
|
-
"名護" =>
|
143
|
-
"久米島" =>
|
144
|
-
"
|
145
|
-
"宮古島" =>
|
146
|
-
"石垣島" =>
|
147
|
-
"与那国島" =>
|
6
|
+
"稚内" => '011000',
|
7
|
+
"旭川" => '012010',
|
8
|
+
"留萌" => '012020',
|
9
|
+
"網走" => '013010',
|
10
|
+
"北見" => '013020',
|
11
|
+
"紋別" => '013030',
|
12
|
+
"根室" => '014010',
|
13
|
+
"釧路" => '014020',
|
14
|
+
"帯広" => '014030',
|
15
|
+
"室蘭" => '015010',
|
16
|
+
"浦河" => '015020',
|
17
|
+
"札幌" => '016010',
|
18
|
+
"岩見沢" => '016020',
|
19
|
+
"倶知安" => '016030',
|
20
|
+
"函館" => '017010',
|
21
|
+
"江差" => '017020',
|
22
|
+
"青森" => '020010',
|
23
|
+
"むつ" => '020020',
|
24
|
+
"八戸" => '020030',
|
25
|
+
"盛岡" => '030010',
|
26
|
+
"宮古" => '030020',
|
27
|
+
"大船渡" => '030030',
|
28
|
+
"仙台" => '040010',
|
29
|
+
"白石" => '040020',
|
30
|
+
"秋田" => '050010',
|
31
|
+
"横手" => '050020',
|
32
|
+
"山形" => '060010',
|
33
|
+
"米沢" => '060020',
|
34
|
+
"酒田" => '060030',
|
35
|
+
"新庄" => '060040',
|
36
|
+
"福島" => '070010',
|
37
|
+
"小名浜" => '070020',
|
38
|
+
"若松" => '070030',
|
39
|
+
"水戸" => '080010',
|
40
|
+
"土浦" => '080020',
|
41
|
+
"宇都宮" => '090010',
|
42
|
+
"大田原" => '090020',
|
43
|
+
"前橋" => '100010',
|
44
|
+
"みなかみ" => '100020',
|
45
|
+
"さいたま" => '110010',
|
46
|
+
"熊谷" => '110020',
|
47
|
+
"秩父" => '110030',
|
48
|
+
"千葉" => '120010',
|
49
|
+
"銚子" => '120020',
|
50
|
+
"館山" => '120030',
|
51
|
+
"東京" => '130010',
|
52
|
+
"大島" => '130020',
|
53
|
+
"八丈島" => '130030',
|
54
|
+
"父島" => '130040',
|
55
|
+
"横浜" => '140010',
|
56
|
+
"小田原" => '140020',
|
57
|
+
"新潟" => '150010',
|
58
|
+
"長岡" => '150020',
|
59
|
+
"高田" => '150030',
|
60
|
+
"相川" => '150040',
|
61
|
+
"富山" => '160010',
|
62
|
+
"伏木" => '160020',
|
63
|
+
"金沢" => '170010',
|
64
|
+
"輪島" => '170020',
|
65
|
+
"福井" => '180010',
|
66
|
+
"敦賀" => '180020',
|
67
|
+
"甲府" => '190010',
|
68
|
+
"河口湖" => '190020',
|
69
|
+
"長野" => '200010',
|
70
|
+
"松本" => '200020',
|
71
|
+
"飯田" => '200030',
|
72
|
+
"岐阜" => '210010',
|
73
|
+
"高山" => '210020',
|
74
|
+
"静岡" => '220010',
|
75
|
+
"網代" => '220020',
|
76
|
+
"三島" => '220030',
|
77
|
+
"浜松" => '220040',
|
78
|
+
"名古屋" => '230010',
|
79
|
+
"豊橋" => '230020',
|
80
|
+
"津" => '240010',
|
81
|
+
"尾鷲" => '240020',
|
82
|
+
"大津" => '250010',
|
83
|
+
"彦根" => '250020',
|
84
|
+
"京都" => '260010',
|
85
|
+
"舞鶴" => '260020',
|
86
|
+
"大阪" => '270000',
|
87
|
+
"神戸" => '280010',
|
88
|
+
"豊岡" => '280020',
|
89
|
+
"奈良" => '290010',
|
90
|
+
"風屋" => '290020',
|
91
|
+
"和歌山" => '300010',
|
92
|
+
"潮岬" => '300020',
|
93
|
+
"鳥取" => '310010',
|
94
|
+
"米子" => '310020',
|
95
|
+
"松江" => '320010',
|
96
|
+
"浜田" => '320020',
|
97
|
+
"西郷" => '320030',
|
98
|
+
"岡山" => '330010',
|
99
|
+
"津山" => '330020',
|
100
|
+
"広島" => '340010',
|
101
|
+
"庄原" => '340020',
|
102
|
+
"下関" => '350010',
|
103
|
+
"山口" => '350020',
|
104
|
+
"柳井" => '350030',
|
105
|
+
"萩" => '350040',
|
106
|
+
"徳島" => '360010',
|
107
|
+
"日和佐" => '360020',
|
108
|
+
"高松" => '370000',
|
109
|
+
"松山" => '380010',
|
110
|
+
"新居浜" => '380020',
|
111
|
+
"宇和島" => '380030',
|
112
|
+
"高知" => '390010',
|
113
|
+
"室戸岬" => '390020',
|
114
|
+
"清水" => '390030',
|
115
|
+
"福岡" => '400010',
|
116
|
+
"八幡" => '400020',
|
117
|
+
"飯塚" => '400030',
|
118
|
+
"久留米" => '400040',
|
119
|
+
"佐賀" => '410010',
|
120
|
+
"伊万里" => '410020',
|
121
|
+
"長崎" => '420010',
|
122
|
+
"佐世保" => '420020',
|
123
|
+
"厳原" => '420030',
|
124
|
+
"福江" => '420040',
|
125
|
+
"熊本" => '430010',
|
126
|
+
"阿蘇乙姫" => '430020',
|
127
|
+
"牛深" => '430030',
|
128
|
+
"人吉" => '430040',
|
129
|
+
"大分" => '440010',
|
130
|
+
"中津" => '440020',
|
131
|
+
"日田" => '440030',
|
132
|
+
"佐伯" => '440040',
|
133
|
+
"宮崎" => '450010',
|
134
|
+
"延岡" => '450020',
|
135
|
+
"都城" => '450030',
|
136
|
+
"高千穂" => '450040',
|
137
|
+
"鹿児島" => '460010',
|
138
|
+
"鹿屋" => '460020',
|
139
|
+
"種子島" => '460030',
|
140
|
+
"名瀬" => '460040',
|
141
|
+
"那覇" => '471010',
|
142
|
+
"名護" => '471020',
|
143
|
+
"久米島" => '471030',
|
144
|
+
"南大東" => '472000',
|
145
|
+
"宮古島" => '473000',
|
146
|
+
"石垣島" => '474010',
|
147
|
+
"与那国島" => '474020'
|
148
148
|
}
|
149
149
|
|
150
150
|
PREF_BY_CITY = {
|
@@ -4,8 +4,8 @@ class WeatherHacker
|
|
4
4
|
class Client
|
5
5
|
include HTTParty
|
6
6
|
|
7
|
-
WEATHER_URL = "http://weather.livedoor.com/forecast/webservice/
|
8
|
-
AREA_TABLE_URL = "http://weather.livedoor.com/forecast/rss/
|
7
|
+
WEATHER_URL = "http://weather.livedoor.com/forecast/webservice/json/v1"
|
8
|
+
AREA_TABLE_URL = "http://weather.livedoor.com/forecast/rss/primary_area.xml"
|
9
9
|
ZIPCODE_URL = "http://zip.cgis.biz/xml/zip.php"
|
10
10
|
|
11
11
|
# @city_id_by_zipcode is cached
|
@@ -15,17 +15,23 @@ class WeatherHacker
|
|
15
15
|
|
16
16
|
# get weather data by zipcode
|
17
17
|
def get_weather(zipcode, opts = {})
|
18
|
-
city_id
|
19
|
-
query
|
20
|
-
hash
|
18
|
+
city_id = city_id_by_zipcode(zipcode) or return
|
19
|
+
query = { :city => city_id }.merge(opts)
|
20
|
+
hash = get WEATHER_URL, :query => query
|
21
|
+
forecast = get_forecast(hash, opts)
|
22
|
+
|
23
|
+
weather = forecast["telop"]
|
24
|
+
max = forecast["temperature"]["max"]
|
25
|
+
min = forecast["temperature"]["min"]
|
26
|
+
max_celsius = max["celsius"] unless max.nil?
|
27
|
+
min_celsius = min["celsius"] unless min.nil?
|
21
28
|
|
22
29
|
{
|
23
|
-
"weather" =>
|
30
|
+
"weather" => weather,
|
24
31
|
"temperature" => {
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
}
|
32
|
+
"max" => max_celsius,
|
33
|
+
"min" => min_celsius,
|
34
|
+
}}
|
29
35
|
rescue ParseError
|
30
36
|
nil
|
31
37
|
end
|
@@ -37,6 +43,14 @@ class WeatherHacker
|
|
37
43
|
self.class.get(*args)
|
38
44
|
end
|
39
45
|
|
46
|
+
# return forecast hash
|
47
|
+
def get_forecast(hash, opts)
|
48
|
+
days = ['today', 'tomorrow', 'dayaftertomorrow']
|
49
|
+
day_num = 0
|
50
|
+
day_num = days.find_index(opts['day']) unless opts['day'].nil?
|
51
|
+
hash['forecasts'][day_num]
|
52
|
+
end
|
53
|
+
|
40
54
|
# return city id via zipcode API
|
41
55
|
def city_id_by_zipcode(zipcode)
|
42
56
|
zipcode = canonical_zipcode(zipcode)
|
@@ -46,7 +60,7 @@ class WeatherHacker
|
|
46
60
|
hash = info_by_zipcode(zipcode)
|
47
61
|
city = canonical_city(hash["city"])
|
48
62
|
pref = canonical_pref(hash["state"])
|
49
|
-
city_id_by_area(city, pref)
|
63
|
+
city_id_by_area(city, pref).to_i
|
50
64
|
end
|
51
65
|
end
|
52
66
|
|
@@ -134,19 +148,15 @@ class WeatherHacker
|
|
134
148
|
def parse_area_table(hash)
|
135
149
|
@pref_by_city ||= {}
|
136
150
|
@id_by_city ||= {}
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
title = city["title"]
|
147
|
-
@id_by_city[title] = id
|
148
|
-
@pref_by_city[title] = pref_name
|
149
|
-
end
|
151
|
+
hash["rss"]["channel"]["source"]["pref"].each do |pref|
|
152
|
+
pref_name = canonical_pref(pref["title"])
|
153
|
+
|
154
|
+
cities = [pref["city"]].flatten
|
155
|
+
cities.each do |city|
|
156
|
+
id = city["id"].to_i
|
157
|
+
title = city["title"]
|
158
|
+
@id_by_city[title] = id
|
159
|
+
@pref_by_city[title] = pref_name
|
150
160
|
end
|
151
161
|
end
|
152
162
|
rescue
|
metadata
CHANGED
@@ -1,82 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: weather_hacker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.6
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ryo NAKAMURA
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-05-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 0.9.2
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.9.2
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: httparty
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: awesome_print
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- -
|
45
|
+
- - '>='
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: '0'
|
44
48
|
type: :runtime
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: rspec
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
type: :development
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: simplecov
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
|
-
- -
|
73
|
+
- - '>='
|
64
74
|
- !ruby/object:Gem::Version
|
65
75
|
version: '0'
|
66
76
|
type: :development
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: simplecov-vim
|
71
|
-
requirement:
|
72
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
73
86
|
requirements:
|
74
|
-
- -
|
87
|
+
- - '>='
|
75
88
|
- !ruby/object:Gem::Version
|
76
89
|
version: '0'
|
77
90
|
type: :development
|
78
91
|
prerelease: false
|
79
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
80
97
|
description: Library for Livedoor Weather Web Service
|
81
98
|
email:
|
82
99
|
- r7kamura@gmail.com
|
@@ -105,33 +122,26 @@ files:
|
|
105
122
|
- weather_hacker.gemspec
|
106
123
|
homepage: http://r7kamura.github.com/weather_hacker/
|
107
124
|
licenses: []
|
125
|
+
metadata: {}
|
108
126
|
post_install_message:
|
109
127
|
rdoc_options: []
|
110
128
|
require_paths:
|
111
129
|
- lib
|
112
130
|
required_ruby_version: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
131
|
requirements:
|
115
|
-
- -
|
132
|
+
- - '>='
|
116
133
|
- !ruby/object:Gem::Version
|
117
134
|
version: '0'
|
118
|
-
segments:
|
119
|
-
- 0
|
120
|
-
hash: -1410371417977522141
|
121
135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
136
|
requirements:
|
124
|
-
- -
|
137
|
+
- - '>='
|
125
138
|
- !ruby/object:Gem::Version
|
126
139
|
version: '0'
|
127
|
-
segments:
|
128
|
-
- 0
|
129
|
-
hash: -1410371417977522141
|
130
140
|
requirements: []
|
131
141
|
rubyforge_project:
|
132
|
-
rubygems_version:
|
142
|
+
rubygems_version: 2.0.0
|
133
143
|
signing_key:
|
134
|
-
specification_version:
|
144
|
+
specification_version: 4
|
135
145
|
summary: Weather Forecaster via Livedoor Weather Web Service
|
136
146
|
test_files:
|
137
147
|
- spec/fixtures/id_by_city.rb
|