cinch-calculate 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.
- data/.travis.yml +6 -0
- data/Gemfile +1 -0
- data/README.md +12 -0
- data/Rakefile +6 -0
- data/cinch-calculate.gemspec +6 -1
- data/lib/cinch/plugins/calculate/calculate.rb +3 -7
- data/lib/cinch/plugins/calculate/version.rb +1 -1
- data/spec/cinch-calculate_spec.rb +27 -0
- data/spec/spec_helper.rb +5 -0
- metadata +75 -4
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# Cinch::Plugins::Calculate
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/cinch-calculate)
|
4
|
+
[](https://gemnasium.com/canonical-hackers/cinch-calculate)
|
5
|
+
[](https://travis-ci.org/canonical-hackers/cinch-calculate)
|
6
|
+
[](https://coveralls.io/r/canonical-hackers/cinch-calculate?branch=master)
|
7
|
+
[](https://codeclimate.com/github/canonical-hackers/cinch-calculate)
|
8
|
+
|
3
9
|
Plugin that alows users to find the answers to math problems.
|
4
10
|
|
5
11
|
## Installation
|
@@ -35,6 +41,12 @@ alternate location.
|
|
35
41
|
|
36
42
|
Once that's all done, just use .math in the channel.
|
37
43
|
|
44
|
+
17:31 <@xentrac> .math 1000 W/m^2 * pi * earthradius^2
|
45
|
+
17:31 < marvin> xentrac: 1.2751652e+17 kg m^2 / s^3
|
46
|
+
17:31 <@xentrac> .math (1000 W/m^2 * pi * earthradius^2) / (quadrillion btu / year)
|
47
|
+
17:31 < marvin> xentrac: 3814043.9
|
48
|
+
|
49
|
+
|
38
50
|
## Contributing
|
39
51
|
|
40
52
|
1. Fork it
|
data/Rakefile
CHANGED
data/cinch-calculate.gemspec
CHANGED
@@ -6,7 +6,7 @@ require 'cinch/plugins/calculate/version'
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
7
|
gem.name = "cinch-calculate"
|
8
8
|
gem.version = Cinch::Plugins::Calculate::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 alow users to pass mathematical problems to the bot for evaluation}
|
12
12
|
gem.summary = %q{Cinch Plugin for Math}
|
@@ -16,4 +16,9 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
|
+
|
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'
|
19
24
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'cinch'
|
2
|
+
|
1
3
|
module Cinch::Plugins
|
2
4
|
class Calculate
|
3
5
|
include Cinch::Plugin
|
@@ -19,15 +21,9 @@ module Cinch::Plugins
|
|
19
21
|
|
20
22
|
def math(problem_string)
|
21
23
|
return 'Sorry, I can\'t do that' unless units_binary_exists?
|
22
|
-
|
23
|
-
units_output = IO.popen([@units_path, "-t", problem_string])
|
24
|
-
|
25
|
-
return units_output.readline.chomp!
|
24
|
+
return IO.popen([@units_path, "-t", problem_string]).readline
|
26
25
|
rescue EOFError
|
27
|
-
# If you don't have GNU Units installed you will get this error.
|
28
|
-
debug "Your copy of Units did not produce useful output."
|
29
26
|
debug "Make sure you have GNU Units installed and not the BSD Units that ships with OSX."
|
30
|
-
return 'Sorry, I can\'t do that'
|
31
27
|
end
|
32
28
|
|
33
29
|
def units_binary_exists?
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Cinch::Plugins::Calculate do
|
4
|
+
|
5
|
+
include Cinch::Test
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
@bot = make_bot(Cinch::Plugins::Calculate)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'configuration' do
|
12
|
+
it 'should handle units binary not existing gracefully' do
|
13
|
+
@bot = make_bot(Cinch::Plugins::Calculate, { :units_path => '/usr/baddir/units' })
|
14
|
+
msg = make_message(@bot, '!math 2 + 2')
|
15
|
+
|
16
|
+
get_replies(msg).last.chomp.
|
17
|
+
should == 'test: Sorry, I can\'t do that'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should allow basic math' do
|
22
|
+
msg = make_message(@bot, '!math 2 + 2')
|
23
|
+
|
24
|
+
get_replies(msg).last.chomp.
|
25
|
+
should == 'test: 4'
|
26
|
+
end
|
27
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,16 +1,81 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cinch-calculate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
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-
|
13
|
-
dependencies:
|
13
|
+
date: 2013-06-26 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rake
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
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
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
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'
|
14
79
|
description: Cinch Plugin to alow users to pass mathematical problems to the bot for
|
15
80
|
evaluation
|
16
81
|
email:
|
@@ -20,6 +85,7 @@ extensions: []
|
|
20
85
|
extra_rdoc_files: []
|
21
86
|
files:
|
22
87
|
- .gitignore
|
88
|
+
- .travis.yml
|
23
89
|
- Gemfile
|
24
90
|
- LICENSE.txt
|
25
91
|
- README.md
|
@@ -28,6 +94,8 @@ files:
|
|
28
94
|
- lib/cinch-calculate.rb
|
29
95
|
- lib/cinch/plugins/calculate/calculate.rb
|
30
96
|
- lib/cinch/plugins/calculate/version.rb
|
97
|
+
- spec/cinch-calculate_spec.rb
|
98
|
+
- spec/spec_helper.rb
|
31
99
|
homepage: https://github.com/canonical-hackers/cinch-calculate
|
32
100
|
licenses: []
|
33
101
|
post_install_message:
|
@@ -52,4 +120,7 @@ rubygems_version: 1.8.24
|
|
52
120
|
signing_key:
|
53
121
|
specification_version: 3
|
54
122
|
summary: Cinch Plugin for Math
|
55
|
-
test_files:
|
123
|
+
test_files:
|
124
|
+
- spec/cinch-calculate_spec.rb
|
125
|
+
- spec/spec_helper.rb
|
126
|
+
has_rdoc:
|