hack_bot 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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