lifeboat 0.5.0 → 0.6.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/VERSION +1 -1
- data/lib/lifeboat.rb +47 -9
- data/lifeboat.gemspec +5 -4
- data/spec/lifeboat_spec.rb +3 -0
- metadata +25 -46
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
data/lib/lifeboat.rb
CHANGED
@@ -15,10 +15,10 @@ end
|
|
15
15
|
|
16
16
|
class Credentials
|
17
17
|
def initialize
|
18
|
-
# TRIED USING THE INITIALIZE FOR THOSE YAML LOADING DOWN THERE
|
19
|
-
# BUT IT WAS GIVING ME CRAP AND HAD TO DUPLICATE THE LINE
|
20
|
-
# MY GUEST IS THAT IT IS B/C THEY ARE CLASS METHODS
|
21
|
-
# TODO: RESEARCH HOW TO REFACTOR OUT
|
18
|
+
# TRIED USING THE INITIALIZE FOR THOSE YAML LOADING DOWN THERE
|
19
|
+
# BUT IT WAS GIVING ME CRAP AND HAD TO DUPLICATE THE LINE
|
20
|
+
# MY GUEST IS THAT IT IS B/C THEY ARE CLASS METHODS
|
21
|
+
# TODO: RESEARCH HOW TO REFACTOR OUT
|
22
22
|
end
|
23
23
|
|
24
24
|
begin
|
@@ -34,6 +34,17 @@ class Credentials
|
|
34
34
|
end
|
35
35
|
|
36
36
|
|
37
|
+
class RescateLifeBoat
|
38
|
+
|
39
|
+
@queue = :lifeboats
|
40
|
+
|
41
|
+
def self.perform(action, klass, id)
|
42
|
+
record = klass.camelize.constantize.find(id)
|
43
|
+
record.send(action)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
37
48
|
module LifeBoat
|
38
49
|
|
39
50
|
def self.read_queue(name)
|
@@ -42,12 +53,39 @@ module LifeBoat
|
|
42
53
|
return @cue.queue(name).receive_messages
|
43
54
|
end
|
44
55
|
|
56
|
+
module ResqueCallbacks
|
57
|
+
def create_resque_lifeboat
|
58
|
+
if RAILS_ENV == "testing"
|
59
|
+
self.create_lifeboat
|
60
|
+
else
|
61
|
+
Resque.enqueue(RescateLifeBoat, :create_lifeboat ,self.class.name, self.id)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def destroy_resque_lifeboat
|
66
|
+
if RAILS_ENV == "testing"
|
67
|
+
self.destroy_lifeboat
|
68
|
+
else
|
69
|
+
Resque.enqueue(RescateLifeBoat, :destroy_lifeboat, self.class.name, self.id)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def update_resque_lifeboat
|
74
|
+
if RAILS_ENV == "testing"
|
75
|
+
self.update_lifeboat
|
76
|
+
else
|
77
|
+
Resque.enqueue(RescateLifeBoat, :update_lifeboat ,self.class.name, self.id)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
|
45
83
|
module ActiveRecord
|
84
|
+
|
85
|
+
|
46
86
|
def has_lifeboat(options={})
|
47
87
|
include LifeBoat::Queues
|
48
88
|
|
49
|
-
|
50
|
-
|
51
89
|
if options[:format] == :xml
|
52
90
|
format = :to_xml
|
53
91
|
else
|
@@ -74,9 +112,9 @@ module LifeBoat
|
|
74
112
|
def self.included(base)
|
75
113
|
raise "Object Lacks Proper Callbacks" unless base.respond_to? :after_create
|
76
114
|
base.class_eval do
|
77
|
-
after_create :
|
78
|
-
after_destroy :
|
79
|
-
after_update :
|
115
|
+
after_create :create_resque_lifeboat
|
116
|
+
after_destroy :destroy_resque_lifeboat
|
117
|
+
after_update :update_resque_lifeboat
|
80
118
|
end
|
81
119
|
end
|
82
120
|
end
|
data/lifeboat.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{lifeboat}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.6.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ivan Acosta-Rubio"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-11-15}
|
13
13
|
s.description = %q{ }
|
14
14
|
s.email = %q{ivan@bakedweb.net}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -35,16 +35,17 @@ Gem::Specification.new do |s|
|
|
35
35
|
s.homepage = %q{http://github.com/ivanacostarubio/lifeboat}
|
36
36
|
s.licenses = ["MIT"]
|
37
37
|
s.require_paths = ["lib"]
|
38
|
-
s.rubygems_version = %q{1.
|
38
|
+
s.rubygems_version = %q{1.3.6}
|
39
39
|
s.summary = %q{sends messages to SQS}
|
40
40
|
s.test_files = [
|
41
41
|
"spec/lifeboat_spec.rb"
|
42
42
|
]
|
43
43
|
|
44
44
|
if s.respond_to? :specification_version then
|
45
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
45
46
|
s.specification_version = 3
|
46
47
|
|
47
|
-
if Gem::Version.new(Gem::
|
48
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
48
49
|
s.add_runtime_dependency(%q<right_aws>, [">= 1.10.0"])
|
49
50
|
s.add_runtime_dependency(%q<activerecord>, [">= 2.1.2"])
|
50
51
|
s.add_runtime_dependency(%q<mysql>, ["= 2.8.1"])
|
data/spec/lifeboat_spec.rb
CHANGED
@@ -31,16 +31,19 @@ end
|
|
31
31
|
rebuild_model
|
32
32
|
|
33
33
|
class FakeModel < ActiveRecord::Base
|
34
|
+
include LifeBoat::ResqueCallbacks
|
34
35
|
attr_accessor :name, :email, :phone
|
35
36
|
has_lifeboat
|
36
37
|
end
|
37
38
|
|
38
39
|
class Fake < ActiveRecord::Base
|
40
|
+
include LifeBoat::ResqueCallbacks
|
39
41
|
attr_accessor :name
|
40
42
|
has_lifeboat
|
41
43
|
end
|
42
44
|
|
43
45
|
class XMLRecord < ActiveRecord::Base
|
46
|
+
include LifeBoat::ResqueCallbacks
|
44
47
|
attr_accessor :name
|
45
48
|
has_lifeboat :format => :xml
|
46
49
|
end
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lifeboat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
|
-
-
|
7
|
+
- 6
|
9
8
|
- 0
|
10
|
-
version: 0.
|
9
|
+
version: 0.6.0
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Ivan Acosta-Rubio
|
@@ -15,146 +14,129 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2011-
|
17
|
+
date: 2011-11-15 00:00:00 -03:00
|
18
|
+
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
+
type: :runtime
|
21
22
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
-
none: false
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
hash: 63
|
27
26
|
segments:
|
28
27
|
- 1
|
29
28
|
- 10
|
30
29
|
- 0
|
31
30
|
version: 1.10.0
|
31
|
+
requirement: *id001
|
32
32
|
name: right_aws
|
33
33
|
prerelease: false
|
34
|
-
type: :runtime
|
35
|
-
requirement: *id001
|
36
34
|
- !ruby/object:Gem::Dependency
|
35
|
+
type: :runtime
|
37
36
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
|
-
none: false
|
39
37
|
requirements:
|
40
38
|
- - ">="
|
41
39
|
- !ruby/object:Gem::Version
|
42
|
-
hash: 15
|
43
40
|
segments:
|
44
41
|
- 2
|
45
42
|
- 1
|
46
43
|
- 2
|
47
44
|
version: 2.1.2
|
45
|
+
requirement: *id002
|
48
46
|
name: activerecord
|
49
47
|
prerelease: false
|
50
|
-
type: :runtime
|
51
|
-
requirement: *id002
|
52
48
|
- !ruby/object:Gem::Dependency
|
49
|
+
type: :runtime
|
53
50
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
|
-
none: false
|
55
51
|
requirements:
|
56
52
|
- - "="
|
57
53
|
- !ruby/object:Gem::Version
|
58
|
-
hash: 45
|
59
54
|
segments:
|
60
55
|
- 2
|
61
56
|
- 8
|
62
57
|
- 1
|
63
58
|
version: 2.8.1
|
59
|
+
requirement: *id003
|
64
60
|
name: mysql
|
65
61
|
prerelease: false
|
66
|
-
type: :runtime
|
67
|
-
requirement: *id003
|
68
62
|
- !ruby/object:Gem::Dependency
|
63
|
+
type: :development
|
69
64
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
65
|
requirements:
|
72
66
|
- - "="
|
73
67
|
- !ruby/object:Gem::Version
|
74
|
-
hash: 27
|
75
68
|
segments:
|
76
69
|
- 2
|
77
70
|
- 5
|
78
71
|
- 0
|
79
72
|
version: 2.5.0
|
73
|
+
requirement: *id004
|
80
74
|
name: rspec
|
81
75
|
prerelease: false
|
82
|
-
type: :development
|
83
|
-
requirement: *id004
|
84
76
|
- !ruby/object:Gem::Dependency
|
77
|
+
type: :development
|
85
78
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
86
|
-
none: false
|
87
79
|
requirements:
|
88
80
|
- - ">="
|
89
81
|
- !ruby/object:Gem::Version
|
90
|
-
hash: 3
|
91
82
|
segments:
|
92
83
|
- 0
|
93
84
|
version: "0"
|
85
|
+
requirement: *id005
|
94
86
|
name: shoulda
|
95
87
|
prerelease: false
|
96
|
-
type: :development
|
97
|
-
requirement: *id005
|
98
88
|
- !ruby/object:Gem::Dependency
|
89
|
+
type: :development
|
99
90
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
101
91
|
requirements:
|
102
92
|
- - ~>
|
103
93
|
- !ruby/object:Gem::Version
|
104
|
-
hash: 23
|
105
94
|
segments:
|
106
95
|
- 1
|
107
96
|
- 0
|
108
97
|
- 0
|
109
98
|
version: 1.0.0
|
99
|
+
requirement: *id006
|
110
100
|
name: bundler
|
111
101
|
prerelease: false
|
112
|
-
type: :development
|
113
|
-
requirement: *id006
|
114
102
|
- !ruby/object:Gem::Dependency
|
103
|
+
type: :development
|
115
104
|
version_requirements: &id007 !ruby/object:Gem::Requirement
|
116
|
-
none: false
|
117
105
|
requirements:
|
118
106
|
- - ~>
|
119
107
|
- !ruby/object:Gem::Version
|
120
|
-
hash: 7
|
121
108
|
segments:
|
122
109
|
- 1
|
123
110
|
- 5
|
124
111
|
- 2
|
125
112
|
version: 1.5.2
|
113
|
+
requirement: *id007
|
126
114
|
name: jeweler
|
127
115
|
prerelease: false
|
128
|
-
type: :development
|
129
|
-
requirement: *id007
|
130
116
|
- !ruby/object:Gem::Dependency
|
117
|
+
type: :development
|
131
118
|
version_requirements: &id008 !ruby/object:Gem::Requirement
|
132
|
-
none: false
|
133
119
|
requirements:
|
134
120
|
- - ">="
|
135
121
|
- !ruby/object:Gem::Version
|
136
|
-
hash: 3
|
137
122
|
segments:
|
138
123
|
- 0
|
139
124
|
version: "0"
|
125
|
+
requirement: *id008
|
140
126
|
name: rcov
|
141
127
|
prerelease: false
|
142
|
-
type: :development
|
143
|
-
requirement: *id008
|
144
128
|
- !ruby/object:Gem::Dependency
|
129
|
+
type: :development
|
145
130
|
version_requirements: &id009 !ruby/object:Gem::Requirement
|
146
|
-
none: false
|
147
131
|
requirements:
|
148
132
|
- - ">="
|
149
133
|
- !ruby/object:Gem::Version
|
150
|
-
hash: 3
|
151
134
|
segments:
|
152
135
|
- 0
|
153
136
|
version: "0"
|
137
|
+
requirement: *id009
|
154
138
|
name: autotest
|
155
139
|
prerelease: false
|
156
|
-
type: :development
|
157
|
-
requirement: *id009
|
158
140
|
description: " "
|
159
141
|
email: ivan@bakedweb.net
|
160
142
|
executables: []
|
@@ -179,6 +161,7 @@ files:
|
|
179
161
|
- lifeboat.gemspec
|
180
162
|
- spec/lifeboat_spec.rb
|
181
163
|
- support/lifeboat.png
|
164
|
+
has_rdoc: true
|
182
165
|
homepage: http://github.com/ivanacostarubio/lifeboat
|
183
166
|
licenses:
|
184
167
|
- MIT
|
@@ -188,27 +171,23 @@ rdoc_options: []
|
|
188
171
|
require_paths:
|
189
172
|
- lib
|
190
173
|
required_ruby_version: !ruby/object:Gem::Requirement
|
191
|
-
none: false
|
192
174
|
requirements:
|
193
175
|
- - ">="
|
194
176
|
- !ruby/object:Gem::Version
|
195
|
-
hash: 3
|
196
177
|
segments:
|
197
178
|
- 0
|
198
179
|
version: "0"
|
199
180
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
200
|
-
none: false
|
201
181
|
requirements:
|
202
182
|
- - ">="
|
203
183
|
- !ruby/object:Gem::Version
|
204
|
-
hash: 3
|
205
184
|
segments:
|
206
185
|
- 0
|
207
186
|
version: "0"
|
208
187
|
requirements: []
|
209
188
|
|
210
189
|
rubyforge_project:
|
211
|
-
rubygems_version: 1.
|
190
|
+
rubygems_version: 1.3.6
|
212
191
|
signing_key:
|
213
192
|
specification_version: 3
|
214
193
|
summary: sends messages to SQS
|