cinch-weatherman 0.0.1 → 1.0.0

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.
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.2
4
+ - 1.9.3
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
- # Cinch::Weatherman
1
+ # Cinch::Plugins::Weatherman
2
2
 
3
- TODO: Write a gem description
3
+ [![Gem Version](https://badge.fury.io/rb/cinch-weatherman.png)](http://badge.fury.io/rb/cinch-weatherman)
4
+ [![Dependency Status](https://gemnasium.com/canonical-hackers/cinch-weatherman.png)](https://gemnasium.com/canonical-hackers/cinch-weatherman)
5
+ [![Build Status](https://travis-ci.org/canonical-hackers/cinch-weatherman.png?branch=master)](https://travis-ci.org/canonical-hackers/cinch-weatherman)
6
+ [![Coverage Status](https://coveralls.io/repos/canonical-hackers/cinch-weatherman/badge.png?branch=master)](https://coveralls.io/r/canonical-hackers/cinch-weatherman?branch=master)
7
+ [![Code Climate](https://codeclimate.com/github/canonical-hackers/cinch-weatherman.png)](https://codeclimate.com/github/canonical-hackers/cinch-weatherman)
4
8
 
5
9
  ## Installation
6
10
 
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task :default => :spec
7
+ task :test => :spec
@@ -6,7 +6,7 @@ require 'cinch/plugins/weatherman/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "cinch-weatherman"
8
8
  gem.version = Cinch::Weatherman::VERSION
9
- gem.authors = ["Brian Haberer"]
9
+ gem.authors = ["Brian Haberer", "Paul Visscher"]
10
10
  gem.email = ["bhaberer@gmail.com"]
11
11
  gem.description = %q{Cinch Plugin to get Weather data using the Weather-Underground gem}
12
12
  gem.summary = %q{Cinch Plugin to get Weather data}
@@ -17,8 +17,13 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_dependency 'cinch', '>= 2.0.0'
21
- gem.add_dependency 'weather-underground', '>= 1.1.1'
22
- gem.add_dependency 'time-lord', '1.0.1'
20
+ gem.add_development_dependency 'rake'
21
+ gem.add_development_dependency 'rspec'
22
+ gem.add_development_dependency 'coveralls'
23
+ gem.add_development_dependency 'cinch-test'
24
+
25
+ gem.add_dependency 'cinch', '~> 2.0.5'
26
+ gem.add_dependency 'weather-underground', '>= 1.1.1'
27
+ gem.add_dependency 'time-lord', '~> 1.0.1'
23
28
  gem.add_dependency 'cinch-cooldown'
24
29
  end
@@ -1,6 +1,2 @@
1
- require 'cinch-cooldown'
2
- require 'time-lord'
3
- require 'weather-underground'
4
-
5
1
  require 'cinch/plugins/weatherman/version'
6
2
  require 'cinch/plugins/weatherman/weatherman'
@@ -1,5 +1,5 @@
1
1
  module Cinch
2
2
  module Weatherman
3
- VERSION = "0.0.1"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
@@ -1,4 +1,9 @@
1
1
  # -*- coding: utf-8 -*-
2
+ require 'cinch'
3
+ require 'cinch-cooldown'
4
+ require 'time-lord'
5
+ require 'weather-underground'
6
+
2
7
  module Cinch::Plugins
3
8
  class Weatherman
4
9
  include Cinch::Plugin
@@ -7,8 +12,8 @@ module Cinch::Plugins
7
12
 
8
13
  self.help = "Use .w <location> to see information on the weather. (e.g. .w 94062)"
9
14
 
10
- match /weather (.*)/
11
15
  match /w (.*)/
16
+ match /weather (.*)/
12
17
 
13
18
  def execute(m, query)
14
19
  m.reply get_weather(query)
@@ -17,24 +22,24 @@ module Cinch::Plugins
17
22
  private
18
23
 
19
24
  def get_weather(query)
20
- @weather = WeatherUnderground::Base.new()
21
- weather_data = @weather.CurrentObservations(query)
22
-
23
- unless weather_data.temp_f == ""
24
- location = weather_data.display_location[0].full
25
- temp_f = weather_data.temp_f
26
- conditions = weather_data.weather.downcase
27
- last_updated = weather_data.observation_time.gsub(/Last Updated on/, "")
28
- last_updated_ago = Time.parse(last_updated).ago.to_words
29
-
30
- message = "In #{location} it is #{conditions} "
31
- message << "and #{temp_f}°F "
32
- message << "(last updated about #{last_updated_ago})"
33
-
34
- return message
35
- else
36
- return "Sorry, couldn't find #{query}."
37
- end
25
+ location, temp_f, conditions, updated = get_forcast(query)
26
+
27
+ message = "In #{location} it is #{conditions} "
28
+ message << "and #{temp_f}°F "
29
+ message << "(last updated about #{updated})"
30
+
31
+ return message
32
+ rescue ArgumentError
33
+ return "Sorry, couldn't find #{query}."
34
+ end
35
+
36
+ def get_forcast(query)
37
+ data = WeatherUnderground::Base.new.CurrentObservations(query)
38
+ weather = [ data.display_location.first.full,
39
+ data.temp_f,
40
+ data.weather.downcase,
41
+ Time.parse(data.observation_time).ago.to_words ]
42
+ return weather
38
43
  end
39
44
  end
40
45
  end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe Cinch::Plugins::Weatherman do
4
+
5
+ include Cinch::Test
6
+
7
+ before(:each) do
8
+ @bot = make_bot(Cinch::Plugins::Weatherman, {})
9
+ end
10
+
11
+ it 'should allow users to ask for weather by zip' do
12
+ msg = make_message(@bot, '!weather 94062')
13
+ get_replies(msg).last.chomp.
14
+ should include('In Redwood City, CA it is')
15
+ end
16
+
17
+ it 'should allow users to ask for weather by city, state' do
18
+ msg = make_message(@bot, '!weather redwood city, ca')
19
+ get_replies(msg).last.chomp.
20
+ should include('In Redwood City, CA it is')
21
+ end
22
+
23
+ it 'should allow users to ask for weather by airport code' do
24
+ msg = make_message(@bot, '!weather SFO')
25
+ get_replies(msg).last.chomp.
26
+ should include('In San Francisco International, CA it is')
27
+ end
28
+
29
+ it 'should return an error when location not found' do
30
+ msg = make_message(@bot, '!weather 34')
31
+ get_replies(msg).last.chomp.
32
+ should include('Sorry, couldn\'t find 34.')
33
+ end
34
+ end
@@ -0,0 +1,5 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+ require 'cinch-weatherman'
4
+ require 'cinch/test'
5
+
metadata CHANGED
@@ -1,32 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cinch-weatherman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brian Haberer
9
+ - Paul Visscher
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-05-06 00:00:00.000000000 Z
13
+ date: 2013-06-26 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
- name: cinch
16
+ name: rake
16
17
  requirement: !ruby/object:Gem::Requirement
17
18
  none: false
18
19
  requirements:
19
20
  - - ! '>='
20
21
  - !ruby/object:Gem::Version
21
- version: 2.0.0
22
- type: :runtime
22
+ version: '0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: rspec
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: coveralls
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
23
56
  prerelease: false
24
57
  version_requirements: !ruby/object:Gem::Requirement
25
58
  none: false
26
59
  requirements:
27
60
  - - ! '>='
28
61
  - !ruby/object:Gem::Version
29
- version: 2.0.0
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: cinch-test
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: cinch
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 2.0.5
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 2.0.5
30
95
  - !ruby/object:Gem::Dependency
31
96
  name: weather-underground
32
97
  requirement: !ruby/object:Gem::Requirement
@@ -48,7 +113,7 @@ dependencies:
48
113
  requirement: !ruby/object:Gem::Requirement
49
114
  none: false
50
115
  requirements:
51
- - - '='
116
+ - - ~>
52
117
  - !ruby/object:Gem::Version
53
118
  version: 1.0.1
54
119
  type: :runtime
@@ -56,7 +121,7 @@ dependencies:
56
121
  version_requirements: !ruby/object:Gem::Requirement
57
122
  none: false
58
123
  requirements:
59
- - - '='
124
+ - - ~>
60
125
  - !ruby/object:Gem::Version
61
126
  version: 1.0.1
62
127
  - !ruby/object:Gem::Dependency
@@ -83,6 +148,7 @@ extensions: []
83
148
  extra_rdoc_files: []
84
149
  files:
85
150
  - .gitignore
151
+ - .travis.yml
86
152
  - Gemfile
87
153
  - LICENSE.txt
88
154
  - README.md
@@ -91,6 +157,8 @@ files:
91
157
  - lib/cinch-weatherman.rb
92
158
  - lib/cinch/plugins/weatherman/version.rb
93
159
  - lib/cinch/plugins/weatherman/weatherman.rb
160
+ - spec/cinch-weatherman_spec.rb
161
+ - spec/spec_helper.rb
94
162
  homepage: https://github.com/canonical-hackers/cinch-weatherman
95
163
  licenses: []
96
164
  post_install_message:
@@ -115,4 +183,7 @@ rubygems_version: 1.8.24
115
183
  signing_key:
116
184
  specification_version: 3
117
185
  summary: Cinch Plugin to get Weather data
118
- test_files: []
186
+ test_files:
187
+ - spec/cinch-weatherman_spec.rb
188
+ - spec/spec_helper.rb
189
+ has_rdoc: