a13g 0.1.0.beta3 → 0.1.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,25 @@
1
+ module A13g
2
+ module Utils
3
+ # It will preetify message and prepare for display, eg. in logs.
4
+ #
5
+ # @param [String] target
6
+ # message destination or source
7
+ # @param [String] message
8
+ # the message to format
9
+ # @param [Hash] headers
10
+ # message headers
11
+ #
12
+ # @return [String]
13
+ # formatted message with headers
14
+ #
15
+ # @api public
16
+ def self.format_message(target, message, headers={})
17
+ result = ''
18
+ result << "(#{target}): MESSAGE ["
19
+ result << headers.to_a.collect {|x| "#{x[0]}: #{x[1]}" }.join(", ")
20
+ result << "] "
21
+ result << message.split(/$/).collect {|x| "#{x}" }.join('\n')
22
+ result
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ module A13g
2
+ module Utils
3
+ # It will preetify message and prepare for display, eg. in logs.
4
+ #
5
+ # @param [String] target
6
+ # message destination or source
7
+ # @param [String] message
8
+ # the message to format
9
+ # @param [Hash] headers
10
+ # message headers
11
+ #
12
+ # @return [String]
13
+ # formatted message with headers
14
+ #
15
+ # @api public
16
+ def self.format_message(target, message, headers={})
17
+ result = ''
18
+ result << "(#{target}): MESSAGE ["
19
+ result << headers.to_a.collect {|x| "#{x[0]}: #{x[1]}" }.join(", ")
20
+ result << "] "
21
+ result << message.split(/$/).collect {|x| "#{x}" }.join('\n')
22
+ result
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,10 @@
1
+ module A13g
2
+ module VERSION
3
+ MAJOR = 0
4
+ MINOR = 1
5
+ TINY = 0
6
+ BUILD = 'beta4'
7
+
8
+ STRING = [MAJOR, MINOR, TINY, BUILD].join('.')
9
+ end
10
+ end
@@ -0,0 +1,74 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "A13g" do
4
+ it "should load configuration from defult file if exists" do
5
+ A13g.setup(:default, :development)
6
+ A13g.configurations[:default][:development].should be_kind_of Hash
7
+ A13g.configurations[:default][:development][:adapter].should == 'test'
8
+ A13g.configurations[:default][:development][:host].should == 'test.com'
9
+ A13g.configurations[:default][:development][:port].should == 1234
10
+ A13g.teardown
11
+ end
12
+
13
+ it "should allow to select different location of config file" do
14
+ A13g.path.config = File.join(File.dirname(__FILE__), 'dconfig')
15
+ A13g.setup(:default, :development)
16
+ A13g.configurations[:default][:development].should be_kind_of Hash
17
+ A13g.configurations[:default][:development][:adapter].should == 'test'
18
+ A13g.configurations[:default][:development][:host].should == 'different.com'
19
+ A13g.configurations[:default][:development][:port].should == 1234
20
+ A13g.teardown
21
+ end
22
+
23
+ it "should properly setup connection using hash" do
24
+ A13g.setup(:default, :adapter => 'test', :host => 'mytest.com', :port => 3456)
25
+ A13g.configurations[:default][:development].should be_kind_of Hash
26
+ A13g.configurations[:default][:development][:host].should == 'mytest.com'
27
+ A13g.configurations[:default][:development][:port].should == 3456
28
+ A13g.teardown
29
+ end
30
+
31
+ it "should allow to specify own logger" do
32
+ A13g.logger = Logger.new(out = StringIO.new)
33
+ A13g.logger.debug('Test')
34
+ out.rewind
35
+ out.gets.should == "Test\n"
36
+ A13g.teardown
37
+ end
38
+
39
+ it "should allow to set environment" do
40
+ A13g.environment = :production
41
+ A13g.environment.should == :production
42
+ A13g.teardown
43
+ end
44
+
45
+ context "after successfully setup" do
46
+ it "should change self state" do
47
+ A13g.setup(:default)
48
+ A13g.ready?.should == true
49
+ A13g.teardown
50
+ A13g.ready?.should == false
51
+ end
52
+
53
+ it "should store context information" do
54
+ A13g.setup(:default)
55
+ A13g.contexts.values.size.should == 1
56
+ A13g.contexts.should have_key :default
57
+ A13g.teardown
58
+ end
59
+
60
+ it "should fill in relations between context and consumer when multiple connections are established" do
61
+ A13g.setup(:default, :adapter => 'test', :host => 'first.com')
62
+ A13g.setup(:second, :adapter => 'test', :host => 'second.com')
63
+ myconsumer = Class.new(A13g::Consumer)
64
+ myconsumer.context(:second)
65
+ myconsumer.context.should_not be_nil
66
+ myconsumer.context.name.should == :second
67
+ myconsumer.context.connection.config[:host].should == 'second.com'
68
+ A13g::Base.context.should_not be_nil
69
+ A13g::Base.context.name.should == :default
70
+ A13g::Base.context.connection.config[:host].should == 'first.com'
71
+ A13g.teardown
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,4 @@
1
+ development:
2
+ adapter: test
3
+ host: test.com
4
+ port: 1234
@@ -0,0 +1,4 @@
1
+ development:
2
+ adapter: test
3
+ host: different.com
4
+ port: 1234
@@ -0,0 +1 @@
1
+ --color
@@ -0,0 +1,14 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'rubygems'
4
+ require 'a13g'
5
+ require 'spec'
6
+ require 'spec/autorun'
7
+
8
+ #APP_ENV = 'test'
9
+ APP_LOGGER = Logger.new('/dev/null')
10
+ APP_ROOT = File.dirname(__FILE__)
11
+
12
+ Spec::Runner.configure do |config|
13
+ # nothing...
14
+ end
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 0
7
7
  - 1
