weather-report 0.3.5 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: c875ad79a6273a3ae783c2313fed32da33d4944d
4
- data.tar.gz: b1cf98f6afb7f6fa2cfad698b49734f57b7b6dd7
2
+ SHA256:
3
+ metadata.gz: 940926ddd30861ac84a28085e33ea3a5545b26c8e6594bfe95f385bc4cd02968
4
+ data.tar.gz: 91d5683c8c07b435493f0e8a6f676360e96b9f48625ca2b761837eda78795e1d
5
5
  SHA512:
6
- metadata.gz: d9bcdae7626f0a63ec77f6558d3e338043ea5152bcfb58e5a6ac86bd44efb05e8cd71aa825621560d5f1ba95c7605bb1c160b0ba79c21cb5e7e85a5616f3e323
7
- data.tar.gz: fd2bf8c73508327ed756e4da2f82af18e8793de8237ecdbc42e3f7ac92301b1a449c547950100f6629153ed5ee49eff991da3a6e7306bd9a95bca34e7b9ec9e9
6
+ metadata.gz: 63da6c9c80a1b8ca054cb5ed8d5e021505e2f90b8774097817402bb8015a046ab29eeba34a0cdb421c4b40a4bf3aad3f0d134c458efd3056d3a5bdad78189d2b
7
+ data.tar.gz: 39350cfa70debae80bafe58d4591fed4ccb025a36864dc64fb2d7fc74bcec1d95f537105fcaf3ed75c20efefe3a766bbd8c344158a21add5694f8e3a2fe430cb
data/.gitignore CHANGED
@@ -3,7 +3,7 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
- Gemfile.lock
6
+ .ruby-version
7
7
  InstalledFiles
8
8
  _yardoc
9
9
  coverage
@@ -1,7 +1,12 @@
1
1
  language: ruby
2
+ cache: bundler
2
3
  rvm:
3
- - "1.9.2"
4
- - "1.9.3"
5
- - "2.0.0"
6
- - jruby-19mode # JRuby in 1.9 mode
7
- - rbx-19mode
4
+ - '2.5'
5
+ - '2.6'
6
+ - '2.7'
7
+ # - jruby
8
+ # - rbx-3
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
@@ -0,0 +1,71 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ weather-report (0.4.2)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ ansi (1.5.0)
10
+ builder (3.2.4)
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)
23
+ guard-compat (1.2.1)
24
+ guard-minitest (2.4.6)
25
+ guard-compat (~> 1.2)
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)
32
+ mini_portile2 (2.4.0)
33
+ minitest (5.14.2)
34
+ minitest-reporters (1.4.2)
35
+ ansi
36
+ builder
37
+ minitest (>= 5.0)
38
+ ruby-progressbar
39
+ nenv (0.3.0)
40
+ nokogiri (1.10.10)
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)
48
+ rake (13.0.1)
49
+ rb-fsevent (0.10.4)
50
+ rb-inotify (0.10.1)
51
+ ffi (~> 1.0)
52
+ ruby-progressbar (1.10.1)
53
+ shellany (0.0.1)
54
+ slop (3.6.0)
55
+ thor (1.0.1)
56
+
57
+ PLATFORMS
58
+ ruby
59
+
60
+ DEPENDENCIES
61
+ guard
62
+ guard-minitest
63
+ minitest-reporters
64
+ nokogiri
65
+ rake
66
+ rb-fsevent
67
+ slop (~> 3.6.0)
68
+ weather-report!
69
+
70
+ BUNDLED WITH
71
+ 2.1.4
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Weather Report
2
2
 
