robut-eightball 0.1.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9554bc6530b67a80693ac1642871dbeb3e628529
4
+ data.tar.gz: 4a99c9ed0cdcecf3f5df12a7abe2b42cbcf55d5b
5
+ SHA512:
6
+ metadata.gz: 49406aa491f5fa250742fd51a8f7f7470f340b657ec428e0d505d99053a7d85bd8bea51b1df111d2100b51f1fe7a5cffa58e7bdc514949ae65d95ce730428b3c
7
+ data.tar.gz: b25afbb5b554332df6d9bf4f754e66ed913f57fe231a870b5a69fce3952234d19250a43c2c4e0b1d98b40703231f3a66e3cf1ae03cf428ae25ad6ad313f2e04e
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/Gemfile ADDED
@@ -0,0 +1,18 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ gem "robut", ">= 0.4"
7
+ gem "calc"
8
+
9
+ # Add dependencies to develop your gem here.
10
+ # Include everything needed to run rake, tests, features, etc.
11
+ group :development do
12
+ gem "simplecov"
13
+ gem "shoulda", ">= 0"
14
+ gem "rdoc", "~> 3.12"
15
+ gem "bundler", "~> 1.0"
16
+ gem "jeweler", "~> 1.8.7"
17
+ gem "mocha"
18
+ end
data/README.rdoc ADDED
@@ -0,0 +1,14 @@
1
+ = robut-eightball
2
+
3
+ An 8 Ball module for [Robut](https://github.com/justinweiss/robut)
4
+
5
+ == Contributing to robut-eightball
6
+
7
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
8
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
9
+ * Fork the project.
10
+ * Start a feature/bugfix branch.
11
+ * Commit and push until you are happy with your contribution.
12
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
14
+
data/Rakefile ADDED
@@ -0,0 +1,45 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
+ gem.name = "robut-eightball"
18
+ gem.homepage = "http://github.com/richard4339/robut-eightball"
19
+ gem.license = "MIT"
20
+ gem.summary = %Q{A simple 8ball plugin for robut}
21
+ gem.description = %Q{An 8ball plugin for robut}
22
+ gem.email = "richard@mozor.net"
23
+ gem.authors = ["Richard Lynskey"]
24
+ # dependencies defined in Gemfile
25
+ end
26
+ Jeweler::RubygemsDotOrgTasks.new
27
+
28
+ require 'rake/testtask'
29
+ Rake::TestTask.new(:test) do |test|
30
+ test.libs << 'lib' << 'test'
31
+ test.pattern = 'test/**/test_*.rb'
32
+ test.verbose = true
33
+ end
34
+
35
+ task :default => :test
36
+
37
+ require 'rdoc/task'
38
+ Rake::RDocTask.new do |rdoc|
39
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
40
+
41
+ rdoc.rdoc_dir = 'rdoc'
42
+ rdoc.title = "robut-magic8ball #{version}"
43
+ rdoc.rdoc_files.include('README*')
44
+ rdoc.rdoc_files.include('lib/**/*.rb')
45
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.1
@@ -0,0 +1,37 @@
1
+ require 'calc'
2
+
3
+ # 8 Ball
4
+ class Robut::Plugin::EightBall
5
+ include Robut::Plugin
6
+
7
+ desc "8ball <question> - respond with an 8ball response"
8
+ match /^8ball (.*)/, :sent_to_me => true do |message|
9
+ answers = ["It is certain",
10
+ "It is decidedly so",
11
+ "Without a doubt",
12
+ "Yes definitely",
13
+ "You may rely on it",
14
+ "As I see it yes",
15
+ "Most likely",
16
+ "Outlook good",
17
+ "Yes",
18
+ "Signs point to yes",
19
+ "Reply hazy try again",
20
+ "Ask again later",
21
+ "Better not tell you now",
22
+ "Cannot predict now",
23
+ "Concentrate and ask again",
24
+ "Don't count on it",
25
+ "My reply is no",
26
+ "My sources say no",
27
+ "Outlook not so good",
28
+ "Very doubtful"]
29
+ rsp = answers[random(answers.length)]
30
+ reply("#{rsp}") if rsp
31
+ end
32
+
33
+ def random(c)
34
+ rand(c)
35
+ end
36
+
37
+ end
@@ -0,0 +1,72 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "robut-eightball"
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Richard Lynskey"]
12
+ s.date = "2013-12-21"
13
+ s.description = "An 8ball plugin for robut"
14
+ s.email = "richard@mozor.net"
15
+ s.extra_rdoc_files = [
16
+ "README.rdoc"
17
+ ]
18
+ s.files = [
19
+ ".document",
20
+ "Gemfile",
21
+ "README.rdoc",
22
+ "Rakefile",
23
+ "VERSION",
24
+ "lib/robut-eightball.rb",
25
+ "robut-eightball.gemspec",
26
+ "test/connection_mock.rb",
27
+ "test/helper.rb",
28
+ "test/presence_mock.rb",
29
+ "test/simplecov_helper.rb",
30
+ "test/test_helper.rb",
31
+ "test/test_robut-eightball.rb"
32
+ ]
33
+ s.homepage = "http://github.com/richard4339/robut-eightball"
34
+ s.licenses = ["MIT"]
35
+ s.require_paths = ["lib"]
36
+ s.rubygems_version = "2.0.3"
37
+ s.summary = "A simple 8ball plugin for robut"
38
+
39
+ if s.respond_to? :specification_version then
40
+ s.specification_version = 4
41
+
42
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
+ s.add_runtime_dependency(%q<robut>, [">= 0.4"])
44
+ s.add_runtime_dependency(%q<calc>, [">= 0"])
45
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
46
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
47
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
48
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
49
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.7"])
50
+ s.add_development_dependency(%q<mocha>, [">= 0"])
51
+ else
52
+ s.add_dependency(%q<robut>, [">= 0.4"])
53
+ s.add_dependency(%q<calc>, [">= 0"])
54
+ s.add_dependency(%q<simplecov>, [">= 0"])
55
+ s.add_dependency(%q<shoulda>, [">= 0"])
56
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
57
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
58
+ s.add_dependency(%q<jeweler>, ["~> 1.8.7"])
59
+ s.add_dependency(%q<mocha>, [">= 0"])
60
+ end
61
+ else
62
+ s.add_dependency(%q<robut>, [">= 0.4"])
63
+ s.add_dependency(%q<calc>, [">= 0"])
64
+ s.add_dependency(%q<simplecov>, [">= 0"])
65
+ s.add_dependency(%q<shoulda>, [">= 0"])
66
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
67
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
68
+ s.add_dependency(%q<jeweler>, ["~> 1.8.7"])
69
+ s.add_dependency(%q<mocha>, [">= 0"])
70
+ end
71
+ end
72
+
@@ -0,0 +1,22 @@
1
+ require 'robut/storage/hash_store'
2
+
3
+ class Robut::ConnectionMock < Robut::Connection
4
+
5
+ attr_accessor :messages
6
+
7
+ def initialize(config = nil)
8
+ self.messages = []
9
+ self.config = config || self.class.config
10
+ self.store = Robut::Storage::HashStore
11
+ self.client = Jabber::Client.new ''
12
+ end
13
+
14
+ def connect
15
+ self.rooms = []
16
+ self
17
+ end
18
+
19
+ def reply(message, to)
20
+ self.messages << [message, to]
21
+ end
22
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,18 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'test/unit'
11
+ require 'shoulda'
12
+
13
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
15
+ require 'robut-roulette'
16
+
17
+ class Test::Unit::TestCase
18
+ end
@@ -0,0 +1,25 @@
1
+ require 'robut/storage/hash_store'
2
+
3
+ class Robut::PresenceMock < Robut::Room
4
+
5
+ def initialize(connection)
6
+ self.connection = connection
7
+ end
8
+
9
+ def replies
10
+ @replies ||= []
11
+ end
12
+
13
+ def reply(msg, to = nil)
14
+ replies << msg
15
+ end
16
+
17
+ def handle_message(plugins, time, nick, message)
18
+ messages << [time, nick, message]
19
+ end
20
+
21
+ def messages
22
+ @messages ||= []
23
+ end
24
+
25
+ end
@@ -0,0 +1,2 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
@@ -0,0 +1,9 @@
1
+ require 'robut'
2
+ require 'test/unit'
3
+ require 'presence_mock'
4
+ require 'connection_mock'
5
+
6
+ Robut::ConnectionMock.configure do |config|
7
+ config.nick = "Robut t. Robot"
8
+ config.mention_name = "robut"
9
+ end
@@ -0,0 +1,31 @@
1
+ require 'test_helper'
2
+ require 'robut'
3
+ require 'robut-eightball'
4
+ require 'mocha/setup'
5
+
6
+ class Robut::Plugin::EightBallTest < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @connection = Robut::ConnectionMock.new
10
+ @presence = Robut::PresenceMock.new(@connection)
11
+ @plugin = Robut::Plugin::EightBall.new(@presence)
12
+ end
13
+
14
+ def test_handle_8ball_no_robut
15
+ @plugin.stubs(:random).returns(1)
16
+ @plugin.handle(Time.now, "John", "8ball something")
17
+ assert_equal( [], @plugin.reply_to.replies )
18
+ end
19
+
20
+ def test_handle_8ball_no_question
21
+ @plugin.stubs(:random).returns(1)
22
+ @plugin.handle(Time.now, "John", "@robut 8ball")
23
+ assert_equal( [], @plugin.reply_to.replies )
24
+ end
25
+
26
+ def test_handle_8ball_normal
27
+ @plugin.stubs(:random).returns(1)
28
+ @plugin.handle(Time.now, "John", "@robut 8ball something")
29
+ assert_equal( ["It is decidedly so"], @plugin.reply_to.replies )
30
+ end
31
+ end
metadata ADDED
@@ -0,0 +1,169 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: robut-eightball
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Richard Lynskey
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-12-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: robut
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0.4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: calc
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: simplecov
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: shoulda
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: rdoc
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '3.12'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '3.12'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '1.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '1.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: jeweler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: 1.8.7
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 1.8.7
111
+ - !ruby/object:Gem::Dependency
112
+ name: mocha
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: An 8ball plugin for robut
126
+ email: richard@mozor.net
127
+ executables: []
128
+ extensions: []
129
+ extra_rdoc_files:
130
+ - README.rdoc
131
+ files:
132
+ - .document
133
+ - Gemfile
134
+ - README.rdoc
135
+ - Rakefile
136
+ - VERSION
137
+ - lib/robut-eightball.rb
138
+ - robut-eightball.gemspec
139
+ - test/connection_mock.rb
140
+ - test/helper.rb
141
+ - test/presence_mock.rb
142
+ - test/simplecov_helper.rb
143
+ - test/test_helper.rb
144
+ - test/test_robut-eightball.rb
145
+ homepage: http://github.com/richard4339/robut-eightball
146
+ licenses:
147
+ - MIT
148
+ metadata: {}
149
+ post_install_message:
150
+ rdoc_options: []
151
+ require_paths:
152
+ - lib
153
+ required_ruby_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ required_rubygems_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - '>='
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ requirements: []
164
+ rubyforge_project:
165
+ rubygems_version: 2.0.3
166
+ signing_key:
167
+ specification_version: 4
168
+ summary: A simple 8ball plugin for robut
169
+ test_files: []