camper_van 0.0.1 → 0.0.2

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/.rvmrc CHANGED
@@ -4,11 +4,31 @@
4
4
  # development environment upon cd'ing into the directory
5
5
 
6
6
  # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
7
- environment_id="ruby-1.9.2-p180@camper_van"
7
+ environment_id="ruby-1.9.3-p0@camper_van"
8
+
9
+ #
10
+ # Uncomment the following lines if you want to verify rvm version per project
11
+ #
12
+ # rvmrc_rvm_version="1.10.1" # 1.10.1 seams as a safe start
13
+ # eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || {
14
+ # echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading."
15
+ # return 1
16
+ # }
17
+ #
18
+
19
+ #
20
+ # Uncomment following line if you want options to be set only for given project.
21
+ #
22
+ # PROJECT_JRUBY_OPTS=( --1.9 )
23
+ #
24
+ # The variable PROJECT_JRUBY_OPTS requires the following to be run in shell:
25
+ #
26
+ # chmod +x ${rvm_path}/hooks/after_use_jruby_opts
27
+ #
8
28
 
9
29
  #
10
30
  # First we attempt to load the desired environment directly from the environment
11
- # file. This is very fast and efficicent compared to running through the entire
31
+ # file. This is very fast and efficient compared to running through the entire
12
32
  # CLI and selector. If you want feedback on which environment was used then
13
33
  # insert the word 'use' after --create as this triggers verbose mode.
14
34
  #
@@ -17,15 +37,16 @@ if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
17
37
  then
18
38
  \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
19
39
 
20
- if [[ -s ".rvm/hooks/after_use" ]]
40
+ if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]]
21
41
  then
22
- . ".rvm/hooks/after_use"
42
+ . "${rvm_path:-$HOME/.rvm}/hooks/after_use"
23
43
  fi
24
44
  else
25
45
  # If the environment file has not yet been created, use the RVM CLI to select.
26
46
  if ! rvm --create use "$environment_id"
27
47
  then
28
- echo "Failed to create RVM environment 'ruby-1.9.2-p180@campervan'."
48
+ echo "Failed to create RVM environment '${environment_id}'."
49
+ return 1
29
50
  fi
30
51
  fi
31
52
 
@@ -35,26 +56,26 @@ fi
35
56
  # necessary.
36
57
  #
37
58
  # filename=".gems"
38
- # if [[ -s "$filename" ]] ; then
59
+ # if [[ -s "$filename" ]]
60
+ # then
39
61
  # rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
40
62
  # fi
41
63
 
42
- #
43
- # If you use bundler and would like to run bundle each time you enter the
44
- # directory, you can uncomment the following code.
45
- #
46
- # export PATH="./bin:/Users/nathan/.rvm/gems/ruby-1.9.2-p180@camper_van/bin:/Users/nathan/.rvm/gems/ruby-1.9.2-p180@global/bin:/Users/nathan/.rvm/rubies/ruby-1.9.2-p180/bin:/Users/nathan/.rvm/bin:/Users/nathan/bin:/Users/nathan/scripts:/usr/local/bin:/usr/local/sbin:/usr/local/share/python:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/Users/nathan/work/git_support/bin:/Users/nathan/work/bin"
47
- #
48
- # # Ensure that Bundler is installed. Install it if it is not.
49
- # if ! command -v bundle >/dev/null; then
50
- # printf "The rubygem 'bundler' is not installed. Installing it now.\n"
51
- # gem install bundler
52
- # fi
53
- #
54
- # # Bundle while reducing excess noise.
55
- # printf "Bundling your gems. This may take a few minutes on a fresh clone.\n"
56
- # bundle --binstubs | grep -v '^Using ' | grep -v ' is complete' | sed '/^$/d'
57
- #
58
- # alias bundle="bundle --binstubs"
59
- #
64
+ # If you use bundler, this might be useful to you:
65
+ # if [[ -s Gemfile ]] && ! command -v bundle >/dev/null
66
+ # then
67
+ # printf "%b" "The rubygem 'bundler' is not installed. Installing it now.\n"
68
+ # gem install bundler
69
+ # fi
70
+ # if [[ -s Gemfile ]] && command -v bundle
71
+ # then
72
+ # bundle install
73
+ # fi
74
+
75
+ if [[ $- == *i* ]] # check for interactive shells
76
+ then
77
+ echo "Using: $(tput setaf 2)$GEM_HOME$(tput sgr0)" # show the user the ruby and gemset they are using in green
78
+ else
79
+ echo "Using: $GEM_HOME" # don't use colors in interactive shells
80
+ fi
60
81
 
