weather-report 0.4.1 → 0.4.2
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 +4 -4
- data/.travis.yml +8 -5
- data/Gemfile +11 -0
- data/Gemfile.lock +32 -5
- data/lib/weather-report.rb +1 -1
- data/lib/weather-report/day.rb +11 -28
- data/lib/weather-report/version.rb +1 -1
- data/lib/weather-report/weather.rb +1 -1
- data/sig/day.rbs +8 -0
- data/weather-report.gemspec +8 -15
- metadata +9 -114
- data/test/test_day.rb +0 -95
- data/test/test_helper.rb +0 -9
- data/test/test_weather-report.rb +0 -18
- data/test/test_weather.rb +0 -61
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 940926ddd30861ac84a28085e33ea3a5545b26c8e6594bfe95f385bc4cd02968
|
4
|
+
data.tar.gz: 91d5683c8c07b435493f0e8a6f676360e96b9f48625ca2b761837eda78795e1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63da6c9c80a1b8ca054cb5ed8d5e021505e2f90b8774097817402bb8015a046ab29eeba34a0cdb421c4b40a4bf3aad3f0d134c458efd3056d3a5bdad78189d2b
|
7
|
+
data.tar.gz: 39350cfa70debae80bafe58d4591fed4ccb025a36864dc64fb2d7fc74bcec1d95f537105fcaf3ed75c20efefe3a766bbd8c344158a21add5694f8e3a2fe430cb
|
data/.travis.yml
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
language: ruby
|
2
2
|
cache: bundler
|
3
3
|
rvm:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
- '2.5'
|
5
|
+
- '2.6'
|
6
|
+
- '2.7'
|
7
|
+
# - jruby
|
8
|
+
# - rbx-3
|
9
9
|
before_install: gem install bundler -v 2.1.4
|
10
|
+
notifications:
|
11
|
+
slack:
|
12
|
+
secure: V4ek++4NqkVvL44PrDrycKUdIVIGUM5lkBydkyNl1CU8+wf2l/GzeMnI/d8rF+ok8DgWTvEoEr15+/d9tzec34M91GbVnHI5+MeOWuZcp7LDVvKMZc67kZcHqplurBFcKuTty8AJgGmLOjUqmlrXoXSceTachaqdU/0u1MQV2Sg=
|
data/Gemfile
CHANGED
@@ -2,3 +2,14 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in weather-report.gemspec
|
4
4
|
gemspec
|
5
|
+
|
6
|
+
gem 'nokogiri'
|
7
|
+
gem 'slop', '~> 3.6.0'
|
8
|
+
|
9
|
+
group :development do
|
10
|
+
gem "rake"
|
11
|
+
gem "guard"
|
12
|
+
gem "guard-minitest"
|
13
|
+
gem "rb-fsevent"
|
14
|
+
gem "minitest-reporters"
|
15
|
+
end
|
data/Gemfile.lock
CHANGED
@@ -1,20 +1,34 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
weather-report (0.4.
|
5
|
-
nokogiri
|
6
|
-
slop (~> 3.6.0)
|
4
|
+
weather-report (0.4.2)
|
7
5
|
|
8
6
|
GEM
|
9
7
|
remote: https://rubygems.org/
|
10
8
|
specs:
|
11
9
|
ansi (1.5.0)
|
12
10
|
builder (3.2.4)
|
13
|
-
|
11
|
+
coderay (1.1.3)
|
12
|
+
ffi (1.13.1)
|
13
|
+
formatador (0.2.5)
|
14
|
+
guard (2.16.2)
|
15
|
+
formatador (>= 0.2.4)
|
16
|
+
listen (>= 2.7, < 4.0)
|
17
|
+
lumberjack (>= 1.0.12, < 2.0)
|
18
|
+
nenv (~> 0.1)
|
19
|
+
notiffany (~> 0.0)
|
20
|
+
pry (>= 0.9.12)
|
21
|
+
shellany (~> 0.0)
|
22
|
+
thor (>= 0.18.1)
|
14
23
|
guard-compat (1.2.1)
|
15
24
|
guard-minitest (2.4.6)
|
16
25
|
guard-compat (~> 1.2)
|
17
26
|
minitest (>= 3.0)
|
27
|
+
listen (3.2.1)
|
28
|
+
rb-fsevent (~> 0.10, >= 0.10.3)
|
29
|
+
rb-inotify (~> 0.9, >= 0.9.10)
|
30
|
+
lumberjack (1.2.8)
|
31
|
+
method_source (1.0.0)
|
18
32
|
mini_portile2 (2.4.0)
|
19
33
|
minitest (5.14.2)
|
20
34
|
minitest-reporters (1.4.2)
|
@@ -22,22 +36,35 @@ GEM
|
|
22
36
|
builder
|
23
37
|
minitest (>= 5.0)
|
24
38
|
ruby-progressbar
|
39
|
+
nenv (0.3.0)
|
25
40
|
nokogiri (1.10.10)
|
26
41
|
mini_portile2 (~> 2.4.0)
|
42
|
+
notiffany (0.1.3)
|
43
|
+
nenv (~> 0.1)
|
44
|
+
shellany (~> 0.0)
|
45
|
+
pry (0.13.1)
|
46
|
+
coderay (~> 1.1)
|
47
|
+
method_source (~> 1.0)
|
27
48
|
rake (13.0.1)
|
28
49
|
rb-fsevent (0.10.4)
|
50
|
+
rb-inotify (0.10.1)
|
51
|
+
ffi (~> 1.0)
|
29
52
|
ruby-progressbar (1.10.1)
|
53
|
+
shellany (0.0.1)
|
30
54
|
slop (3.6.0)
|
55
|
+
thor (1.0.1)
|
31
56
|
|
32
57
|
PLATFORMS
|
33
58
|
ruby
|
34
59
|
|
35
60
|
DEPENDENCIES
|
36
|
-
|
61
|
+
guard
|
37
62
|
guard-minitest
|
38
63
|
minitest-reporters
|
64
|
+
nokogiri
|
39
65
|
rake
|
40
66
|
rb-fsevent
|
67
|
+
slop (~> 3.6.0)
|
41
68
|
weather-report!
|
42
69
|
|
43
70
|
BUNDLED WITH
|
data/lib/weather-report.rb
CHANGED
@@ -21,7 +21,7 @@ module WeatherReport
|
|
21
21
|
# @return [Array] get city list
|
22
22
|
def self.cities
|
23
23
|
proxy = Weather.parse_proxy(ENV["http_proxy"])
|
24
|
-
doc = Nokogiri::XML(open("https://weather.tsukumijima.net/primary_area.xml", :proxy_http_basic_authentication => [proxy.server, proxy.user, proxy.pass]))
|
24
|
+
doc = Nokogiri::XML(URI.open("https://weather.tsukumijima.net/primary_area.xml", :proxy_http_basic_authentication => [proxy.server, proxy.user, proxy.pass]))
|
25
25
|
doc.xpath("//city").map{|i|
|
26
26
|
i["title"]
|
27
27
|
}
|
data/lib/weather-report/day.rb
CHANGED
@@ -6,7 +6,17 @@ module WeatherReport
|
|
6
6
|
|
7
7
|
def initialize(forecasts, dateLabel)
|
8
8
|
raise ArgumentError, "dateLabel must be 今日, 明日 or 明後日" unless dateLabel =~ /(今日|明日|明後日)/
|
9
|
-
|
9
|
+
|
10
|
+
forecast = forecast(forecasts, dateLabel)
|
11
|
+
@telop = forecast['telop']
|
12
|
+
year, month, day = forecast['date'].split('-')
|
13
|
+
@date = Date.new(year.to_i, month.to_i, day.to_i)
|
14
|
+
|
15
|
+
temperature = forecast['temperature']
|
16
|
+
min = temperature['min']
|
17
|
+
max = temperature['max']
|
18
|
+
@temperature_min = min ? min['celsius'].to_i : nil
|
19
|
+
@temperature_max = max ? max['celsius'].to_i : nil
|
10
20
|
end
|
11
21
|
|
12
22
|
# @return [Boolean] return true if it rains.
|
@@ -24,33 +34,6 @@ module WeatherReport
|
|
24
34
|
telop =~ /[雨雪霙雹]/ ? true : false
|
25
35
|
end
|
26
36
|
|
27
|
-
# @return [Date] the date
|
28
|
-
def date
|
29
|
-
year, month, day = @forecast["date"].split('-')
|
30
|
-
@date ||= Date.new(year.to_i, month.to_i, day.to_i)
|
31
|
-
end
|
32
|
-
|
33
|
-
# @return [String] the telop
|
34
|
-
def telop
|
35
|
-
@telop ||= @forecast["telop"]
|
36
|
-
end
|
37
|
-
|
38
|
-
# @return [Fixnum] the minimum temperature.
|
39
|
-
# Temperature of today could be nil.
|
40
|
-
def temperature_min
|
41
|
-
min = @forecast["temperature"]["min"]
|
42
|
-
@temperature ||=
|
43
|
-
min ? min["celsius"].to_i : nil
|
44
|
-
end
|
45
|
-
|
46
|
-
# @return [Fixnum] the maximum temperature.
|
47
|
-
# Temperature of today could be nil.
|
48
|
-
def temperature_max
|
49
|
-
max = @forecast["temperature"]["max"]
|
50
|
-
@temperature_max ||=
|
51
|
-
max ? max["celsius"].to_i : nil
|
52
|
-
end
|
53
|
-
|
54
37
|
# @return [Hash] return with hash format.
|
55
38
|
def to_h
|
56
39
|
{
|
@@ -12,7 +12,7 @@ module WeatherReport
|
|
12
12
|
def self.request_cityid(city_name)
|
13
13
|
raise ArgumentError, "City name must be String." unless city_name.kind_of?(String)
|
14
14
|
proxy = Weather.parse_proxy(ENV["http_proxy"])
|
15
|
-
doc = Nokogiri::XML(open("https://weather.tsukumijima.net/primary_area.xml", :proxy_http_basic_authentication => [proxy.server, proxy.user, proxy.pass]))
|
15
|
+
doc = Nokogiri::XML(URI.open("https://weather.tsukumijima.net/primary_area.xml", :proxy_http_basic_authentication => [proxy.server, proxy.user, proxy.pass]))
|
16
16
|
doc.search("//city[@title='#{city_name}']").attr("id").value
|
17
17
|
rescue NoMethodError
|
18
18
|
raise NoCityError, "It seems like city #{city_name} does not exist.\nPlease look at https://weather.tsukumijima.net/primary_area.xml for city list."
|
data/sig/day.rbs
ADDED
data/weather-report.gemspec
CHANGED
@@ -1,28 +1,21 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'weather-report/version'
|
1
|
+
require_relative 'lib/weather-report/version'
|
5
2
|
|
6
3
|
Gem::Specification.new do |spec|
|
7
4
|
spec.name = "weather-report"
|
8
5
|
spec.version = WeatherReport::VERSION
|
9
6
|
spec.authors = ["zakuni"]
|
10
7
|
spec.email = ["kunio038@gmail.com"]
|
11
|
-
|
12
|
-
spec.
|
8
|
+
|
9
|
+
spec.description = %q{A Ruby library and CLI to get Japanese Weather via 天気予報 API(https://weather.tsukumijima.net/) which is compatible with Livedoor Weather Web Service.}
|
10
|
+
spec.summary = %q{A Ruby client of 天気予報 API(https://weather.tsukumijima.net/).}
|
13
11
|
spec.homepage = "https://github.com/zakuni/weather-report"
|
14
12
|
spec.license = "MIT"
|
13
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
15
14
|
|
16
|
-
spec.files =
|
15
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
16
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
end
|
17
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
20
|
spec.require_paths = ["lib"]
|
20
|
-
|
21
|
-
spec.add_dependency "nokogiri"
|
22
|
-
spec.add_dependency "slop", "~> 3.6.0"
|
23
|
-
spec.add_development_dependency "rake"
|
24
|
-
spec.add_development_dependency "guard-minitest"
|
25
|
-
spec.add_development_dependency "rb-fsevent"
|
26
|
-
spec.add_development_dependency "minitest-reporters"
|
27
|
-
spec.add_development_dependency "growl"
|
28
21
|
end
|
metadata
CHANGED
@@ -1,115 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: weather-report
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zakuni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
12
|
-
dependencies:
|
13
|
-
|
14
|
-
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: slop
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 3.6.0
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 3.6.0
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rake
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: guard-minitest
|
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: rb-fsevent
|
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'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: minitest-reporters
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: growl
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
description: A Ruby library and CLI to get Japanese Weather via Livedoor Weather Web
|
112
|
-
Service(http://weather.livedoor.com/weather_hacks/webservice).
|
11
|
+
date: 2020-12-12 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A Ruby library and CLI to get Japanese Weather via 天気予報 API(https://weather.tsukumijima.net/)
|
14
|
+
which is compatible with Livedoor Weather Web Service.
|
113
15
|
email:
|
114
16
|
- kunio038@gmail.com
|
115
17
|
executables:
|
@@ -130,10 +32,7 @@ files:
|
|
130
32
|
- lib/weather-report/day.rb
|
131
33
|
- lib/weather-report/version.rb
|
132
34
|
- lib/weather-report/weather.rb
|
133
|
-
-
|
134
|
-
- test/test_helper.rb
|
135
|
-
- test/test_weather-report.rb
|
136
|
-
- test/test_weather.rb
|
35
|
+
- sig/day.rbs
|
137
36
|
- weather-report.gemspec
|
138
37
|
homepage: https://github.com/zakuni/weather-report
|
139
38
|
licenses:
|
@@ -147,7 +46,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
147
46
|
requirements:
|
148
47
|
- - ">="
|
149
48
|
- !ruby/object:Gem::Version
|
150
|
-
version:
|
49
|
+
version: 2.3.0
|
151
50
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
51
|
requirements:
|
153
52
|
- - ">="
|
@@ -157,9 +56,5 @@ requirements: []
|
|
157
56
|
rubygems_version: 3.1.2
|
158
57
|
signing_key:
|
159
58
|
specification_version: 4
|
160
|
-
summary: A Ruby client of
|
161
|
-
test_files:
|
162
|
-
- test/test_day.rb
|
163
|
-
- test/test_helper.rb
|
164
|
-
- test/test_weather-report.rb
|
165
|
-
- test/test_weather.rb
|
59
|
+
summary: A Ruby client of 天気予報 API(https://weather.tsukumijima.net/).
|
60
|
+
test_files: []
|
data/test/test_day.rb
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
require File.expand_path 'test_helper', File.dirname(__FILE__)
|
4
|
-
|
5
|
-
class TestDay < MiniTest::Unit::TestCase
|
6
|
-
include WeatherReport
|
7
|
-
|
8
|
-
def setup
|
9
|
-
city_id = Weather.request_cityid("東京")
|
10
|
-
uri = URI.parse("https://weather.tsukumijima.net/api/forecast?city=#{city_id}")
|
11
|
-
@forecasts = JSON.parse(uri.read)
|
12
|
-
@day = Day.new(@forecasts, "明日")
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_initialize
|
16
|
-
assert_instance_of Day, Day.new(@forecasts, "明日")
|
17
|
-
assert_raises(ArgumentError) do
|
18
|
-
Day.new(@forecasts, "昨日")
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_rain?
|
23
|
-
assert_respond_to @day, :rain?
|
24
|
-
@day.stub(:telop, '晴れ') do
|
25
|
-
assert_equal @day.rain?, false
|
26
|
-
end
|
27
|
-
@day.stub(:telop, '雨') do
|
28
|
-
assert_equal @day.rain?, true
|
29
|
-
end
|
30
|
-
@day.stub(:telop, '晴れ時々雨') do
|
31
|
-
assert_equal @day.rain?, true
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_snow?
|
36
|
-
assert_respond_to @day, :snow?
|
37
|
-
@day.stub(:telop, '晴れ') do
|
38
|
-
assert_equal @day.snow?, false
|
39
|
-
end
|
40
|
-
@day.stub(:telop, '雪') do
|
41
|
-
assert_equal @day.snow?, true
|
42
|
-
end
|
43
|
-
@day.stub(:telop, '雪のち晴れ') do
|
44
|
-
assert_equal @day.snow?, true
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_umbrella?
|
49
|
-
assert_respond_to @day, :umbrella?
|
50
|
-
@day.stub(:telop, '晴れ') do
|
51
|
-
assert_equal @day.umbrella?, false
|
52
|
-
end
|
53
|
-
@day.stub(:telop, '雨') do
|
54
|
-
assert_equal @day.umbrella?, true
|
55
|
-
end
|
56
|
-
@day.stub(:telop, '晴れのち雨') do
|
57
|
-
assert_equal @day.umbrella?, true
|
58
|
-
end
|
59
|
-
@day.stub(:telop, '曇りのち晴れ') do
|
60
|
-
assert_equal @day.umbrella?, false
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_date
|
65
|
-
assert_respond_to @day, :date
|
66
|
-
assert_instance_of Date, @day.date
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_telop
|
70
|
-
assert_respond_to @day, :telop
|
71
|
-
assert_instance_of String, @day.telop
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_temperature_min
|
75
|
-
assert_respond_to @day, :temperature_min
|
76
|
-
assert [Fixnum, NilClass].include? @day.temperature_min.class
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_temperature_max
|
80
|
-
assert_respond_to @day, :temperature_max
|
81
|
-
assert [Fixnum, NilClass].include? @day.temperature_max.class
|
82
|
-
end
|
83
|
-
|
84
|
-
def test_to_h
|
85
|
-
assert_respond_to @day, :to_h
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_forecast
|
89
|
-
forecasts = {"forecasts" => [{"dateLabel" => "明日"}]}
|
90
|
-
refute_nil @day.send(:forecast, forecasts, "明日")
|
91
|
-
assert_raises NoForecastError do
|
92
|
-
@day.send(:forecast, forecasts, "明後日")
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'minitest/autorun'
|
3
|
-
require 'minitest/reporters'
|
4
|
-
require 'minitest/pride'
|
5
|
-
|
6
|
-
$:.unshift File.expand_path '../lib', File.dirname(__FILE__)
|
7
|
-
require 'weather-report'
|
8
|
-
|
9
|
-
MiniTest::Reporters.use! [MiniTest::Reporters::DefaultReporter.new]
|
data/test/test_weather-report.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
require File.expand_path 'test_helper', File.dirname(__FILE__)
|
4
|
-
|
5
|
-
class TestWeatherReport < MiniTest::Unit::TestCase
|
6
|
-
|
7
|
-
def test_get
|
8
|
-
assert_respond_to WeatherReport, :get
|
9
|
-
assert_instance_of WeatherReport::Weather, WeatherReport.get("横浜")
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_cities
|
13
|
-
cities = WeatherReport.cities
|
14
|
-
assert_instance_of Array, cities
|
15
|
-
assert cities.include? "東京"
|
16
|
-
assert cities.include? "横浜"
|
17
|
-
end
|
18
|
-
end
|
data/test/test_weather.rb
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
require File.expand_path 'test_helper', File.dirname(__FILE__)
|
4
|
-
|
5
|
-
class TestWeather < MiniTest::Unit::TestCase
|
6
|
-
include WeatherReport
|
7
|
-
|
8
|
-
def setup
|
9
|
-
@id = Weather.request_cityid("東京")
|
10
|
-
@weather = Weather.new(@id)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_initialize
|
14
|
-
assert_raises ::ArgumentError do
|
15
|
-
Weather.new
|
16
|
-
end
|
17
|
-
assert_instance_of Weather, Weather.new(@id)
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_today
|
21
|
-
assert_respond_to @weather, :today
|
22
|
-
|
23
|
-
today = @weather.today
|
24
|
-
assert_instance_of Day, today
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_tomorrow
|
28
|
-
assert_respond_to @weather, :tomorrow
|
29
|
-
|
30
|
-
tomorrow = @weather.tomorrow
|
31
|
-
assert_instance_of Day, tomorrow
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_day_after_tomorrow
|
35
|
-
assert_respond_to @weather, :day_after_tomorrow
|
36
|
-
|
37
|
-
day_after_tomorrow = @weather.day_after_tomorrow
|
38
|
-
assert_instance_of Day, day_after_tomorrow
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_link
|
42
|
-
assert_respond_to @weather, :link
|
43
|
-
assert_instance_of String, @weather.link
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_request_cityid
|
47
|
-
assert_respond_to Weather, :request_cityid
|
48
|
-
assert_equal "130010", Weather.request_cityid("東京")
|
49
|
-
assert_equal "140010", Weather.request_cityid("横浜")
|
50
|
-
assert_raises(ArgumentError) do
|
51
|
-
Weather.request_cityid(nil)
|
52
|
-
end
|
53
|
-
assert_raises(NoCityError) do
|
54
|
-
Weather.request_cityid("存在しない街")
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_to_h
|
59
|
-
assert_respond_to @weather, :to_h
|
60
|
-
end
|
61
|
-
end
|