requires_approval_rails_2 1.0.8 → 1.0.9
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.
- checksums.yaml +4 -4
- data/Gemfile +18 -1
- data/Gemfile.lock +28 -32
- data/Rakefile +15 -5
- data/VERSION +1 -1
- data/lib/requires_approval.rb +55 -70
- data/requires_approval_rails_2.gemspec +2 -2
- data/spec/lib/requires_approval_spec.rb +7 -35
- data/spec/spec_helper.rb +3 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b19005354f9fe49d93f36d8439ab9021079f6d08
|
4
|
+
data.tar.gz: 8aec5974156e1d41db9bd61939000ebf4ef4c3e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c79319fea80be82f71bcf2f834330051f8aa1b4f608564ce01ac838b80d18dede30399ee12967cd39918285275ef9094eb1b0cb62b7191dd230fc216d05802fe
|
7
|
+
data.tar.gz: f6dcfa3b2f198e544c1db4ef20fd334d96bfdd1f1362960937657cc74f6dbf119a9d0e7ad3e203c0e684553bb5f65132dbd2df3f00ee42a20a4dc3aadf005744
|
data/Gemfile
CHANGED
@@ -3,4 +3,21 @@ source "http://rubygems.org"
|
|
3
3
|
# Example:
|
4
4
|
# gem "activesupport", ">= 2.3.5"
|
5
5
|
|
6
|
-
|
6
|
+
gem "activerecord", "~> 2.3"
|
7
|
+
gem "activesupport", "~> 2.3"
|
8
|
+
|
9
|
+
# Add dependencies to develop your gem here.
|
10
|
+
# Include everything needed to run rake, tests, features, etc.
|
11
|
+
group :development do
|
12
|
+
gem "bundler"
|
13
|
+
gem "guard-rspec"
|
14
|
+
gem "guard-bundler"
|
15
|
+
gem "guard-spork"
|
16
|
+
gem "jeweler", "~> 1.8.3"
|
17
|
+
gem "mocha"
|
18
|
+
gem "rdoc"
|
19
|
+
gem "rspec"
|
20
|
+
gem "ruby-debug19", :require => "ruby-debug"
|
21
|
+
gem "sqlite3"
|
22
|
+
gem "yard"
|
23
|
+
end
|
data/Gemfile.lock
CHANGED
@@ -1,55 +1,40 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
requires_approval (1.0.8)
|
5
|
-
activerecord
|
6
|
-
requires_approval
|
7
|
-
|
8
1
|
GEM
|
9
2
|
remote: http://rubygems.org/
|
10
3
|
specs:
|
11
|
-
|
12
|
-
activesupport (= 3.
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
activesupport (= 3.2.14)
|
17
|
-
arel (~> 3.0.2)
|
18
|
-
tzinfo (~> 0.3.29)
|
19
|
-
activesupport (3.2.14)
|
20
|
-
i18n (~> 0.6, >= 0.6.4)
|
21
|
-
multi_json (~> 1.0)
|
22
|
-
arel (3.0.2)
|
23
|
-
builder (3.0.4)
|
4
|
+
activerecord (2.3.12)
|
5
|
+
activesupport (= 2.3.12)
|
6
|
+
activesupport (2.3.12)
|
7
|
+
archive-tar-minitar (0.5.2)
|
8
|
+
columnize (0.3.6)
|
24
9
|
diff-lcs (1.1.3)
|
25
|
-
ffi (1.1.
|
10
|
+
ffi (1.1.0)
|
26
11
|
git (1.2.5)
|
27
|
-
guard (1.3
|
12
|
+
guard (1.2.3)
|
28
13
|
listen (>= 0.4.2)
|
29
14
|
thor (>= 0.14.6)
|
30
15
|
guard-bundler (1.0.0)
|
31
16
|
bundler (~> 1.0)
|
32
17
|
guard (~> 1.1)
|
33
|
-
guard-rspec (1.2.
|
18
|
+
guard-rspec (1.2.0)
|
34
19
|
guard (>= 1.1)
|
35
20
|
guard-spork (1.1.0)
|
36
21
|
guard (>= 1.1)
|
37
22
|
spork (>= 0.8.4)
|
38
|
-
i18n (0.6.5)
|
39
23
|
jeweler (1.8.4)
|
40
24
|
bundler (~> 1.0)
|
41
25
|
git (>= 1.2.5)
|
42
26
|
rake
|
43
27
|
rdoc
|
44
|
-
json (1.7.
|
28
|
+
json (1.7.4)
|
29
|
+
linecache19 (0.5.12)
|
30
|
+
ruby_core_source (>= 0.1.4)
|
45
31
|
listen (0.4.7)
|
46
32
|
rb-fchange (~> 0.0.5)
|
47
33
|
rb-fsevent (~> 0.9.1)
|
48
34
|
rb-inotify (~> 0.8.8)
|
49
35
|
metaclass (0.0.1)
|
50
|
-
mocha (0.12.
|
36
|
+
mocha (0.12.1)
|
51
37
|
metaclass (~> 0.0.1)
|
52
|
-
multi_json (1.8.0)
|
53
38
|
rake (0.9.2.2)
|
54
39
|
rb-fchange (0.0.5)
|
55
40
|
ffi
|
@@ -63,19 +48,30 @@ GEM
|
|
63
48
|
rspec-expectations (~> 2.11.0)
|
64
49
|
rspec-mocks (~> 2.11.0)
|
65
50
|
rspec-core (2.11.1)
|
66
|
-
rspec-expectations (2.11.
|
51
|
+
rspec-expectations (2.11.1)
|
67
52
|
diff-lcs (~> 1.1.3)
|
68
|
-
rspec-mocks (2.11.
|
53
|
+
rspec-mocks (2.11.1)
|
54
|
+
ruby-debug-base19 (0.11.25)
|
55
|
+
columnize (>= 0.3.1)
|
56
|
+
linecache19 (>= 0.5.11)
|
57
|
+
ruby_core_source (>= 0.1.4)
|
58
|
+
ruby-debug19 (0.11.6)
|
59
|
+
columnize (>= 0.3.1)
|
60
|
+
linecache19 (>= 0.5.11)
|
61
|
+
ruby-debug-base19 (>= 0.11.19)
|
62
|
+
ruby_core_source (0.1.5)
|
63
|
+
archive-tar-minitar (>= 0.5.2)
|
69
64
|
spork (0.9.2)
|
70
65
|
sqlite3 (1.3.6)
|
71
|
-
thor (0.
|
72
|
-
tzinfo (0.3.37)
|
66
|
+
thor (0.15.4)
|
73
67
|
yard (0.8.2.1)
|
74
68
|
|
75
69
|
PLATFORMS
|
76
70
|
ruby
|
77
71
|
|
78
72
|
DEPENDENCIES
|
73
|
+
activerecord (~> 2.3)
|
74
|
+
activesupport (~> 2.3)
|
79
75
|
bundler
|
80
76
|
guard-bundler
|
81
77
|
guard-rspec
|
@@ -83,7 +79,7 @@ DEPENDENCIES
|
|
83
79
|
jeweler (~> 1.8.3)
|
84
80
|
mocha
|
85
81
|
rdoc
|
86
|
-
requires_approval!
|
87
82
|
rspec
|
83
|
+
ruby-debug19
|
88
84
|
sqlite3
|
89
85
|
yard
|
data/Rakefile
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
-
Dir.glob('lib/tasks/*.rake').each {|r| import r}
|
4
|
-
require 'rake'
|
5
|
-
|
6
3
|
require 'rubygems'
|
7
4
|
require 'bundler'
|
8
5
|
begin
|
@@ -12,12 +9,12 @@ rescue Bundler::BundlerError => e
|
|
12
9
|
$stderr.puts "Run `bundle install` to install missing gems"
|
13
10
|
exit e.status_code
|
14
11
|
end
|
15
|
-
|
12
|
+
require 'rake'
|
16
13
|
|
17
14
|
require 'jeweler'
|
18
15
|
Jeweler::Tasks.new do |gem|
|
19
16
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
20
|
-
gem.name = "
|
17
|
+
gem.name = "requires_approval_rails_2"
|
21
18
|
gem.homepage = "http://github.com/LifebookerInc/requires_approval"
|
22
19
|
gem.license = "MIT"
|
23
20
|
gem.summary = %Q{Gem to handle versioning and things that require approval}
|
@@ -28,5 +25,18 @@ Jeweler::Tasks.new do |gem|
|
|
28
25
|
end
|
29
26
|
Jeweler::RubygemsDotOrgTasks.new
|
30
27
|
|
28
|
+
require 'rspec/core'
|
29
|
+
require 'rspec/core/rake_task'
|
30
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
31
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
32
|
+
end
|
33
|
+
|
34
|
+
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
35
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
36
|
+
spec.rcov = true
|
37
|
+
end
|
38
|
+
|
39
|
+
task :default => :spec
|
40
|
+
|
31
41
|
require 'yard'
|
32
42
|
YARD::Rake::YardocTask.new
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.9
|
data/lib/requires_approval.rb
CHANGED
@@ -4,9 +4,8 @@ require 'errors'
|
|
4
4
|
|
5
5
|
module RequiresApproval
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
included do |klass|
|
7
|
+
|
8
|
+
def self.included(klass)
|
10
9
|
klass.send(:extend, ClassMethods)
|
11
10
|
end
|
12
11
|
|
@@ -16,10 +15,10 @@ module RequiresApproval
|
|
16
15
|
|
17
16
|
# # approve a list of attributes
|
18
17
|
def approve_attributes(*attributes)
|
19
|
-
|
18
|
+
|
20
19
|
return true unless self.has_pending_changes?
|
21
20
|
|
22
|
-
# validate an normalize our attributes
|
21
|
+
# validate an normalize our attributes
|
23
22
|
attributes = self.check_attributes_for_approval(attributes)
|
24
23
|
|
25
24
|
# make sure that all attributes are provided if we have never
|
@@ -28,7 +27,7 @@ module RequiresApproval
|
|
28
27
|
|
29
28
|
if fields_not_being_approved.present? && self.never_approved?
|
30
29
|
raise PartialApprovalForNewObject.new(
|
31
|
-
"You must approve #{self.fields_requiring_approval.join(", ")} " +
|
30
|
+
"You must approve #{self.fields_requiring_approval.join(", ")} " +
|
32
31
|
"for a new #{self.class.name}"
|
33
32
|
)
|
34
33
|
end
|
@@ -37,26 +36,24 @@ module RequiresApproval
|
|
37
36
|
write_attribute(attr, self.latest_unapproved_version.send(attr))
|
38
37
|
end
|
39
38
|
|
40
|
-
if
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
self.latest_unapproved_version.update_attribute(:is_approved, true)
|
47
|
-
else
|
48
|
-
# makes our latest_unapproved_version approved and
|
49
|
-
# creates another unapproved version with any remaining
|
50
|
-
# attributes
|
51
|
-
self.create_approval_version_record
|
52
|
-
end
|
53
|
-
|
54
|
-
self.update_attributes(:is_frozen => false)
|
55
|
-
self.reload
|
56
|
-
return true
|
39
|
+
# if we have approved all requested changes, make our latest
|
40
|
+
# unapproved version approved -
|
41
|
+
# this is ALWAYS true for a new record even though its pending_changes
|
42
|
+
# hash is forced to have values
|
43
|
+
if self.is_first_version? || self.no_pending_changes?
|
44
|
+
self.latest_unapproved_version.update_attribute(:is_approved, true)
|
57
45
|
else
|
58
|
-
|
46
|
+
# makes our latest_unapproved_version approved and
|
47
|
+
# creates another unapproved version with any remaining
|
48
|
+
# attributes
|
49
|
+
self.create_approval_version_record
|
59
50
|
end
|
51
|
+
|
52
|
+
self.is_frozen = false
|
53
|
+
|
54
|
+
self.save
|
55
|
+
self.reload
|
56
|
+
true
|
60
57
|
end
|
61
58
|
|
62
59
|
def deny_attributes(*attributes)
|
@@ -72,33 +69,20 @@ module RequiresApproval
|
|
72
69
|
true
|
73
70
|
end
|
74
71
|
|
75
|
-
# if we have denied all changes, remove the record
|
76
|
-
# make sure it isn't frozen
|
72
|
+
# if we have denied all changes, remove the record
|
77
73
|
unless self.has_pending_changes?
|
78
74
|
self.latest_unapproved_version.destroy
|
79
|
-
self.update_attribute(:is_frozen, false)
|
80
75
|
else
|
81
76
|
self.latest_unapproved_version.save
|
82
77
|
end
|
83
|
-
|
78
|
+
|
84
79
|
self.reload
|
85
80
|
true
|
86
81
|
end
|
87
82
|
|
88
|
-
def reload(*args)
|
89
|
-
if instance_variable_defined?(:@has_approved_version)
|
90
|
-
remove_instance_variable(:@has_approved_version)
|
91
|
-
end
|
92
|
-
super(*args)
|
93
|
-
end
|
94
|
-
|
95
83
|
# have any of our versions ever been approved?
|
96
84
|
def has_approved_version?
|
97
|
-
|
98
|
-
@has_approved_version = (self.versions.where(:is_approved => true).count > 0)
|
99
|
-
end
|
100
|
-
|
101
|
-
@has_approved_version
|
85
|
+
self.versions.count(:conditions => {:is_approved => true}) > 0
|
102
86
|
end
|
103
87
|
|
104
88
|
# have we already approved all outstanding changes?
|
@@ -119,21 +103,21 @@ module RequiresApproval
|
|
119
103
|
# the changes users have requested since the last approval
|
120
104
|
def pending_changes
|
121
105
|
return {} if self.latest_unapproved_version.blank?
|
122
|
-
|
106
|
+
|
123
107
|
ret = {}
|
124
108
|
# check each field requiring approval
|
125
109
|
self.fields_requiring_approval.each do |field|
|
126
|
-
|
110
|
+
|
127
111
|
# if it is the same in the unapproved as in the parent table
|
128
112
|
# we skip it
|
129
|
-
if self.is_first_version? ||
|
113
|
+
if self.is_first_version? ||
|
130
114
|
self.send(field) != self.latest_unapproved_version.send(field)
|
131
|
-
|
115
|
+
|
132
116
|
# otherwise we get the change set
|
133
117
|
ret[field] = {
|
134
|
-
# our first version is always nil, regardless of the
|
118
|
+
# our first version is always nil, regardless of the
|
135
119
|
# defaults in that table
|
136
|
-
"was" => self.is_first_version? ? nil : self.send(field),
|
120
|
+
"was" => self.is_first_version? ? nil : self.send(field),
|
137
121
|
"became" => self.latest_unapproved_version.send(field)
|
138
122
|
}
|
139
123
|
end
|
@@ -171,7 +155,7 @@ module RequiresApproval
|
|
171
155
|
self.latest_unapproved_version.update_attributes(
|
172
156
|
self.attributes_requiring_approval.merge(:is_approved => true)
|
173
157
|
)
|
174
|
-
# reload so this unapproved version is out of our cache and will not
|
158
|
+
# reload so this unapproved version is out of our cache and will not
|
175
159
|
# get its foreign key unassigned
|
176
160
|
self.latest_unapproved_version(true)
|
177
161
|
|
@@ -192,7 +176,7 @@ module RequiresApproval
|
|
192
176
|
!self.has_approved_version?
|
193
177
|
end
|
194
178
|
|
195
|
-
# ActiveRecord-style attribute hash for the
|
179
|
+
# ActiveRecord-style attribute hash for the
|
196
180
|
# requested changes
|
197
181
|
def pending_attributes
|
198
182
|
ret = {}
|
@@ -220,7 +204,7 @@ module RequiresApproval
|
|
220
204
|
# adds our versions table
|
221
205
|
self.drop_versions_table
|
222
206
|
self.create_versions_table
|
223
|
-
|
207
|
+
|
224
208
|
end
|
225
209
|
|
226
210
|
def requires_approval_for(*attrs)
|
@@ -235,14 +219,13 @@ module RequiresApproval
|
|
235
219
|
|
236
220
|
# create a blank version before create to handle if no
|
237
221
|
# attributes were ever set
|
238
|
-
self.
|
239
|
-
:latest_unapproved_version_with_nil_check
|
240
|
-
:on => :create
|
222
|
+
self.before_validation_on_create(
|
223
|
+
:latest_unapproved_version_with_nil_check
|
241
224
|
)
|
242
|
-
|
225
|
+
|
243
226
|
# create the versions class
|
244
227
|
self.create_versions_class
|
245
|
-
self.has_many :versions,
|
228
|
+
self.has_many :versions,
|
246
229
|
:class_name => self.versions_class.name,
|
247
230
|
:foreign_key => self.versions_foreign_key
|
248
231
|
|
@@ -253,11 +236,10 @@ module RequiresApproval
|
|
253
236
|
:conditions => [
|
254
237
|
"#{self.versions_table_name}.is_approved = ?", false
|
255
238
|
]
|
256
|
-
end
|
257
239
|
|
258
|
-
|
259
|
-
|
260
|
-
|
240
|
+
self.set_up_scopes
|
241
|
+
|
242
|
+
|
261
243
|
end
|
262
244
|
|
263
245
|
# the class which our versions are
|
@@ -286,9 +268,9 @@ module RequiresApproval
|
|
286
268
|
# create a class
|
287
269
|
def create_versions_class
|
288
270
|
versions_table_name = self.versions_table_name
|
289
|
-
|
271
|
+
|
290
272
|
self.const_set self.versions_class_name, Class.new(ActiveRecord::Base)
|
291
|
-
|
273
|
+
|
292
274
|
self.versions_class.class_eval do
|
293
275
|
self.table_name = versions_table_name
|
294
276
|
end
|
@@ -327,18 +309,27 @@ module RequiresApproval
|
|
327
309
|
@versions_table_name = opts.delete(:versions_table_name)
|
328
310
|
end
|
329
311
|
|
312
|
+
def set_up_scopes
|
313
|
+
self.named_scope(:unapproved, {
|
314
|
+
:include => [:latest_unapproved_version],
|
315
|
+
:conditions => [
|
316
|
+
"#{self.versions_table_name}.id IS NOT NULL"
|
317
|
+
]
|
318
|
+
})
|
319
|
+
end
|
320
|
+
|
330
321
|
def set_up_version_delegates
|
331
322
|
self.fields_requiring_approval.each do |f|
|
332
323
|
define_method("#{f}=") do |val|
|
333
324
|
# type cast our val so "0" changes to 'false'
|
334
325
|
type_casted_val = self.column_for_attribute(f).type_cast(val)
|
335
|
-
|
326
|
+
|
336
327
|
# if we have a latest_unapproved version already, let it handle
|
337
|
-
# updates - if not, only create one if the type casted value is
|
328
|
+
# updates - if not, only create one if the type casted value is
|
338
329
|
# not the same as what is in the parent value
|
339
|
-
if self.latest_unapproved_version.present? ||
|
330
|
+
if self.latest_unapproved_version.present? ||
|
340
331
|
type_casted_val != self.send(f)
|
341
|
-
|
332
|
+
|
342
333
|
self.send("#{f}_will_change!")
|
343
334
|
self.latest_unapproved_version_with_nil_check.send("#{f}=", val)
|
344
335
|
end
|
@@ -346,12 +337,6 @@ module RequiresApproval
|
|
346
337
|
end
|
347
338
|
end
|
348
339
|
|
349
|
-
def validates_approved_field(*args)
|
350
|
-
self.versions_class.class_eval do
|
351
|
-
validates(*args)
|
352
|
-
end
|
353
|
-
end
|
354
|
-
|
355
340
|
# class name for our versions
|
356
341
|
def versions_class_name
|
357
342
|
@versions_class_name ||= "Version"
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "requires_approval_rails_2"
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Dan Langevin"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-10-12"
|
13
13
|
s.description = "Gem to handle versioning and things that require approval"
|
14
14
|
s.email = "dan.langevin@lifebooker.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -235,12 +235,12 @@ describe RequiresApproval do
|
|
235
235
|
user.reload
|
236
236
|
|
237
237
|
user.latest_unapproved_version.should be nil
|
238
|
-
|
239
238
|
user.update_attributes(
|
240
239
|
:first_name => user.first_name,
|
241
240
|
:last_name => user.last_name
|
242
241
|
)
|
243
242
|
user.reload
|
243
|
+
|
244
244
|
user.latest_unapproved_version.should be nil
|
245
245
|
|
246
246
|
|
@@ -266,12 +266,13 @@ describe RequiresApproval do
|
|
266
266
|
|
267
267
|
end
|
268
268
|
|
269
|
-
context "
|
269
|
+
context "validation" do
|
270
270
|
|
271
271
|
it "should delegate to the requires_approval field" do
|
272
272
|
User.class_eval do
|
273
|
-
|
274
|
-
:
|
273
|
+
self.versions_class.class_eval do
|
274
|
+
validates_presence_of :first_name
|
275
|
+
end
|
275
276
|
end
|
276
277
|
|
277
278
|
user = User.new
|
@@ -332,7 +333,8 @@ describe RequiresApproval do
|
|
332
333
|
})
|
333
334
|
|
334
335
|
# should create an approved version
|
335
|
-
user.versions.
|
336
|
+
count = user.versions.count(:conditions => {:is_approved => true})
|
337
|
+
count.should be > 0
|
336
338
|
|
337
339
|
end
|
338
340
|
|
@@ -385,19 +387,6 @@ describe RequiresApproval do
|
|
385
387
|
|
386
388
|
end
|
387
389
|
|
388
|
-
it "should not approve the latest unapproved version if it is invalid" do
|
389
|
-
|
390
|
-
user = User.new(
|
391
|
-
:first_name => "Dan",
|
392
|
-
:last_name => "Langevin",
|
393
|
-
:birthday => Date.today
|
394
|
-
)
|
395
|
-
|
396
|
-
user.stubs(:save => false)
|
397
|
-
user.approve_all_attributes.should eql false
|
398
|
-
|
399
|
-
end
|
400
|
-
|
401
390
|
end
|
402
391
|
|
403
392
|
context "#deny_attributes" do
|
@@ -475,23 +464,6 @@ describe RequiresApproval do
|
|
475
464
|
)
|
476
465
|
end
|
477
466
|
|
478
|
-
it "should set is_frozen to false when denying all attributes" do
|
479
|
-
|
480
|
-
u = User.create(
|
481
|
-
:first_name => "Dan",
|
482
|
-
:last_name => "Langevin",
|
483
|
-
:birthday => Date.today
|
484
|
-
)
|
485
|
-
u.approve_all_attributes
|
486
|
-
|
487
|
-
u.update_attributes(:first_name => "Changed!", :is_frozen => true)
|
488
|
-
u.is_frozen?.should eql(true)
|
489
|
-
|
490
|
-
u.deny_attributes(:first_name)
|
491
|
-
u.is_frozen?.should eql(false)
|
492
|
-
|
493
|
-
end
|
494
|
-
|
495
467
|
end
|
496
468
|
|
497
469
|
context "#has_approved_version?" do
|
data/spec/spec_helper.rb
CHANGED
@@ -13,6 +13,9 @@ Spork.prefork do
|
|
13
13
|
require 'rspec'
|
14
14
|
require 'requires_approval'
|
15
15
|
|
16
|
+
require 'ruby-debug'
|
17
|
+
Debugger.start
|
18
|
+
|
16
19
|
# Requires supporting files with custom matchers and macros, etc,
|
17
20
|
# in ./support/ and its subdirectories.
|
18
21
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: requires_approval_rails_2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Langevin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2012-
|
11
|
+
date: 2012-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|