data/Gemfile CHANGED
@@ -9,6 +9,4 @@ group :development do
9
9
  gem "rb-fsevent", :require => false
10
10
  gem "growl", :require => false
11
11
  gem "guard"
12
- # 0.4.0.rc versions are still git-only
13
- gem "guard-minitest", :git => "https://github.com/guard/guard-minitest.git"
14
12
  end
data/Gemfile.lock CHANGED
@@ -1,14 +1,7 @@
1
- GIT
2
- remote: https://github.com/guard/guard-minitest.git
3
- revision: c5c1efb9cd10f3be36de5c8fdb6615f9b74b5ef0
4
- specs:
5
- guard-minitest (0.4.0)
6
- guard (~> 0.4)
7
-
8
1
  PATH
9
2
  remote: .
10
3
  specs:
11
- camper_van (0.0.1)
4
+ camper_van (0.0.2)
12
5
  eventmachine (~> 0.12.10)
13
6
  firering (~> 1.1.0)
14
7
  logging (~> 1.5.1)
@@ -22,20 +15,20 @@ GEM
22
15
  addressable (>= 2.0.0)
23
16
  escape_utils
24
17
  eventmachine (>= 0.12.9)
25
- escape_utils (0.2.3)
18
+ escape_utils (0.2.4)
26
19
  eventmachine (0.12.10)
27
- firering (1.1.0)
20
+ firering (1.1.1)
28
21
  em-http-request (~> 0.3.0)
29
22
  eventmachine (~> 0.12.10)
30
23
  yajl-ruby (~> 0.7.6)
31
24
  growl (1.0.3)
32
- guard (0.4.2)
25
+ guard (0.8.4)
33
26
  thor (~> 0.14.6)
34
27
  little-plugger (1.1.2)
35
- logging (1.5.1)
28
+ logging (1.5.2)
36
29
  little-plugger (>= 1.1.2)
37
- minitest (2.2.2)
38
- rb-fsevent (0.4.0)
30
+ rake (0.9.2.2)
31
+ rb-fsevent (0.4.3.1)
39
32
  thor (0.14.6)
40
33
  trollop (1.16.2)
41
34
  yajl-ruby (0.7.9)
@@ -47,6 +40,5 @@ DEPENDENCIES
47
40
  camper_van!
48
41
  growl
49
42
  guard
50
- guard-minitest!
51
- minitest (~> 2.2.2)
43
+ rake
52
44
  rb-fsevent
data/Procfile ADDED
@@ -0,0 +1 @@
1
+ server: ruby -I:lib bin/camper_van 0.0.0.0 $PORT
data/bin/camper_van CHANGED
@@ -30,6 +30,10 @@ For irc debugging, use the debugging proxy:
30
30
 
31
31
  opt :log_level, "Log level", :default => "info"
32
32
  opt :log_file, "Log file", :short => "f", :type => :string
33
+ opt :ssl, "Enable SSL for IRC client connections"
34
+ opt :ssl_private_key, "Path to SSL private key file for IRC client connections, defaults to self-signed", :type => :string
35
+ opt :ssl_cert, "Path to SSL cert file for IRC client connections, defaults to self-signed", :type => :string
36
+ opt :ssl_verify_peer, "Verify peers for IRC client connections"
33
37
  end
34
38
 
35
39
  opts = Trollop.with_standard_exception_handling parser do
@@ -54,7 +58,11 @@ else
54
58
  ARGV[0] || "127.0.0.1",
55
59
  ARGV[1] || 6667,
56
60
  :log_level => opts[:log_level].to_sym,
57
- :log_to => opts[:log_file]
61
+ :log_to => opts[:log_file],
62
+ :ssl => opts[:ssl],
63
+ :ssl_private_key => opts[:ssl_private_key],
64
+ :ssl_cert => opts[:ssl_cert],
65
+ :ssl_verify_peer => opts[:ssl_verify_peer]
58
66
  )
