wonkavision 0.5.0
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/CHANGELOG.rdoc +3 -0
- data/LICENSE.txt +22 -0
- data/README.rdoc +0 -0
- data/Rakefile +48 -0
- data/lib/wonkavision.rb +68 -0
- data/lib/wonkavision/acts_as_oompa_loompa.rb +22 -0
- data/lib/wonkavision/event.rb +33 -0
- data/lib/wonkavision/event_binding.rb +21 -0
- data/lib/wonkavision/event_coordinator.rb +75 -0
- data/lib/wonkavision/event_handler.rb +14 -0
- data/lib/wonkavision/event_namespace.rb +72 -0
- data/lib/wonkavision/event_path_segment.rb +37 -0
- data/lib/wonkavision/message_mapper.rb +30 -0
- data/lib/wonkavision/message_mapper/indifferent_access.rb +26 -0
- data/lib/wonkavision/message_mapper/map.rb +126 -0
- data/lib/wonkavision/persistence/mongo_mapper_adapter.rb +33 -0
- data/lib/wonkavision/plugins.rb +30 -0
- data/lib/wonkavision/plugins/business_activity.rb +79 -0
- data/lib/wonkavision/plugins/event_handling.rb +78 -0
- data/lib/wonkavision/plugins/timeline.rb +80 -0
- data/lib/wonkavision/support.rb +0 -0
- data/lib/wonkavision/version.rb +3 -0
- data/test/business_activity_test.rb +24 -0
- data/test/config/database.yml +15 -0
- data/test/event_coordinator_test.rb +72 -0
- data/test/event_handler_test.rb +47 -0
- data/test/event_namespace_test.rb +109 -0
- data/test/event_path_segment_test.rb +56 -0
- data/test/event_test.rb +54 -0
- data/test/log/test.log +7853 -0
- data/test/map_test.rb +187 -0
- data/test/message_mapper_test.rb +21 -0
- data/test/test_activity_models.rb +56 -0
- data/test/test_helper.rb +63 -0
- data/test/timeline_test.rb +61 -0
- data/test/wonkavision_test.rb +10 -0
- data/wonkavision.gemspec +94 -0
- metadata +145 -0
data/test/map_test.rb
ADDED
@@ -0,0 +1,187 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class MapTest < ActiveSupport::TestCase
|
4
|
+
context "Map.initialize" do
|
5
|
+
should "make the provided object the current context" do
|
6
|
+
assert_equal 1, Wonkavision::MessageMapper::Map.new(1).context
|
7
|
+
end
|
8
|
+
end
|
9
|
+
context "Indexing into a MicroMapper::Map" do
|
10
|
+
should "provide indifferent access" do
|
11
|
+
h = Wonkavision::MessageMapper::Map.new({})
|
12
|
+
h[:hello] = "hi"
|
13
|
+
assert_equal "hi", h["hello"]
|
14
|
+
h["hi"] = {:hello=>:sir}
|
15
|
+
assert_equal({:hello=>:sir}, h[:hi])
|
16
|
+
end
|
17
|
+
should "allow method missing to index into hash" do
|
18
|
+
l = Wonkavision::MessageMapper::Map.new({})
|
19
|
+
l.hello = "goodbye"
|
20
|
+
assert_equal "goodbye", l[:hello]
|
21
|
+
assert_equal "goodbye", l.hello
|
22
|
+
end
|
23
|
+
end
|
24
|
+
context "Map.from" do
|
25
|
+
should "evaluate the provided block against the map using the provided object as the current context" do
|
26
|
+
m = Wonkavision::MessageMapper::Map.new({})
|
27
|
+
m.from(1) do
|
28
|
+
self.take_it = context
|
29
|
+
end
|
30
|
+
assert_equal 1, m.take_it
|
31
|
+
end
|
32
|
+
should "return the previous context after the block" do
|
33
|
+
m = Wonkavision::MessageMapper::Map.new(1)
|
34
|
+
m.from(2) do
|
35
|
+
self.a = context
|
36
|
+
end
|
37
|
+
assert_equal 1, m.context
|
38
|
+
assert_equal 2, m.a
|
39
|
+
end
|
40
|
+
end
|
41
|
+
context "Map.map" do
|
42
|
+
should "raise an exception if called without a block or map name" do
|
43
|
+
m = Wonkavision::MessageMapper::Map.new({})
|
44
|
+
assert_raise RuntimeError do
|
45
|
+
m.map(1)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
should "eval a provided block against a new map with the provided context" do
|
49
|
+
m = Wonkavision::MessageMapper::Map.new({})
|
50
|
+
ctx = {:hi=>true}
|
51
|
+
m.map "this"=>ctx do
|
52
|
+
self.ctx = context
|
53
|
+
end
|
54
|
+
assert_equal ctx, m.this.ctx
|
55
|
+
end
|
56
|
+
should "execute the provided map_name using the provided context" do
|
57
|
+
Wonkavision::MessageMapper.register("map_test") do
|
58
|
+
self.ctx = context
|
59
|
+
end
|
60
|
+
m = Wonkavision::MessageMapper::Map.new({})
|
61
|
+
ctx = {:hi=>true}
|
62
|
+
m.map({"this"=>ctx}, {:map_name=>"map_test"})
|
63
|
+
assert_equal ctx, m.this.ctx
|
64
|
+
end
|
65
|
+
should "Get the context based on provided field name" do
|
66
|
+
m = Wonkavision::MessageMapper::Map.new({:a=>:b})
|
67
|
+
m.map "length" do
|
68
|
+
self.l = context
|
69
|
+
end
|
70
|
+
assert_equal 1,m["length"].l
|
71
|
+
end
|
72
|
+
end
|
73
|
+
context "Map.string" do
|
74
|
+
should "convert the underlying value to a string" do
|
75
|
+
m = Wonkavision::MessageMapper::Map.new({:a=>:b})
|
76
|
+
m.string :a
|
77
|
+
assert_equal "b", m.a
|
78
|
+
end
|
79
|
+
end
|
80
|
+
context "Map.float" do
|
81
|
+
should "convert the underlying value to a float" do
|
82
|
+
m = Wonkavision::MessageMapper::Map.new({:a=>"1"})
|
83
|
+
m.float :a
|
84
|
+
assert_equal 1.0, m.a
|
85
|
+
end
|
86
|
+
end
|
87
|
+
context "Map.iso8601" do
|
88
|
+
should "convert underlying dates into an iso 8601 string" do
|
89
|
+
m = Wonkavision::MessageMapper::Map.new({:a=>Time.parse("02/01/2001 01:00 PM")})
|
90
|
+
m.iso8601 :a
|
91
|
+
assert_equal "2001-02-01T13:00:00", m.a
|
92
|
+
end
|
93
|
+
end
|
94
|
+
context "Map.date" do
|
95
|
+
should "convert a string to a date" do
|
96
|
+
m = Wonkavision::MessageMapper::Map.new({:a=>"01/02/2001"})
|
97
|
+
m.date :a
|
98
|
+
assert_equal "01/02/2001".to_time, m.a
|
99
|
+
end
|
100
|
+
should "accept a date unmolested" do
|
101
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>Date.today)
|
102
|
+
m.date :a
|
103
|
+
assert_equal Date.today, m.a
|
104
|
+
end
|
105
|
+
should "accept a time unmolested" do
|
106
|
+
time = Time.now
|
107
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>time)
|
108
|
+
m.date :a
|
109
|
+
assert_equal time, m.a
|
110
|
+
end
|
111
|
+
end
|
112
|
+
context "Map.boolean" do
|
113
|
+
should "convert a 'true' string to a bool" do
|
114
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>'TruE')
|
115
|
+
m.boolean :a
|
116
|
+
assert m.a
|
117
|
+
end
|
118
|
+
should "convert a 'yes' string a bool" do
|
119
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>'YeS')
|
120
|
+
m.boolean :a
|
121
|
+
assert m.a
|
122
|
+
end
|
123
|
+
should "convert any other string to a false" do
|
124
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>"Whatever")
|
125
|
+
m.boolean :a
|
126
|
+
assert_equal false, m.a
|
127
|
+
end
|
128
|
+
should "accept a proper boolean at face value" do
|
129
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>true)
|
130
|
+
m.boolean :a
|
131
|
+
assert m.a
|
132
|
+
end
|
133
|
+
end
|
134
|
+
context "Map.int" do
|
135
|
+
should "convert a value to an int" do
|
136
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>"5.2")
|
137
|
+
m.int :a
|
138
|
+
assert_equal 5, m.a
|
139
|
+
end
|
140
|
+
end
|
141
|
+
context "Map.value" do
|
142
|
+
context "when the only argument is a hash" do
|
143
|
+
should "iterate the hash, mapping each entry" do
|
144
|
+
context = {:a=>1, :b=>2}
|
145
|
+
m = Wonkavision::MessageMapper::Map.new(context)
|
146
|
+
m.value :c=>context[:a], :d=>context[:b]
|
147
|
+
assert_equal 1, m.c
|
148
|
+
assert_equal 2, m.d
|
149
|
+
end
|
150
|
+
should "evaluate a proc in the context of a proc if provided" do
|
151
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>1)
|
152
|
+
m.value :c=> proc {self[:a]}
|
153
|
+
assert_equal 1, m.c
|
154
|
+
end
|
155
|
+
should "evaluate a block in the context of the provided value" do
|
156
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>1)
|
157
|
+
m.value(:c=>m.context) do
|
158
|
+
self[:a]
|
159
|
+
end
|
160
|
+
assert_equal 1, m.c
|
161
|
+
end
|
162
|
+
end
|
163
|
+
context "when called with a list of names" do
|
164
|
+
should "iterate the list, mapping each entry" do
|
165
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>1, :b=>2)
|
166
|
+
m.value :a, :b
|
167
|
+
assert_equal 1, m.a
|
168
|
+
assert_equal 2, m.b
|
169
|
+
end
|
170
|
+
should "call a method by the same name on the context if present" do
|
171
|
+
m = Wonkavision::MessageMapper::Map.new("01/01/2001")
|
172
|
+
m.value :to_time
|
173
|
+
assert_equal "01/01/2001".to_time, m.to_time
|
174
|
+
end
|
175
|
+
should "index into a hash if provided" do
|
176
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>1)
|
177
|
+
m.value :a
|
178
|
+
assert_equal 1, m.a
|
179
|
+
end
|
180
|
+
should "evaluate a block on the value if provided" do
|
181
|
+
m = Wonkavision::MessageMapper::Map.new(:a=>1)
|
182
|
+
m.value(:a) {to_s}
|
183
|
+
assert_equal "1", m.a
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
187
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class Wonkavision::MessageMapperTest < ActiveSupport::TestCase
|
4
|
+
context "Wonkavision::MessageMapper.execute" do
|
5
|
+
setup do
|
6
|
+
Wonkavision::MessageMapper.register("test_map") do
|
7
|
+
context["i_was_here"] = true
|
8
|
+
end
|
9
|
+
end
|
10
|
+
should "evaluate the named block against a new map" do
|
11
|
+
data = {}
|
12
|
+
Wonkavision::MessageMapper.execute("test_map",data)
|
13
|
+
assert data["i_was_here"]
|
14
|
+
end
|
15
|
+
should "raise an error if the map is missing" do
|
16
|
+
assert_raise RuntimeError do
|
17
|
+
Wonkavision::MessageMapper.execute("I'm not really here", {})
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
unless defined?(::TestEventHandler)
|
2
|
+
class TestEventHandler
|
3
|
+
include Wonkavision::EventHandler
|
4
|
+
|
5
|
+
def self.knids
|
6
|
+
@@knids ||= []
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.reset
|
10
|
+
@@knids = []
|
11
|
+
end
|
12
|
+
|
13
|
+
event_namespace :vermicious
|
14
|
+
|
15
|
+
handle :knid do |data,path|
|
16
|
+
TestEventHandler.knids << [data,path]
|
17
|
+
end
|
18
|
+
|
19
|
+
#handle events in the vermicious namespace
|
20
|
+
handle "*" do |data,path|
|
21
|
+
TestEventHandler.knids << [data,path] if path !~ /.*knid/
|
22
|
+
end
|
23
|
+
|
24
|
+
#handle ALL events in any namespace
|
25
|
+
handle "/*" do |data,path|
|
26
|
+
puts "Handling #{path}. Before: #{TestEventHandler.knids.inspect}"
|
27
|
+
TestEventHandler.knids << [data,path] if path !~ /^vermicious.*/
|
28
|
+
puts "After: #{TestEventHandler.knids.inspect}"
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
class TestBusinessActivity
|
34
|
+
include MongoMapper::Document
|
35
|
+
|
36
|
+
acts_as_timeline
|
37
|
+
|
38
|
+
event_namespace :test
|
39
|
+
correlate_by :test_id
|
40
|
+
|
41
|
+
milestone :ms1, :evt1
|
42
|
+
milestone :ms2, :evt2
|
43
|
+
milestone :ms3, :evt3, '/not_test/evt4'
|
44
|
+
|
45
|
+
map /not_test\/.*/i do
|
46
|
+
import "evt4_test_map"
|
47
|
+
string 'modified_another_field'=> "'#{context["another_field"]}' WAS SERVED!! OH YEAH!! IN-YOUR-FACE!!"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
Wonkavision::MessageMapper.register("evt4_test_map") do
|
52
|
+
string 'test_id'
|
53
|
+
date 'event_time'
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
|
+
|
3
|
+
require "rubygems"
|
4
|
+
require "mongo_mapper"
|
5
|
+
require 'active_support/test_case'
|
6
|
+
require "shoulda"
|
7
|
+
|
8
|
+
dir = File.dirname(__FILE__)
|
9
|
+
require File.join(dir,"..","lib","wonkavision")
|
10
|
+
|
11
|
+
dir = File.expand_path(File.dirname(__FILE__))
|
12
|
+
logdir = File.join(dir,'log')
|
13
|
+
Dir.mkdir(logdir) unless File.directory?(logdir)
|
14
|
+
MongoMapper.setup(YAML.load_file(File.join(dir,'config', 'database.yml')), "test", {
|
15
|
+
:logger => Logger.new(File.join(logdir,'test.log')),
|
16
|
+
:passenger => false
|
17
|
+
})
|
18
|
+
|
19
|
+
module ActiveSupport
|
20
|
+
class TestCase
|
21
|
+
def setup
|
22
|
+
|
23
|
+
end
|
24
|
+
def teardown
|
25
|
+
MongoMapper.database.collections.each do |coll|
|
26
|
+
coll.drop unless coll.name =~ /(.*\.)?system\..*/
|
27
|
+
end
|
28
|
+
Time.reset #Return Time.now to its original state
|
29
|
+
end
|
30
|
+
|
31
|
+
# Make sure that each test case has a teardown
|
32
|
+
# method to clear the db after each test.
|
33
|
+
def inherited(base)
|
34
|
+
base.define_method teardown do
|
35
|
+
super
|
36
|
+
end
|
37
|
+
base.define_method setup do
|
38
|
+
super
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
#This seems like an odd approach - why not just alias now, you ask
|
44
|
+
#well, I did, and for whatever reason, got stack overflows
|
45
|
+
#whenever I'd try to run the test suite. So...um...this doesn't
|
46
|
+
#overflow the stack, so it will do.
|
47
|
+
class Time
|
48
|
+
@@old_now = method(:now)
|
49
|
+
class << self
|
50
|
+
def now=(new_now)
|
51
|
+
@@new_now = new_now.to_time
|
52
|
+
def Time.now
|
53
|
+
@@new_now
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def reset
|
58
|
+
def Time.now
|
59
|
+
@@old_now.call
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
require "test_activity_models"
|
3
|
+
|
4
|
+
class TimelineTest < ActiveSupport::TestCase
|
5
|
+
context "TestBusinessActivity" do
|
6
|
+
should "create the appropriate keys" do
|
7
|
+
assert TestBusinessActivity.keys.keys.include?("timeline")
|
8
|
+
assert TestBusinessActivity.keys.keys.include?("latest_milestone")
|
9
|
+
end
|
10
|
+
should "configure milestones from DSL" do
|
11
|
+
assert_equal 3, TestBusinessActivity.timeline_milestones.length
|
12
|
+
|
13
|
+
assert_equal :ms1, TestBusinessActivity.timeline_milestones[0].name
|
14
|
+
assert_equal "test/evt1", TestBusinessActivity.timeline_milestones[0].events[0]
|
15
|
+
|
16
|
+
assert_equal :ms2, TestBusinessActivity.timeline_milestones[1].name
|
17
|
+
assert_equal "test/evt2", TestBusinessActivity.timeline_milestones[1].events[0]
|
18
|
+
|
19
|
+
assert_equal :ms3, TestBusinessActivity.timeline_milestones[2].name
|
20
|
+
assert_equal "test/evt3", TestBusinessActivity.timeline_milestones[2].events[0]
|
21
|
+
assert_equal "/not_test/evt4", TestBusinessActivity.timeline_milestones[2].events[1]
|
22
|
+
end
|
23
|
+
should "subscribe to all milestone events" do
|
24
|
+
assert Wonkavision.event_coordinator.root_namespace.find_or_create("test/evt1").subscribers.length > 0
|
25
|
+
assert Wonkavision.event_coordinator.root_namespace.find_or_create("test/evt2").subscribers.length > 0
|
26
|
+
assert Wonkavision.event_coordinator.root_namespace.find_or_create("test/evt3").subscribers.length > 0
|
27
|
+
assert Wonkavision.event_coordinator.root_namespace.find_or_create("not_test/evt4").subscribers.length > 0
|
28
|
+
end
|
29
|
+
should "record appropriate milestone time and milestone upon relevant event being received" do
|
30
|
+
event = {"test_id"=>"123","event_time"=>"1/1/2001","another_field"=>"hi there"}
|
31
|
+
Wonkavision.event_coordinator.receive_event("test/evt1",event)
|
32
|
+
assert activity = TestBusinessActivity.find_by_test_id("123")
|
33
|
+
assert_equal "1/1/2001".to_time.utc,activity.timeline["ms1"]
|
34
|
+
assert_equal "hi there", activity.another_field
|
35
|
+
Wonkavision.event_coordinator.receive_event("test/evt2",event)
|
36
|
+
activity = activity.reload
|
37
|
+
assert_equal "1/1/2001".to_time.utc,activity.timeline["ms2"]
|
38
|
+
Wonkavision.event_coordinator.receive_event("test/evt3",event)
|
39
|
+
activity = activity.reload
|
40
|
+
assert_equal "1/1/2001".to_time.utc, activity.timeline["ms3"]
|
41
|
+
event["event_time"] = "1/1/2010"
|
42
|
+
Wonkavision.event_coordinator.receive_event("not_test/evt4",event)
|
43
|
+
activity = activity.reload
|
44
|
+
# timeline for milestone ms3 already set
|
45
|
+
assert_equal "1/1/2001".to_time.utc, activity.timeline["ms3"]
|
46
|
+
assert_equal "ms3", activity.latest_milestone
|
47
|
+
end
|
48
|
+
should "not overwrite latest_milestone when processing an event that occurred prior to the latest milestone event" do
|
49
|
+
event = {"test_id"=>"123","event_time"=>"1/1/2001 08:00"}
|
50
|
+
Wonkavision.event_coordinator.receive_event("test/evt2",event)
|
51
|
+
assert activity = TestBusinessActivity.find_by_test_id("123")
|
52
|
+
assert_equal "1/1/2001 08:00".to_time.utc,activity.timeline["ms2"]
|
53
|
+
assert_equal "ms2", activity.latest_milestone
|
54
|
+
event = {"test_id"=>"123","event_time"=>"1/1/2001 07:00"}
|
55
|
+
Wonkavision.event_coordinator.receive_event("test/evt1",event)
|
56
|
+
activity = activity.reload
|
57
|
+
assert_equal "1/1/2001 07:00".to_time.utc, activity.timeline["ms1"]
|
58
|
+
assert_equal "ms2", activity.latest_milestone
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
data/wonkavision.gemspec
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{wonkavision}
|
8
|
+
s.version = "0.5.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Nathan Stults"]
|
12
|
+
s.date = %q{2010-07-19}
|
13
|
+
s.description = %q{Wonkavision is a small gem that allows you to publish}
|
14
|
+
s.email = %q{hereiam@sonic.net}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
"CHANGELOG.rdoc",
|
21
|
+
"LICENSE.txt",
|
22
|
+
"README.rdoc",
|
23
|
+
"Rakefile",
|
24
|
+
"lib/wonkavision.rb",
|
25
|
+
"lib/wonkavision/acts_as_oompa_loompa.rb",
|
26
|
+
"lib/wonkavision/event.rb",
|
27
|
+
"lib/wonkavision/event_binding.rb",
|
28
|
+
"lib/wonkavision/event_coordinator.rb",
|
29
|
+
"lib/wonkavision/event_handler.rb",
|
30
|
+
"lib/wonkavision/event_namespace.rb",
|
31
|
+
"lib/wonkavision/event_path_segment.rb",
|
32
|
+
"lib/wonkavision/message_mapper.rb",
|
33
|
+
"lib/wonkavision/message_mapper/indifferent_access.rb",
|
34
|
+
"lib/wonkavision/message_mapper/map.rb",
|
35
|
+
"lib/wonkavision/persistence/mongo_mapper_adapter.rb",
|
36
|
+
"lib/wonkavision/plugins.rb",
|
37
|
+
"lib/wonkavision/plugins/business_activity.rb",
|
38
|
+
"lib/wonkavision/plugins/event_handling.rb",
|
39
|
+
"lib/wonkavision/plugins/timeline.rb",
|
40
|
+
"lib/wonkavision/support.rb",
|
41
|
+
"lib/wonkavision/version.rb",
|
42
|
+
"test/business_activity_test.rb",
|
43
|
+
"test/config/database.yml",
|
44
|
+
"test/event_coordinator_test.rb",
|
45
|
+
"test/event_handler_test.rb",
|
46
|
+
"test/event_namespace_test.rb",
|
47
|
+
"test/event_path_segment_test.rb",
|
48
|
+
"test/event_test.rb",
|
49
|
+
"test/log/test.log",
|
50
|
+
"test/map_test.rb",
|
51
|
+
"test/message_mapper_test.rb",
|
52
|
+
"test/test_activity_models.rb",
|
53
|
+
"test/test_helper.rb",
|
54
|
+
"test/timeline_test.rb",
|
55
|
+
"test/wonkavision_test.rb",
|
56
|
+
"wonkavision.gemspec"
|
57
|
+
]
|
58
|
+
s.homepage = %q{http://github.com/PlasticLizard/wonkavision}
|
59
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
60
|
+
s.require_paths = ["lib"]
|
61
|
+
s.rubygems_version = %q{1.3.7}
|
62
|
+
s.summary = %q{Simple Business Activity Monitoring}
|
63
|
+
s.test_files = [
|
64
|
+
"test/business_activity_test.rb",
|
65
|
+
"test/event_coordinator_test.rb",
|
66
|
+
"test/event_handler_test.rb",
|
67
|
+
"test/event_namespace_test.rb",
|
68
|
+
"test/event_path_segment_test.rb",
|
69
|
+
"test/event_test.rb",
|
70
|
+
"test/map_test.rb",
|
71
|
+
"test/message_mapper_test.rb",
|
72
|
+
"test/test_activity_models.rb",
|
73
|
+
"test/test_helper.rb",
|
74
|
+
"test/timeline_test.rb",
|
75
|
+
"test/wonkavision_test.rb"
|
76
|
+
]
|
77
|
+
|
78
|
+
if s.respond_to? :specification_version then
|
79
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
80
|
+
s.specification_version = 3
|
81
|
+
|
82
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
83
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 2.3"])
|
84
|
+
s.add_development_dependency(%q<shoulda>, ["= 2.10.3"])
|
85
|
+
else
|
86
|
+
s.add_dependency(%q<activesupport>, [">= 2.3"])
|
87
|
+
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
|
88
|
+
end
|
89
|
+
else
|
90
|
+
s.add_dependency(%q<activesupport>, [">= 2.3"])
|
91
|
+
s.add_dependency(%q<shoulda>, ["= 2.10.3"])
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|