3
- A Ruby library and CLI to get Japanese Weather via Livedoor Weather Web Service(http://weather.livedoor.com/weather_hacks/webservice).
3
+ A Ruby library and CLI to get Japanese Weather via 天気予報 API(https://weather.tsukumijima.net/) which is compatible with Livedoor Weather Web Service.
4
4
 
5
5
  [![Build Status](https://travis-ci.org/zakuni/weather-report.png)](https://travis-ci.org/zakuni/weather-report)
6
6
 
@@ -1,42 +1,46 @@
1
1
  #!/usr/bin/env ruby
2
- # -*- coding: utf-8 -*-
3
- require 'rubygems'
4
- $:.unshift File.expand_path '../lib', File.dirname(__FILE__)
5
- require 'weather-report'
6
- require 'optparse'
7
- require 'ostruct'
8
2
 
9
- options = OpenStruct.new
3
+ require 'bundler/setup'
4
+ require 'weather-report'
5
+ require 'slop'
10
6
 
11
- opt_parser = OptionParser.new do |opts|
12
- opts.banner = 'Usage: weather-report CITY [options]'
7
+ opts = Slop.parse(help: true) do
8
+ banner 'Usage: weather-report CITY [options]'
13
9
 
14
- opts.separator ""
15
- opts.separator "Common options:"
10
+ separator ""
11
+ separator "Common options:"
16
12
 
17
- opts.on_tail("-h", "--help", "Show this message") do
18
- puts opts
13
+ on :l, :list, 'Show city list' do
14
+ WeatherReport.cities.each do |city|
15
+ puts city
16
+ end
19
17
  exit
20
18
  end
21
19
 
22
- opts.on_tail("-v", "--version", "Show version") do
20
+ on :v, :version, "Show version" do
23
21
  puts "weather-report v#{WeatherReport::VERSION}"
24
22
  exit
25
23
  end
26
24
  end
27
25
 
26
+ exit if opts.help?
27
+
28
28
  if ARGV.empty?
29
- puts opt_parser.help
30
- exit 1
29
+ puts opts.help
30
+ exit
31
31
  end
32
32
 
33
- city = opt_parser.parse(ARGV)
33
+ city = ARGV
34
34
  weather = WeatherReport::Weather.new(WeatherReport::Weather.request_cityid(*city))
35
35
 
36
36
  [weather.today, weather.tomorrow, weather.day_after_tomorrow].each do |day|
37
- print "#{day.date.year}年#{day.date.month}月#{day.date.day}日の天気 #{day.telop}"
38
- print " 最低気温#{day.temperature_min}度" if day.temperature_min
39
- print " 最高気温#{day.temperature_max}度" if day.temperature_max
40
- puts
37
+ begin
38
+ print "#{day.date.year}年#{day.date.month}月#{day.date.day}日の天気 #{day.telop}"
39
+ print " 最低気温#{day.temperature_min}度" if day.temperature_min
40
+ print " 最高気温#{day.temperature_max}度" if day.temperature_max
41
+ puts
42
+ rescue NoMethodError
43
+ next
44
+ end
41
45
  end
42
46
  puts weather.link
@@ -8,10 +8,22 @@ require 'weather-report/day'
8
8
  require 'weather-report/version'
9
9
 
10
10
  module WeatherReport
11
- class WeatherReportError < StandardError; end
11
+ class Error < StandardError; end
12
+ class ArgumentError < Error; end
13
+ class NoCityError < Error; end
14
+ class NoForecastError < Error; end
12
15
 
13
16
  # @return [Weather] get weather of the city
14
17
  def self.get(city_name)
15
18
  Weather.new(Weather.request_cityid(city_name))
16
19
  end
20
+
21
+ # @return [Array] get city list
22
+ def self.cities
23
+ proxy = Weather.parse_proxy(ENV["http_proxy"])
24
+ doc = Nokogiri::XML(URI.open("https://weather.tsukumijima.net/primary_area.xml", :proxy_http_basic_authentication => [proxy.server, proxy.user, proxy.pass]))
25
+ doc.xpath("//city").map{|i|
26
+ i["title"]
27
+ }
28
+ end
17
29
  end
@@ -5,8 +5,19 @@ module WeatherReport
5
5
  attr_reader :date, :telop, :temperature_min, :temperature_max
6
6
 
7
7
  def initialize(forecasts, dateLabel)
8
- @forecast = forecast(forecasts, dateLabel)
9
- end
8
+ raise ArgumentError, "dateLabel must be 今日, 明日 or 明後日" unless dateLabel =~ /(今日|明日|明後日)/
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
20
+ end
10
21
 
11
22
  # @return [Boolean] return true if it rains.
12
23
  def rain?
@@ -23,33 +34,6 @@ module WeatherReport
23
34
  telop =~ /[雨雪霙雹]/ ? true : false
24
35
  end
25
36
 
26
- # @return [Date] the date
27
- def date
28
- year, month, day = @forecast["date"].split('-')
29
- @date ||= Date.new(year.to_i, month.to_i, day.to_i)
30
- end
31
-
32
- # @return [String] the telop
33
- def telop
34
- @telop ||= @forecast["telop"]
35
- end
36
-
37
- # @return [Fixnum] the minimum temperature.
38
- # Temperature of today could be nil.
39
- def temperature_min
40
- min = @forecast["temperature"]["min"]
41
- @temperature ||=
42
- min ? min["celsius"].to_i : nil
43
- end
44
-
45
- # @return [Fixnum] the maximum temperature.
46
- # Temperature of today could be nil.
47
- def temperature_max
48
- max = @forecast["temperature"]["max"]
49
- @temperature_max ||=
50
- max ? max["celsius"].to_i : nil
51
- end
52
-
53
37
  # @return [Hash] return with hash format.
54
38
  def to_h
55
39
  {
@@ -64,6 +48,7 @@ module WeatherReport
64
48
 
65
49
  def forecast(forecasts, dateLabel)
66
50
  forecasts["forecasts"].each {|elem| return elem if elem["dateLabel"] == dateLabel}
51
+ raise NoForecastError
67
52
  end
68
53
  end
69
54
  end
@@ -1,3 +1,3 @@
1
1
  module WeatherReport
2
- VERSION = "0.3.5"
2
+ VERSION = '0.4.2'.freeze
3
3
  end
@@ -5,18 +5,17 @@ module WeatherReport
5
5
  attr_reader :today, :tomorrow, :day_after_tomorrow
6
6
 
7
7
  def initialize(city_id)
8
- @uri = URI.parse("http://weather.livedoor.com/forecast/webservice/json/v1?city=#{city_id}")
8
+ @uri = URI.parse("https://weather.tsukumijima.net/api/forecast?city=#{city_id}")
9
9
  end
10
10
 
11
11
  # @return [String] the id of given city
12
12
  def self.request_cityid(city_name)
13
+ raise ArgumentError, "City name must be String." unless city_name.kind_of?(String)
13
14
  proxy = Weather.parse_proxy(ENV["http_proxy"])
14
- doc = Nokogiri::XML(open("http://weather.livedoor.com/forecast/rss/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]))
15
16
  doc.search("//city[@title='#{city_name}']").attr("id").value
16
17
  rescue NoMethodError
17
- raise WeatherReportError, "It seems like city #{city_name} does not exist.\nPlease look at http://weather.livedoor.com/forecast/rss/primary_area.xml for city list."
18
- rescue => e
19
- raise WeatherReportError
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."
20
19
  end
21
20
 
22
21
  def self.parse_proxy(proxy)
@@ -27,8 +26,8 @@ module WeatherReport
27
26
  host, port = server.split(":")
28
27
  account = raccount.nil? ? "" : raccount.reverse.split(":")
29
28
  user, pass = account
30
-
31
- proxy = OpenStruct.new({
29
+
30
+ proxy = OpenStruct.new({
32
31
  "server" => server.empty? ? nil : "http://#{server}",
33
32
  "user" => user.nil? ? "" : user,
34
33
  "pass" => pass.nil? ? "" : pass
@@ -75,7 +74,7 @@ module WeatherReport
75
74
  def read
76
75
  @response ||= JSON.parse(@uri.read)
77
76
  rescue => e
78
- raise WeatherReportError
77
+ raise Error
79
78
  end
80
79
  end
81
80
  end
@@ -0,0 +1,8 @@
1
+ module WeatherReport
2
+ class Day
3
+ attr_reader date: Date
4
+ attr_reader telop: String
5
+ attr_reader temperature_min: Integer?
6
+ attr_reader temperature_max: Integer?
7
+ end
8
+ end
@@ -1,28 +1,21 @@
1
- # coding: utf-8
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
- spec.description = %q{A Ruby library and CLI to get Japanese Weather via Livedoor Weather Web Service(http://weather.livedoor.com/weather_hacks/webservice).}
12
- spec.summary = %q{A Ruby client of Livedoor Weather Web Service.}
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 = `git ls-files`.split($/)
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_development_dependency "bundler", "~> 1.3"
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.3.5
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: 2013-08-11 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: nokogiri
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: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: '1.3'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ~>
39
- - !ruby/object:Gem::Version
40
- version: '1.3'
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:
@@ -117,9 +19,10 @@ executables:
117
19
  extensions: []
118
20
  extra_rdoc_files: []
119
21
  files:
120
- - .gitignore
121
- - .travis.yml
22
+ - ".gitignore"
23
+ - ".travis.yml"
122
24
  - Gemfile
25
+ - Gemfile.lock
123
26
  - Guardfile
124
27
  - LICENSE.txt
125
28
  - README.md
@@ -129,10 +32,7 @@ files:
129
32
  - lib/weather-report/day.rb
130
33
  - lib/weather-report/version.rb
131
34
  - lib/weather-report/weather.rb
132
- - test/test_day.rb
133
- - test/test_helper.rb
134
- - test/test_weather-report.rb
135
- - test/test_weather.rb
35
+ - sig/day.rbs
136
36
  - weather-report.gemspec
137
37
  homepage: https://github.com/zakuni/weather-report
138
38
  licenses:
@@ -144,22 +44,17 @@ require_paths:
144
44
  - lib
145
45
  required_ruby_version: !ruby/object:Gem::Requirement
146
46
  requirements:
147
- - - '>='
47
+ - - ">="
148
48
  - !ruby/object:Gem::Version
149
- version: '0'
49
+ version: 2.3.0
150
50
  required_rubygems_version: !ruby/object:Gem::Requirement
151
51
  requirements:
152
- - - '>='
52
+ - - ">="
153
53
  - !ruby/object:Gem::Version
154
54
  version: '0'
155
55
  requirements: []
156
- rubyforge_project:
157
- rubygems_version: 2.0.3
56
+ rubygems_version: 3.1.2
158
57
  signing_key:
159
58
  specification_version: 4
160
- summary: A Ruby client of Livedoor Weather Web Service.
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: []
@@ -1,54 +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("http://weather.livedoor.com/forecast/webservice/json/v1?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
- end
18
-
19
- def test_rain?
20
- assert_respond_to @day, :rain?
21
- end
22
-
23
- def test_snow?
24
- assert_respond_to @day, :snow?
25
- end
26
-
27
- def test_umbrella?
28
- assert_respond_to @day, :umbrella?
29
- end
30
-
31
- def test_date
32
- assert_respond_to @day, :date
33
- assert_instance_of Date, @day.date
34
- end
35
-
36
- def test_telop
37
- assert_respond_to @day, :telop
38
- assert_instance_of String, @day.telop
39
- end
40
-
41
- def test_temperature_min
42
- assert_respond_to @day, :temperature_min
43
- assert [Fixnum, NilClass].include? @day.temperature_min.class
44
- end
45
-
46
- def test_temperature_max
47
- assert_respond_to @day, :temperature_max
48
- assert [Fixnum, NilClass].include? @day.temperature_max.class
49
- end
50
-
51
- def test_to_h
52
- assert_respond_to @day, :to_h
53
- end
54
- end
@@ -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]
@@ -1,11 +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
- end
@@ -1,58 +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(WeatherReportError) do
51
- Weather.request_cityid(nil)
52
- end
53
- end
54
-
55
- def test_to_h
56
- assert_respond_to @weather, :to_h
57
- end
58
- end