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 +7 -0
- data/.document +5 -0
- data/Gemfile +18 -0
- data/README.rdoc +14 -0
- data/Rakefile +45 -0
- data/VERSION +1 -0
- data/lib/robut-eightball.rb +37 -0
- data/robut-eightball.gemspec +72 -0
- data/test/connection_mock.rb +22 -0
- data/test/helper.rb +18 -0
- data/test/presence_mock.rb +25 -0
- data/test/simplecov_helper.rb +2 -0
- data/test/test_helper.rb +9 -0
- data/test/test_robut-eightball.rb +31 -0
- metadata +169 -0
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
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
|
data/test/test_helper.rb
ADDED
@@ -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: []
|