8
8
  - 0
9
- - beta3
10
- version: 0.1.0.beta3
9
+ - beta4
10
+ version: 0.1.0.beta4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kriss Kowalik
@@ -72,8 +72,47 @@ extra_rdoc_files:
72
72
  - LICENSE
73
73
  - README.rdoc
74
74
  files:
75
+ - .document
76
+ - .gitignore
75
77
  - LICENSE
76
78
  - README.rdoc
79
+ - Rakefile
80
+ - a13g-0.1.0.beta3.gem
81
+ - a13g.gemspec
82
+ - examples/consumer.rb
83
+ - examples/multiple_connections.rb
84
+ - examples/producer.rb
85
+ - examples/simple_project/README
86
+ - examples/simple_project/Rakefile
87
+ - examples/simple_project/config/broker.yml
88
+ - examples/simple_project/lib/consumers/first_consumer.rb
89
+ - examples/simple_project/lib/consumers/second_consumer.rb
90
+ - examples/simple_project/lib/simple_project.rb
91
+ - lib/a13g.rb
92
+ - lib/a13g/adapters.rb
93
+ - lib/a13g/adapters/abstract_adapter.rb
94
+ - lib/a13g/adapters/stomp_adapter.rb
95
+ - lib/a13g/adapters/test_adapter.rb
96
+ - lib/a13g/base.rb
97
+ - lib/a13g/command.rb
98
+ - lib/a13g/consumer.rb
99
+ - lib/a13g/destination.rb
100
+ - lib/a13g/errors.rb
101
+ - lib/a13g/listener.rb
102
+ - lib/a13g/message.rb
103
+ - lib/a13g/producer.rb
104
+ - lib/a13g/railtie.rb
105
+ - lib/a13g/recipes.rb
106
+ - lib/a13g/subscription.rb
107
+ - lib/a13g/support/logger.rb
108
+ - lib/a13g/support/utils.rb
109
+ - lib/a13g/utils.rb
110
+ - lib/a13g/version.rb
111
+ - spec/a13g_spec.rb
112
+ - spec/config/broker.yml
113
+ - spec/dconfig/broker.yml
114
+ - spec/spec.opts
115
+ - spec/spec_helper.rb
77
116
  has_rdoc: true
78
117
  homepage: http://github.com/kriss/a13g
79
118
  licenses: []
@@ -106,5 +145,12 @@ rubygems_version: 1.3.6
106
145
  signing_key:
107
146
  specification_version: 3
108
147
  summary: Event-driven architecture for your applications
109
- test_files: []
110
-
148
+ test_files:
149
+ - spec/a13g_spec.rb
150
+ - spec/spec_helper.rb
151
+ - examples/consumer.rb
152
+ - examples/multiple_connections.rb
153
+ - examples/simple_project/lib/consumers/second_consumer.rb
154
+ - examples/simple_project/lib/consumers/first_consumer.rb
155
+ - examples/simple_project/lib/simple_project.rb
156
+ - examples/producer.rb