weather_hacker 0.1.5 → 0.1.6
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 +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
|