59
67
 
60
68
  end
data/camper_van.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.version = CamperVan::VERSION
8
8
  s.authors = ["Nathan Witmer"]
9
9
  s.email = ["nwitmer@gmail.com"]
10
- s.homepage = ""
10
+ s.homepage = "https://github.com/aniero/camper_van"
11
11
  s.summary = %q{An IRC to Campfire bridge}
12
12
  s.description = %q{An IRC to Campfire bridge for IRC-based access to campfire chatrooms}
13
13
 
@@ -23,5 +23,5 @@ Gem::Specification.new do |s|
23
23
  s.add_dependency "logging", "~> 1.5.1"
24
24
  s.add_dependency "trollop", "~> 1.16.2"
25
25
 
26
- s.add_development_dependency "minitest", "~> 2.2.2"
26
+ s.add_development_dependency "rake"
27
27
  end
@@ -121,10 +121,12 @@ module CamperVan
121
121
  # convert ACTIONs
122
122
  msg.sub! /^\01ACTION (.*)\01$/, '*\1*'
123
123
 
124
- if matched = users.values.detect {|u| msg.start_with?(u.nick + ': ')}
125
- msg = msg.sub(/^#{matched.nick}/, matched.name)
124
+ matched = users.values.detect do |user|
125
+ msg =~ /^#{Regexp.escape(user.nick)}($|\W+(\s|$))/
126
126
  end
127
127
 
128
+ msg = msg.sub(/^#{matched.nick}/, matched.name) if matched
129
+
128
130
  room.text(msg) { } # async, no-op callback
129
131
  end
130
132
 
@@ -295,8 +297,10 @@ module CamperVan
295
297
  end
296
298
 
297
299
  when "Enter"
298
- client.campfire_reply :join, name, channel
299
- users[user.id] = User.new(user)
300
+ unless users[user.id]
301
+ client.campfire_reply :join, name, channel
302
+ users[user.id] = User.new(user)
303
+ end
300
304
 
301
305
  when "Leave", "Kick" # kick is used for idle timeouts
302
306
  client.campfire_reply :part, name, channel, "Leaving..."
@@ -337,7 +341,10 @@ module CamperVan
337
341
  if message.body =~ /^\*.*\*$/
338
342
  client.campfire_reply :privmsg, name, channel, ":\01ACTION " + message.body[1..-2] + "\01"
339
343
  else
340
- matched = users.values.detect {|u| message.body.start_with?(u.name + ': ')}
344
+ matched = users.values.detect do |user|
345
+ message.body =~ /^#{Regexp.escape(user.name)}(\W+(\s|$)|$)/
346
+ end
347
+
341
348
  if matched
342
349
  body = message.body.sub(/^#{matched.name}/, matched.nick)
343
350
  else
@@ -3,7 +3,7 @@ module CamperVan
3
3
  attr_reader :command
4
4
  def initialize(command)
5
5
  @command = command
6
- @message = "no handler for the #{command.keys.first} command"
6
+ @message = "no handler for the #{command and command.keys.first} command"
7
7
  end
8
8
  end
9
9
 
@@ -53,7 +53,7 @@ module CamperVan
53
53
  # client using the configured subdomain and API key.
54
54
  def campfire
55
55
  @campfire ||= Firering::Connection.new(
56
- "http://#{subdomain}.campfirenow.com"
56
+ "https://#{subdomain}.campfirenow.com"
57
57
  ) do |c|
58
58
  c.token = api_key
59
59
  c.logger = CamperVan.logger
@@ -179,6 +179,7 @@ module CamperVan
179
179
  end
180
180
 
181
181
  handle :join do |args|
182
+ args = args.map { |args| args.split(",")}.flatten
182
183
  args.each do |channel|
183
184
  join_channel channel
184
185
  end
@@ -7,16 +7,21 @@ module CamperVan
7
7
  #
8
8
  # bind_address - what address to bind to
9
9
  # port - what port to listen on
10
- # log_options - an optional hash of additional configuration
11
- # options for the logger (see .initialize_logging)
12
- def self.run(bind_address="localhost", port=6667, log_options={})
10
+ # options - an optional hash of additional configuration
11
+ # :log_level - defaults to 'info'
12
+ # :log_to - log to filename (string), IO. defaults to STDOUT
13
+ # :ssl - use ssl for client connections, defaults to false
14
+ # :ssl_private_key - if using ssl, private key file to use, defaults to self-signed
15
+ # :ssl_cert - if using ssl, cert file to use, defaults to self-signed
16
+ # :ssl_verify_peer - if using ssl, verify client certificates, defaults to false
17
+ def self.run(bind_address="localhost", port=6667, options={})
13
18
 
14
- initialize_logging log_options
19
+ initialize_logging options
15
20
 
16
21
  EM.run do
17
22
  logger = Logging.logger[self.name]
18
23
  logger.info "starting server on #{bind_address}:#{port}"
19
- EM.start_server bind_address, port, self
24
+ EM.start_server bind_address, port, self, options
20
25
  trap("INT") do
21
26
  logger.info "SIGINT, shutting down"
22
27
  EM.stop
@@ -58,6 +63,13 @@ module CamperVan
58
63
  # Public: returns the instance of the ircd for this connection
59
64
  attr_reader :ircd
60
65
 
66
+ # Public: returns connection options
67
+ attr_reader :options
68
+
69
+ def initialize(options={})
70
+ @options = options
71
+ end
72
+
61
73
  # Public callback once a server connection is established.
62
74
  #
63
75
  # Initializes an IRCD instance for this connection.
@@ -69,6 +81,11 @@ module CamperVan
69
81
 
70
82
  # start up the IRCD for this connection
71
83
  @ircd = IRCD.new(self)
84
+
85
+ if options[:ssl]
86
+ logger.info "starting TLS for #{remote_ip}"
87
+ start_tls(:cert_chain_file => options[:ssl_cert], :private_key_file => options[:ssl_private_key], :verify_peer => options[:ssl_verify_peer])
88
+ end
72
89
  end
73
90
 
74
91
  # Public: callback for when a line of the protocol has been
@@ -1,3 +1,3 @@
1
1
  module CamperVan
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -192,6 +192,28 @@ describe CamperVan::Channel do
192
192
  @channel.privmsg "bob_fred: sup dude"
193
193
  @room.sent.last.must_match /Bob Fred: sup dude/
194
194
  end
195
+
196
+ it "converts leading nicknames followed by punctuation" do
197
+ @room.users = [
198
+ OpenStruct.new(:id => 11, :name => "Bob Fred", :email_address => "x@y.com"),
199
+ OpenStruct.new(:id => 12, :name => "Joe", :email_address => "x@y.com")
200
+ ]
201
+ @channel.list_users
202
+
203
+ @channel.privmsg "bob_fred! sup!"
204
+ @room.sent.last.must_match /Bob Fred! sup/
205
+ end
206
+
207
+ it "converts just leading nicks to names" do
208
+ @room.users = [
209
+ OpenStruct.new(:id => 11, :name => "Bob Fred", :email_address => "x@y.com"),
210
+ OpenStruct.new(:id => 12, :name => "Joe", :email_address => "x@y.com")
211
+ ]
212
+ @channel.list_users
213
+
214
+ @channel.privmsg "bob_fred"
215
+ @room.sent.last.must_match /Bob Fred/
216
+ end
195
217
  end
196
218
 
197
219
  describe "#current_mode" do
@@ -310,6 +332,27 @@ describe CamperVan::Channel do
310
332
  @client.sent.last.must_match %r(PRIVMSG #test :bob_fred: hello)
311
333
  end
312
334
 
335
+ it "converts just leading names to nicks" do
336
+ @room.users = [
337
+ OpenStruct.new(:id => 11, :name => "Bob Fred", :email_address => "x@y.com"),
338
+ OpenStruct.new(:id => 12, :name => "Joe", :email_address => "x@y.com")
339
+ ]
340
+ @channel.list_users
341
+ @channel.map_message_to_irc msg("Text", :body => "Bob Fred")
342
+ @client.sent.last.must_match %r(PRIVMSG #test bob_fred)
343
+ end
344
+
345
+ it "converts leading names plus punctuation to nicks" do
346
+ @room.users = [
347
+ OpenStruct.new(:id => 11, :name => "Bob Fred", :email_address => "x@y.com"),
348
+ OpenStruct.new(:id => 12, :name => "Joe", :email_address => "x@y.com")
349
+ ]
350
+ @channel.list_users
351
+
352
+ @channel.map_message_to_irc msg("Text", :body => "Bob Fred!!? dude!")
353
+ @client.sent.last.must_match %r(PRIVMSG #test :bob_fred!!\? dude)
354
+ end
355
+
313
356
  it "sends an action when a user plays the crickets sound" do
314
357
  @channel.map_message_to_irc msg("Sound", :body => "crickets")
315
358
  @client.sent.last.must_match /\x01ACTION hears crickets chirping\x01/
@@ -360,6 +403,14 @@ describe CamperVan::Channel do
360
403
  @client.sent.last.must_match %r/:joe\S+ JOIN #test/
361
404
  end
362
405
 
406
+ it "does not resend a join command when a user enters the room twice" do
407
+ @channel.map_message_to_irc msg("Enter")
408
+ @client.sent.clear
409
+ @client.sent.last.must_equal nil
410
+ @channel.map_message_to_irc msg("Enter")
411
+ @client.sent.last.must_equal nil
412
+ end
413
+
363
414
  it "adds the user to the internal tracking list when a user joins" do
364
415
  @channel.map_message_to_irc msg("Enter")
365
416
  @client.sent.last.must_match %r/:joe\S+ JOIN #test/
@@ -106,9 +106,39 @@ describe CamperVan::IRCD do
106
106
  @server.handle :user => ["nathan", 0, 0, "Nathan"]
107
107
  end
108
108
 
109
- # it "connects to the campfire API" do
110
- # skip "campfire api next!"
111
- # end
109
+ context "with a JOIN command" do
110
+ before :each do
111
+ @server.campfire = Class.new do
112
+ def rooms
113
+ yield [
114
+ OpenStruct.new(:name => "Test"),
115
+ OpenStruct.new(:name => "Day Job")
116
+ ]
117
+ end
118
+ end.new
119
+ @connection.sent.clear
120
+ end
121
+
122
+ it "joins the given room" do
123
+ @server.handle :join => ["#test"]
124
+ @server.channels["#test"].must_be_instance_of CamperVan::Channel
125
+ end
126
+
127
+ it "returns an error if the room doesn't exist" do
128
+ @server.handle :join => ["#foo"]
129
+ @server.channels["#foo"].must_equal nil
130
+ @connection.sent.last.must_match /no such.*room/i
131
+ end
132
+
133
+ it "joins multiple channels if given" do
134
+ @server.handle :join => ["#test,#day_job"]
135
+ @connection.sent.must_be_empty
136
+ @server.channels["#test"].must_be_instance_of CamperVan::Channel
137
+ @server.channels["#day_job"].must_be_instance_of CamperVan::Channel
138
+ @ser
139
+ end
140
+ end
141
+
112
142
  end
113
143
 
114
144
  context "with a MODE command" do
@@ -9,8 +9,16 @@ describe CamperVan::Server do
9
9
  include CamperVan::Server
10
10
 
11
11
  attr_reader :sent
12
- def initialize
12
+ attr_reader :tls_started
13
+ def initialize(*)
14
+ super
15
+
13
16
  @sent = []
17
+ @tls_started = false
18
+ end
19
+
20
+ def start_tls(*)
21
+ @tls_started = true
14
22
  end
15
23
 
16
24
  def close_connection
@@ -25,13 +33,27 @@ describe CamperVan::Server do
25
33
  end
26
34
  end
27
35
 
28
- before :each do
29
- @server = TestServer.new
30
- @server.post_init
36
+ describe "#post_init" do
37
+ it "starts TLS if the ssl option is true" do
38
+ @server = TestServer.new(:ssl => true)
39
+
40
+ @server.post_init
41
+ @server.tls_started.must_equal true
42
+ end
43
+
44
+ it "does not start TLS if the ssl option is not true" do
45
+ @server = TestServer.new
46
+
47
+ @server.post_init
48
+ @server.tls_started.must_equal false
49
+ end
31
50
  end
32
51
 
33
52
  describe "#receive_line" do
34
53
  it "allows for a failed attempt at registration" do
54
+ @server = TestServer.new
55
+ @server.post_init
56
+
35
57
  @server.receive_line "PASS invalid"
36
58
  @server.receive_line "NICK nathan" # ignored
37
59
  @server.receive_line "USER nathan 0 0 :Nathan" # ignored
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camper_van
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-07-04 00:00:00.000000000 -06:00
13
- default_executable:
12
+ date: 2012-01-23 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: eventmachine
17
- requirement: &2152888420 !ruby/object:Gem::Requirement
16
+ requirement: &70178180843580 !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
19
  - - ~>
@@ -22,10 +21,10 @@ dependencies:
22
21
  version: 0.12.10
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *2152888420
24
+ version_requirements: *70178180843580
26
25
  - !ruby/object:Gem::Dependency
27
26
  name: firering
28
- requirement: &2152887920 !ruby/object:Gem::Requirement
27
+ requirement: &70178180842800 !ruby/object:Gem::Requirement
29
28
  none: false
30
29
  requirements:
31
30
  - - ~>
@@ -33,10 +32,10 @@ dependencies:
33
32
  version: 1.1.0
34
33
  type: :runtime
35
34
  prerelease: false
36
- version_requirements: *2152887920
35
+ version_requirements: *70178180842800
37
36
  - !ruby/object:Gem::Dependency
38
37
  name: logging
39
- requirement: &2152887460 !ruby/object:Gem::Requirement
38
+ requirement: &70178180842200 !ruby/object:Gem::Requirement
40
39
  none: false
41
40
  requirements:
42
41
  - - ~>
@@ -44,10 +43,10 @@ dependencies:
44
43
  version: 1.5.1
45
44
  type: :runtime
46
45
  prerelease: false
47
- version_requirements: *2152887460
46
+ version_requirements: *70178180842200
48
47
  - !ruby/object:Gem::Dependency
49
48
  name: trollop
50
- requirement: &2152887000 !ruby/object:Gem::Requirement
49
+ requirement: &70178180841700 !ruby/object:Gem::Requirement
51
50
  none: false
52
51
  requirements:
53
52
  - - ~>
@@ -55,18 +54,18 @@ dependencies:
55
54
  version: 1.16.2
56
55
  type: :runtime
57
56
  prerelease: false
58
- version_requirements: *2152887000
57
+ version_requirements: *70178180841700
59
58
  - !ruby/object:Gem::Dependency
60
- name: minitest
61
- requirement: &2152886540 !ruby/object:Gem::Requirement
59
+ name: rake
60
+ requirement: &70178180841280 !ruby/object:Gem::Requirement
62
61
  none: false
63
62
  requirements:
64
- - - ~>
63
+ - - ! '>='
65
64
  - !ruby/object:Gem::Version
66
- version: 2.2.2
65
+ version: '0'
67
66
  type: :development
68
67
  prerelease: false
69
- version_requirements: *2152886540
68
+ version_requirements: *70178180841280
70
69
  description: An IRC to Campfire bridge for IRC-based access to campfire chatrooms
71
70
  email:
72
71
  - nwitmer@gmail.com
@@ -81,6 +80,7 @@ files:
81
80
  - Gemfile.lock
82
81
  - Guardfile
83
82
  - LICENSE
83
+ - Procfile
84
84
  - README.md
85
85
  - Rakefile
86
86
  - bin/camper_van
@@ -105,8 +105,7 @@ files:
105
105
  - spec/camper_van/server_spec.rb
106
106
  - spec/camper_van/user_spec.rb
107
107
  - spec/spec_helper.rb
108
- has_rdoc: true
109
- homepage: ''
108
+ homepage: https://github.com/aniero/camper_van
110
109
  licenses: []
111
110
  post_install_message:
112
111
  rdoc_options: []
@@ -126,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
125
  version: '0'
127
126
  requirements: []
128
127
  rubyforge_project: camper_van
129
- rubygems_version: 1.6.2
128
+ rubygems_version: 1.8.11
130
129
  signing_key:
131
130
  specification_version: 3
132
131
  summary: An IRC to Campfire bridge