beetle 0.2.2 → 0.2.3

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/README.rdoc CHANGED
@@ -54,12 +54,11 @@ windows and execute the following commands:
54
54
  rake redis:start1
55
55
  rake redis:start2
56
56
 
57
-
58
57
  == Prerequisites
59
58
 
60
59
  To set up a redundant messaging system you will need
61
60
  * at least 2 AMQP servers (we use {RabbitMQ}[http://www.rabbitmq.com/])
62
- * at least one Redis server (better are two in a master/slave setup)
61
+ * at least one {Redis}[http://github.com/antirez/redis] server (better are two in a master/slave setup)
63
62
 
64
63
  == Gem Dependencies
65
64
 
@@ -67,15 +66,17 @@ At runtime, Beetle will use
67
66
  * {uuid4r}[http://github.com/skaes/uuid4r]
68
67
  (which needs ossp-uuid)
69
68
  * {bunny}[http://github.com/celldee/bunny]
70
- * {redis-rb}[http://github.com/ezmobius/redis-rb]
71
- (which needs {redis}[http://github.com/antirez/redis])
69
+ * {redis}[http://github.com/ezmobius/redis-rb]
72
70
  * {amqp}[http://github.com/tmm1/amqp]
73
71
  (which is based on {eventmachine}[http://github.com/eventmachine/eventmachine])
72
+ * {daemons}[http://daemons.rubyforge.org/]
74
73
  * activesupport
75
74
 
76
75
  For development, you'll need
77
- * mocha
78
- * rcov
76
+ * {mocha}[http://github.com/floehopper/mocha]
77
+ * {rcov}[http://github.com/relevance/rcov]
78
+ * {cucumber}[http://github.com/aslakhellesoy/cucumber]
79
+ * {daemon_controller}[http://github.com/FooBarWidget/daemon_controller]
79
80
 
80
81
  == Authors
81
82
 
data/beetle.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "beetle"
3
- s.version = "0.2.2"
3
+ s.version = "0.2.3"
4
4
 
5
5
  s.required_rubygems_version = ">= 1.3.1"
6
6
  s.authors = ["Stefan Kaes", "Pascal Friederich", "Ali Jelveh", "Sebastian Roebke"]
@@ -46,7 +46,7 @@ module Beetle
46
46
 
47
47
  dir_mode = nil
48
48
  dir = nil
49
- opts.on("--pid-dir DIR", String, "Write pid and log to DIR") do |val|
49
+ opts.on("--pid-dir DIR", String, "Write pid and output to DIR") do |val|
50
50
  dir_mode = :normal
51
51
  dir = val
52
52
  end
@@ -55,7 +55,7 @@ module Beetle
55
55
 
56
56
  dir_mode = nil
57
57
  dir = nil
58
- opts.on("--pid-dir DIR", String, "Write pid and log to DIR") do |val|
58
+ opts.on("--pid-dir DIR", String, "Write pid and output to DIR") do |val|
59
59
  dir_mode = :normal
60
60
  dir = val
61
61
  end
@@ -4,8 +4,10 @@ module Beetle
4
4
  class Configuration
5
5
  # system name (used for redis cluster partitioning) (defaults to <tt>system</tt>)
6
6
  attr_accessor :system_name
7
- # default logger (defaults to <tt>Logger.new(STDOUT)</tt>)
7
+ # default logger (defaults to <tt>Logger.new(log_file)</tt>)
8
8
  attr_accessor :logger
9
+ # defaults to <tt>STDOUT</tt>
10
+ attr_accessor :log_file
9
11
  # number of seconds after which keys are removed form the message deduplication store (defaults to <tt>3.days</tt>)
10
12
  attr_accessor :gc_threshold
11
13
  # the redis server to use for deduplication
@@ -49,14 +51,6 @@ module Beetle
49
51
  def initialize #:nodoc:
50
52
  self.system_name = "system"
51
53
 
52
- self.logger = begin
53
- logger = Logger.new(STDOUT)
54
- logger.formatter = Logger::Formatter.new
55
- logger.level = Logger::INFO
56
- logger.datetime_format = "%Y-%m-%d %H:%M:%S"
57
- logger
58
- end
59
-
60
54
  self.gc_threshold = 3.days
61
55
  self.redis_server = "localhost:6379"
62
56
  self.redis_servers = ""
@@ -72,6 +66,8 @@ module Beetle
72
66
  self.vhost = "/"
73
67
  self.user = "guest"
74
68
  self.password = "guest"
69
+
70
+ self.log_file = STDOUT
75
71
  end
76
72
 
77
73
  # setting the external config file will load it on assignment
@@ -80,6 +76,16 @@ module Beetle
80
76
  load_config
81
77
  end
82
78
 
79
+ def logger
80
+ @logger ||= begin
81
+ l = Logger.new(log_file)
82
+ l.formatter = Logger::Formatter.new
83
+ l.level = Logger::INFO
84
+ l.datetime_format = "%Y-%m-%d %H:%M:%S"
85
+ l
86
+ end
87
+ end
88
+
83
89
  private
84
90
  def load_config
85
91
  hash = YAML::load(ERB.new(IO.read(config_file)).result)
@@ -1,5 +1,4 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
- require 'tempfile'
3
2
 
4
3
  module Beetle
5
4
  class ConfigurationTest < Test::Unit::TestCase
@@ -13,5 +12,19 @@ module Beetle
13
12
  config.config_file = "some/path/to/a/file"
14
13
  assert_equal new_value, config.gc_threshold
15
14
  end
15
+
16
+ test "should log to STDOUT if no log_file given" do
17
+ config = Configuration.new
18
+ Logger.expects(:new).with(STDOUT).returns(stub_everything)
19
+ config.logger
20
+ end
21
+
22
+ test "should log to file if log_file given" do
23
+ file = '/path/to/file'
24
+ config = Configuration.new
25
+ config.log_file = file
26
+ Logger.expects(:new).with(file).returns(stub_everything)
27
+ config.logger
28
+ end
16
29
  end
17
30
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beetle
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 2
10
- version: 0.2.2
9
+ - 3
10
+ version: 0.2.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Stefan Kaes
@@ -18,7 +18,7 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2010-07-26 00:00:00 +02:00
21
+ date: 2010-07-27 00:00:00 +02:00
22
22
  default_executable: beetle
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency