hack_bot 0.0.4 → 0.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 96f0aea0511eae56081c19056701a3847d8e9b03
4
- data.tar.gz: 401baa48c43b7e62d21c4a26afa2c32ca8fff5e4
3
+ metadata.gz: 257319c89fb8f2c69e742d9565d4c4028ad1e6e8
4
+ data.tar.gz: 4f97822b42466a749b568676ffc78b91ead5194c
5
5
  SHA512:
6
- metadata.gz: 72156eee59c3ef57f734e462650d1839015d2a9870e66ea4f0adc76f0c4abdb13c7ec2c7f0324dd07a037e600069347a135141c8c15d549a948370d0471f7fe3
7
- data.tar.gz: e53e67b30c5faa7f19d7b5103e721ca94993404521d7f4d5b3fb18343432223a4514fbd8909ae883d367b3a322d547315bc92fd4445c8cd4692abc5e7ad8d190
6
+ metadata.gz: 76cd96702679f6c0dfd683f3ee5c67fabb55f6edc930a19b6f02cca0c49f5847cfbfc4bc8d51c8b85acd2404f502d84a81b08d8dee59dfb966406d9539a3c122
7
+ data.tar.gz: 191525fcc094234436f2cfa411ba95035cabb60bcb900f6fcbf4121d7a9ee09abf111447d34b6f76097d4211bdb6ee40281c221099478bcbad7fe0f8a182e029
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
@@ -0,0 +1,19 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.0
4
+ - 1.9.3
5
+ - 1.9.2
6
+ - 1.8.7
7
+ - jruby-18mode
8
+ - jruby-19mode
9
+ - rbx
10
+ - ruby-head
11
+ - jruby-head
12
+ - ree
13
+ matrix:
14
+ allow_failures:
15
+ - rvm: 1.9.2
16
+ - rvm: 1.8.7
17
+ - rvm: ree
18
+ - rvm: jruby-18mode
19
+ fast_finish: true
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # HackBot
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/hack_bot.png)](http://badge.fury.io/rb/hack_bot) [![Build Status](https://travis-ci.org/geopet/hack_bot.png?branch=master)](https://travis-ci.org/geopet/hack_bot)
4
+
3
5
  The HackBot gem is a project for
4
6
  [OpenHackABQ](http://openhack.github.io/albuquerque/), but is open enough to be
5
7
  used by anyone.
data/Rakefile CHANGED
@@ -1 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.5"
22
22
  spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rspec"
24
+ spec.add_development_dependency "cinch-test"
23
25
 
24
26
  spec.add_runtime_dependency "cinch"
25
27
  end
@@ -1,6 +1,7 @@
1
- require "hack_bot/version"
2
1
  require 'cinch'
3
- require 'hack_bot/channel_interaction'
2
+ require 'hack_bot/version'
3
+ require 'hack_bot/plugins/channel_interaction'
4
+ require 'hack_bot/plugins/event'
4
5
 
5
6
  module HackBot
6
7
  def self.start(server, channels, nick, realname, user)
@@ -11,7 +12,8 @@ module HackBot
11
12
  c.nick = nick
12
13
  c.realname = realname
13
14
  c.user = user
14
- c.plugins.plugins = [ChannelInteractions]
15
+ c.plugins.plugins = [HackBot::Plugins::ChannelInteraction,
16
+ HackBot::Plugins::Event]
15
17
  end
16
18
  end
17
19
 
@@ -0,0 +1,26 @@
1
+ require 'cinch'
2
+
3
+ module HackBot::Plugins
4
+ class ChannelInteraction
5
+ include Cinch::Plugin
6
+
7
+ match 'hello', use_prefix: false, react_on: :message, method: :hello
8
+ match /nachos/i, use_prefix: false, react_on: :channel, method: :nachos
9
+ match /who (.+)/i, react_on: :channel, method: :who_info
10
+
11
+ def hello(m)
12
+ user = m.user
13
+ m.reply "Hello, #{user}! Welcome to #openhackabq!"
14
+ end
15
+
16
+ def nachos(m)
17
+ user = m.user
18
+ m.reply "I love nachos, too! I'll make you some, #{user}!"
19
+ end
20
+
21
+ def who_info(m, nick)
22
+ user = User(nick)
23
+ m.reply "#{nick} is #{user.realname}."
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,13 @@
1
+ require 'cinch'
2
+
3
+ module HackBot::Plugins
4
+ class Event
5
+ include Cinch::Plugin
6
+
7
+ match 'next meeting', react_on: :channel, method: :next_meeting
8
+
9
+ def next_meeting(m)
10
+ m.reply "The next meeting will be starting #{TIME} on #{DATE} at #{LOCATION}."
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ require 'cinch'
2
+
3
+ module Cinch::Plugin::HackBot
4
+ class Freak
5
+ include Cinch::Plugin
6
+ on :message, /^!freak (.+)/ do |m, nick|
7
+ debug 'Freak is active'
8
+ User(geopet).send "You know I'm watching you right now, right, #{nick}?"
9
+ User(geopet).send "I know what you did last summer"
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module HackBot
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe HackBot::Plugins::ChannelInteraction do
4
+ include Cinch::Test
5
+ include HackBot::Event
6
+
7
+ before(:each) do
8
+ @bot = make_bot(HackBot::Plugins::ChannelInteraction)
9
+ end
10
+
11
+ it 'prints information about the next meeting' do
12
+ TIME = '6:00pm'
13
+ DATE = 'January 1, 2014'
14
+ LOCATION = 'Convivium Coworking'
15
+
16
+ message = make_message(@bot, '!next meeting')
17
+ expect(get_replies(message, :channel).first.text).to eq("The next meeting will be starting 6:00pm on January 1, 2014 at Convivium Coworking.")
18
+ end
19
+
20
+ it 'replies to a lone hello' do
21
+ message = make_message(@bot, 'hello', { :nick => 'foo' })
22
+ expect(get_replies(message).first.text).to eq('Hello, foo! Welcome to #openhackabq!')
23
+ end
24
+
25
+ it 'likes nachos like everyone else does' do
26
+ message = make_message(@bot, 'nachos', { :nick => 'foo' })
27
+ expect(get_replies(message, :channel).first.text).to eq("I love nachos, too! I'll make you some, foo!")
28
+ end
29
+
30
+ it 'will inform you of a who request' do
31
+ pending "Uncertain about the best way to test this."
32
+ end
33
+ end
@@ -0,0 +1,19 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+ RSpec.configure do |config|
8
+ config.treat_symbols_as_metadata_keys_with_true_values = true
9
+ config.run_all_when_everything_filtered = true
10
+ config.filter_run :focus
11
+ require 'hack_bot'
12
+ require 'cinch/test'
13
+
14
+ # Run specs in random order to surface order dependencies. If you find an
15
+ # order dependency and want to debug it, you can fix the order by providing
16
+ # the seed, which is printed after each run.
17
+ # --seed 1234
18
+ config.order = 'random'
19
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hack_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoff Petrie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-27 00:00:00.000000000 Z
11
+ date: 2014-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,34 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
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: cinch-test
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'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: cinch
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -61,14 +89,20 @@ extensions: []
61
89
  extra_rdoc_files: []
62
90
  files:
63
91
  - ".gitignore"
92
+ - ".rspec"
93
+ - ".travis.yml"
64
94
  - Gemfile
65
95
  - LICENSE.txt
66
96
  - README.md
67
97
  - Rakefile
68
98
  - hack_bot.gemspec
69
99
  - lib/hack_bot.rb
70
- - lib/hack_bot/channel_interaction.rb
100
+ - lib/hack_bot/plugins/channel_interaction.rb
101
+ - lib/hack_bot/plugins/event.rb
102
+ - lib/hack_bot/plugins/freak.rb
71
103
  - lib/hack_bot/version.rb
104
+ - spec/hack_bot/channel_interaction_spec.rb
105
+ - spec/spec_helper.rb
72
106
  homepage: https://github.com/geopet/hack_bot
73
107
  licenses:
74
108
  - MIT
@@ -93,4 +127,6 @@ rubygems_version: 2.2.2
93
127
  signing_key:
94
128
  specification_version: 4
95
129
  summary: 'An irc bot for #openhackabq on freenode, but reusable for anyone.'
96
- test_files: []
130
+ test_files:
131
+ - spec/hack_bot/channel_interaction_spec.rb
132
+ - spec/spec_helper.rb
@@ -1,27 +0,0 @@
1
- require 'cinch'
2
-
3
- class ChannelInteractions
4
- include Cinch::Plugin
5
-
6
- match 'hello', use_prefix: false, react_on: :message, method: :hello
7
- match /nachos/i, use_prefix: false, react_on: :channel, method: :nachos
8
- match /who (.+)/i, react_on: :channel, method: :who_info
9
- match 'next meeting', react_on: :channel, method: :next_meeting
10
-
11
- def hello(m)
12
- m.reply "Hello, #{m.user.nick}! Welcome to #openhackabq!"
13
- end
14
-
15
- def nachos(m)
16
- m.reply "I love nachos, too! I'll make you some, #{m.user.nick}!"
17
- end
18
-
19
- def who_info(m, nick)
20
- user = User(nick)
21
- m.reply "#{nick} is #{user.realname}."
22
- end
23
-
24
- def next_meeting(m)
25
- m.reply "The next meeting will be starting #{Event::EVENT_TIME} on #{Event::EVENT_DATE} at #{Event::EVENT_LOCATION}."
26
- end
27
- end