marvin 0.8.0.2 → 0.8.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.
@@ -0,0 +1,9 @@
1
+ Marvin - an evented ruby IRC library
2
+ ------------------------------------
3
+
4
+ Welcome to the home of Marvin - a ruby library (usable as a framework) for working with IRC
5
+ in an evented fashion. This app is currently undergoing major changes and master is used to
6
+ reflect ongoing development. If you'd like to play with an older version, checkout the
7
+ _v0.4.0_ tag or the _legacy_ branch. Thanks!
8
+
9
+ -- Darcy
@@ -0,0 +1,54 @@
1
+ require 'marvin'
2
+ Marvin::DSL.run do
3
+
4
+ configure do |c|
5
+ c.real_name = "Marvin Bot of Doom"
6
+ c.user_name = "MarvinBot"
7
+ c.nicks = "Marvin", "Marvin_", "Marvin__"
8
+ end
9
+
10
+ logging do
11
+
12
+ setup do
13
+ @file = File.open(Marvin::Settings.root.join("logs", "irc.log"), "w+")
14
+ end
15
+
16
+ incoming do |server, nick, target, message|
17
+ @file.puts "<< #{Time.now} <#{target}:#{server}> #{nick}: #{message}"
18
+ end
19
+
20
+ outgoing do |server, nick, target, message|
21
+ @file.puts ">> #{Time.now} <#{target}:#{server}> #{nick}: #{message}"
22
+ end
23
+
24
+ teardown do
25
+ @file.close if @file
26
+ end
27
+
28
+ end
29
+
30
+ handler do
31
+
32
+ on :incoming_action do
33
+ reply "Hey! Are we related?" if from.include?(client.nickname)
34
+ end
35
+
36
+ end
37
+
38
+ commands do
39
+
40
+ prefix_is "!"
41
+
42
+ command :awesome, "Tells you how awesome you are" do
43
+ reply "You are #{25 + rand(75)}% awesome!"
44
+ end
45
+
46
+ end
47
+
48
+ server "irc.freenode.net" do
49
+
50
+ join "#marvin-testing", "#relayrelay"
51
+
52
+ end
53
+
54
+ end
@@ -5,7 +5,7 @@ require 'perennial'
5
5
  module Marvin
6
6
  include Perennial
7
7
 
8
- VERSION = [0, 8, 0, 2]
8
+ VERSION = [0, 8, 1, 0]
9
9
 
10
10
  # Client
11
11
  autoload :TestClient, 'marvin/test_client'
@@ -34,8 +34,6 @@ module Marvin
34
34
  logger.info "Initializing the current instance"
35
35
  @channels = []
36
36
  connections << self
37
- logger.info "Setting the client for each handler"
38
- setup_handlers
39
37
  logger.info "Dispatching the default :client_connected event"
40
38
  dispatch :client_connected
41
39
  end
@@ -60,9 +58,9 @@ module Marvin
60
58
  Marvin::Reloading.reload! if @@development
61
59
  end
62
60
 
63
- def dispatch(*args)
61
+ def pre_dispatching
64
62
  process_development
65
- super
63
+ setup_handlers
66
64
  end
67
65
 
68
66
  # Sets the current class-wide settings of this IRC Client
@@ -52,7 +52,7 @@ module Marvin::IRC
52
52
  def receive_line(line)
53
53
  return unless @connected
54
54
  line = line.strip
55
- logger.debug "<< #{line}"
55
+ logger.debug "[#{host_with_port}] << #{line}"
56
56
  @client.receive_line(line)
57
57
  rescue Exception => e
58
58
  logger.warn "Uncaught exception raised; Likely in Marvin"
@@ -62,7 +62,7 @@ module Marvin::IRC
62
62
  def send_line(*lines)
63
63
  return unless @connected
64
64
  lines.each do |line|
65
- logger.debug ">> #{line.strip}"
65
+ logger.debug "[#{host_with_port}] >> #{line.strip}"
66
66
  send_data line
67
67
  end
68
68
  end
@@ -105,6 +105,7 @@ module Marvin::IRC
105
105
  EventMachine.run do
106
106
  unless connections.data == false
107
107
  connections.each_pair do |server, configuration|
108
+ configuration ||= Marvin::Nash.new
108
109
  connect(configuration.merge(:server => server.to_s))
109
110
  end
110
111
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marvin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0.2
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darcy Laycock
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-27 00:00:00 +08:00
12
+ date: 2009-10-05 00:00:00 +08:00
13
13
  default_executable: marvin
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 1.0.0.0
23
+ version: 1.0.1
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: eventmachine
@@ -42,6 +42,26 @@ dependencies:
42
42
  - !ruby/object:Gem::Version
