cinch-calculate 1.0.0 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +0 -1
- data/README.md +3 -3
- data/cinch-calculate.gemspec +9 -5
- data/lib/cinch-calculate.rb +2 -1
- data/lib/cinch/plugins/{calculate/calculate.rb → calculate.rb} +11 -4
- data/lib/cinch/plugins/calculate/version.rb +3 -1
- data/spec/cinch-calculate_spec.rb +2 -6
- data/spec/spec_helper.rb +8 -2
- metadata +38 -5
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -39,11 +39,11 @@ alternate location.
|
|
39
39
|
|
40
40
|
c.plugins.options[Cinch::Plugins::Calculate][:units_path] = '/usr/bin/gunits'
|
41
41
|
|
42
|
-
Once that's all done, just use
|
42
|
+
Once that's all done, just use !math in the channel.
|
43
43
|
|
44
|
-
17:31 <@xentrac>
|
44
|
+
17:31 <@xentrac> !math 1000 W/m^2 * pi * earthradius^2
|
45
45
|
17:31 < marvin> xentrac: 1.2751652e+17 kg m^2 / s^3
|
46
|
-
17:31 <@xentrac>
|
46
|
+
17:31 <@xentrac> !math (1000 W/m^2 * pi * earthradius^2) / (quadrillion btu / year)
|
47
47
|
17:31 < marvin> xentrac: 3814043.9
|
48
48
|
|
49
49
|
|
data/cinch-calculate.gemspec
CHANGED
@@ -4,21 +4,25 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'cinch/plugins/calculate/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
|
-
gem.name =
|
7
|
+
gem.name = 'cinch-calculate'
|
8
8
|
gem.version = Cinch::Plugins::Calculate::VERSION
|
9
|
-
gem.authors = [
|
10
|
-
gem.email = [
|
9
|
+
gem.authors = ['Brian Haberer', 'Paul Visscher']
|
10
|
+
gem.email = ['bhaberer@gmail.com']
|
11
11
|
gem.description = %q{Cinch Plugin to alow users to pass mathematical problems to the bot for evaluation}
|
12
12
|
gem.summary = %q{Cinch Plugin for Math}
|
13
|
-
gem.homepage =
|
13
|
+
gem.homepage = 'https://github.com/canonical-hackers/cinch-calculate'
|
14
|
+
gem.license = 'MIT'
|
14
15
|
|
15
16
|
gem.files = `git ls-files`.split($/)
|
16
17
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
-
gem.require_paths = [
|
19
|
+
gem.require_paths = ['lib']
|
19
20
|
|
20
21
|
gem.add_development_dependency 'rake'
|
21
22
|
gem.add_development_dependency 'rspec'
|
22
23
|
gem.add_development_dependency 'coveralls'
|
23
24
|
gem.add_development_dependency 'cinch-test'
|
25
|
+
|
26
|
+
gem.add_dependency 'cinch', '~> 2.0.12'
|
27
|
+
gem.add_dependency 'cinch-cooldown', '~> 1.1.1'
|
24
28
|
end
|
data/lib/cinch-calculate.rb
CHANGED
@@ -1,10 +1,16 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
1
2
|
require 'cinch'
|
3
|
+
require 'cinch/cooldown'
|
2
4
|
|
3
5
|
module Cinch::Plugins
|
6
|
+
# Cinch plugin to allow complex math calculations to be done.
|
4
7
|
class Calculate
|
5
8
|
include Cinch::Plugin
|
6
9
|
|
7
|
-
self.help =
|
10
|
+
self.help = 'Use .math <problem> to do math computations.' +
|
11
|
+
'(e.g. 5 feet / inches, .math sin(2) + 4)'
|
12
|
+
|
13
|
+
enforce_cooldown
|
8
14
|
|
9
15
|
match /math (.+)/
|
10
16
|
|
@@ -21,14 +27,15 @@ module Cinch::Plugins
|
|
21
27
|
|
22
28
|
def math(problem_string)
|
23
29
|
return 'Sorry, I can\'t do that' unless units_binary_exists?
|
24
|
-
return IO.popen([@units_path, "-t", problem_string]).readline
|
30
|
+
return IO.popen([@units_path, "-t", problem_string]).readline.chomp
|
25
31
|
rescue EOFError
|
26
|
-
debug
|
32
|
+
debug 'Make sure you have GNU Units installed ' +
|
33
|
+
'and not the BSD Units that ships with OSX.'
|
27
34
|
end
|
28
35
|
|
29
36
|
def units_binary_exists?
|
30
37
|
return true if File.exist? @units_path
|
31
|
-
debug
|
38
|
+
debug 'Cinch can\'t find the unit conversion binary.'
|
32
39
|
false
|
33
40
|
end
|
34
41
|
end
|
@@ -11,17 +11,13 @@ describe Cinch::Plugins::Calculate do
|
|
11
11
|
describe 'configuration' do
|
12
12
|
it 'should handle units binary not existing gracefully' do
|
13
13
|
@bot = make_bot(Cinch::Plugins::Calculate, { :units_path => '/usr/baddir/units' })
|
14
|
-
|
15
|
-
|
16
|
-
get_replies(msg).last.chomp.
|
14
|
+
get_replies(make_message(@bot, '!math 2 + 2')).last.text.
|
17
15
|
should == 'test: Sorry, I can\'t do that'
|
18
16
|
end
|
19
17
|
end
|
20
18
|
|
21
19
|
it 'should allow basic math' do
|
22
|
-
|
23
|
-
|
24
|
-
get_replies(msg).last.chomp.
|
20
|
+
get_replies(make_message(@bot, '!math 2 + 2')).last.text.
|
25
21
|
should == 'test: 4'
|
26
22
|
end
|
27
23
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
require 'coveralls'
|
2
|
-
|
2
|
+
require 'simplecov'
|
3
|
+
|
4
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
5
|
+
SimpleCov::Formatter::HTMLFormatter,
|
6
|
+
Coveralls::SimpleCov::Formatter
|
7
|
+
]
|
8
|
+
SimpleCov.start
|
9
|
+
|
3
10
|
require 'cinch-calculate'
|
4
11
|
require 'cinch/test'
|
5
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cinch-calculate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2014-02-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
@@ -76,6 +76,38 @@ dependencies:
|
|
76
76
|
- - ! '>='
|
77
77
|
- !ruby/object:Gem::Version
|
78
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.12
|
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.12
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: cinch-cooldown
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ~>
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 1.1.1
|
103
|
+
type: :runtime
|
104
|
+
prerelease: false
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.1.1
|
79
111
|
description: Cinch Plugin to alow users to pass mathematical problems to the bot for
|
80
112
|
evaluation
|
81
113
|
email:
|
@@ -92,12 +124,13 @@ files:
|
|
92
124
|
- Rakefile
|
93
125
|
- cinch-calculate.gemspec
|
94
126
|
- lib/cinch-calculate.rb
|
95
|
-
- lib/cinch/plugins/calculate
|
127
|
+
- lib/cinch/plugins/calculate.rb
|
96
128
|
- lib/cinch/plugins/calculate/version.rb
|
97
129
|
- spec/cinch-calculate_spec.rb
|
98
130
|
- spec/spec_helper.rb
|
99
131
|
homepage: https://github.com/canonical-hackers/cinch-calculate
|
100
|
-
licenses:
|
132
|
+
licenses:
|
133
|
+
- MIT
|
101
134
|
post_install_message:
|
102
135
|
rdoc_options: []
|
103
136
|
require_paths:
|
@@ -116,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
149
|
version: '0'
|
117
150
|
requirements: []
|
118
151
|
rubyforge_project:
|
119
|
-
rubygems_version: 1.8.
|
152
|
+
rubygems_version: 1.8.25
|
120
153
|
signing_key:
|
121
154
|
specification_version: 3
|
122
155
|
summary: Cinch Plugin for Math
|