43
43
  version: "0"
44
44
  version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: thoughtbot-shoulda
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
45
65
  description: |-
46
66
  Marvin is a library (also usable in framework / application form) that
47
67
  makes it simple and fast to build applications around IRC. With an emphasis
@@ -54,10 +74,16 @@ executables:
54
74
  - marvin
55
75
  extensions: []
56
76
 
57
- extra_rdoc_files: []
58
-
77
+ extra_rdoc_files:
78
+ - README.markdown
59
79
  files:
60
80
  - bin/marvin
81
+ - handlers/debug_handler.rb
82
+ - handlers/hello_world.rb
83
+ - handlers/keiki_thwopper.rb
84
+ - handlers/simple_logger.rb
85
+ - handlers/tweet_tweet.rb
86
+ - lib/marvin.rb
61
87
  - lib/marvin/abstract_client.rb
62
88
  - lib/marvin/abstract_parser.rb
63
89
  - lib/marvin/base.rb
@@ -66,32 +92,31 @@ files:
66
92
  - lib/marvin/command_handler.rb
67
93
  - lib/marvin/console.rb
68
94
  - lib/marvin/core_commands.rb
95
+ - lib/marvin/distributed.rb
69
96
  - lib/marvin/distributed/client.rb
70
97
  - lib/marvin/distributed/handler.rb
71
98
  - lib/marvin/distributed/protocol.rb
72
99
  - lib/marvin/distributed/server.rb
73
- - lib/marvin/distributed.rb
74
100
  - lib/marvin/dsl.rb
75
101
  - lib/marvin/exception_tracker.rb
76
102
  - lib/marvin/exceptions.rb
103
+ - lib/marvin/irc.rb
77
104
  - lib/marvin/irc/client.rb
78
105
  - lib/marvin/irc/event.rb
79
106
  - lib/marvin/irc/replies.rb
80
- - lib/marvin/irc.rb
81
107
  - lib/marvin/logging_handler.rb
82
108
  - lib/marvin/middle_man.rb
109
+ - lib/marvin/parsers.rb
83
110
  - lib/marvin/parsers/command.rb
111
+ - lib/marvin/parsers/prefixes.rb
84
112
  - lib/marvin/parsers/prefixes/host_mask.rb
85
113
  - lib/marvin/parsers/prefixes/server.rb
86
- - lib/marvin/parsers/prefixes.rb
87
114
  - lib/marvin/parsers/ragel_parser.rb
88
115
  - lib/marvin/parsers/ragel_parser.rl
89
116
  - lib/marvin/parsers/simple_parser.rb
90
- - lib/marvin/parsers.rb
91
117
  - lib/marvin/settings.rb
92
118
  - lib/marvin/test_client.rb
93
119
  - lib/marvin/util.rb
94
- - lib/marvin.rb
95
120
  - templates/boot.erb
96
121
  - templates/connections.yml.erb
97
122
  - templates/debug_handler.erb
@@ -105,18 +130,14 @@ files:
105
130
  - test/parser_test.rb
106
131
  - test/test_helper.rb
107
132
  - test/util_test.rb
108
- - handlers/debug_handler.rb
109
- - handlers/hello_world.rb
110
- - handlers/keiki_thwopper.rb
111
- - handlers/simple_logger.rb
112
- - handlers/tweet_tweet.rb
113
- has_rdoc: false
133
+ - README.markdown
134
+ has_rdoc: true
114
135
  homepage: http://sutto.net/
115
136
  licenses: []
116
137
 
117
138
  post_install_message:
118
- rdoc_options: []
119
-
139
+ rdoc_options:
140
+ - --charset=UTF-8
120
141
  require_paths:
121
142
  - lib
122
143
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -134,9 +155,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
155
  requirements: []
135
156
 
136
157
  rubyforge_project:
137
- rubygems_version: 1.3.2
158
+ rubygems_version: 1.3.5
138
159
  signing_key:
139
160
  specification_version: 3
140
161
  summary: Evented IRC Library for Ruby, built on EventMachine and Perennial.
141
- test_files: []
142
-
162
+ test_files:
163
+ - test/abstract_client_test.rb
164
+ - test/parser_comparison.rb
165
+ - test/parser_test.rb
166
+ - test/test_helper.rb
167
+ - test/util_test.rb
168
+ - examples/example_dsl.rb