requires_approval_rails_2 1.0.1 → 1.0.2
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/Gemfile +2 -2
- data/Gemfile.lock +26 -13
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/requires_approval.rb +49 -21
- data/requires_approval_rails_2.gemspec +2 -2
- data/spec/lib/requires_approval_spec.rb +87 -8
- metadata +31 -29
data/Gemfile
CHANGED
@@ -3,8 +3,8 @@ source "http://rubygems.org"
|
|
3
3
|
# Example:
|
4
4
|
# gem "activesupport", ">= 2.3.5"
|
5
5
|
|
6
|
-
gem "activerecord", "~>
|
7
|
-
gem "activesupport", "~>
|
6
|
+
gem "activerecord", "~> 3"
|
7
|
+
gem "activesupport", "~> 3"
|
8
8
|
|
9
9
|
# Add dependencies to develop your gem here.
|
10
10
|
# Include everything needed to run rake, tests, features, etc.
|
data/Gemfile.lock
CHANGED
@@ -1,31 +1,42 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
5
|
-
activesupport (= 2.
|
6
|
-
|
4
|
+
activemodel (3.2.8)
|
5
|
+
activesupport (= 3.2.8)
|
6
|
+
builder (~> 3.0.0)
|
7
|
+
activerecord (3.2.8)
|
8
|
+
activemodel (= 3.2.8)
|
9
|
+
activesupport (= 3.2.8)
|
10
|
+
arel (~> 3.0.2)
|
11
|
+
tzinfo (~> 0.3.29)
|
12
|
+
activesupport (3.2.8)
|
13
|
+
i18n (~> 0.6)
|
14
|
+
multi_json (~> 1.0)
|
7
15
|
archive-tar-minitar (0.5.2)
|
16
|
+
arel (3.0.2)
|
17
|
+
builder (3.0.0)
|
8
18
|
columnize (0.3.6)
|
9
19
|
diff-lcs (1.1.3)
|
10
|
-
ffi (1.1.
|
20
|
+
ffi (1.1.5)
|
11
21
|
git (1.2.5)
|
12
|
-
guard (1.2
|
22
|
+
guard (1.3.2)
|
13
23
|
listen (>= 0.4.2)
|
14
24
|
thor (>= 0.14.6)
|
15
25
|
guard-bundler (1.0.0)
|
16
26
|
bundler (~> 1.0)
|
17
27
|
guard (~> 1.1)
|
18
|
-
guard-rspec (1.2.
|
28
|
+
guard-rspec (1.2.1)
|
19
29
|
guard (>= 1.1)
|
20
30
|
guard-spork (1.1.0)
|
21
31
|
guard (>= 1.1)
|
22
32
|
spork (>= 0.8.4)
|
33
|
+
i18n (0.6.0)
|
23
34
|
jeweler (1.8.4)
|
24
35
|
bundler (~> 1.0)
|
25
36
|
git (>= 1.2.5)
|
26
37
|
rake
|
27
38
|
rdoc
|
28
|
-
json (1.7.
|
39
|
+
json (1.7.5)
|
29
40
|
linecache19 (0.5.12)
|
30
41
|
ruby_core_source (>= 0.1.4)
|
31
42
|
listen (0.4.7)
|
@@ -33,8 +44,9 @@ GEM
|
|
33
44
|
rb-fsevent (~> 0.9.1)
|
34
45
|
rb-inotify (~> 0.8.8)
|
35
46
|
metaclass (0.0.1)
|
36
|
-
mocha (0.12.
|
47
|
+
mocha (0.12.3)
|
37
48
|
metaclass (~> 0.0.1)
|
49
|
+
multi_json (1.3.6)
|
38
50
|
rake (0.9.2.2)
|
39
51
|
rb-fchange (0.0.5)
|
40
52
|
ffi
|
@@ -48,9 +60,9 @@ GEM
|
|
48
60
|
rspec-expectations (~> 2.11.0)
|
49
61
|
rspec-mocks (~> 2.11.0)
|
50
62
|
rspec-core (2.11.1)
|
51
|
-
rspec-expectations (2.11.
|
63
|
+
rspec-expectations (2.11.2)
|
52
64
|
diff-lcs (~> 1.1.3)
|
53
|
-
rspec-mocks (2.11.
|
65
|
+
rspec-mocks (2.11.2)
|
54
66
|
ruby-debug-base19 (0.11.25)
|
55
67
|
columnize (>= 0.3.1)
|
56
68
|
linecache19 (>= 0.5.11)
|
@@ -63,15 +75,16 @@ GEM
|
|
63
75
|
archive-tar-minitar (>= 0.5.2)
|
64
76
|
spork (0.9.2)
|
65
77
|
sqlite3 (1.3.6)
|
66
|
-
thor (0.
|
78
|
+
thor (0.16.0)
|
79
|
+
tzinfo (0.3.33)
|
67
80
|
yard (0.8.2.1)
|
68
81
|
|
69
82
|
PLATFORMS
|
70
83
|
ruby
|
71
84
|
|
72
85
|
DEPENDENCIES
|
73
|
-
activerecord (~>
|
74
|
-
activesupport (~>
|
86
|
+
activerecord (~> 3)
|
87
|
+
activesupport (~> 3)
|
75
88
|
bundler
|
76
89
|
guard-bundler
|
77
90
|
guard-rspec
|
data/Rakefile
CHANGED
@@ -14,7 +14,7 @@ require 'rake'
|
|
14
14
|
require 'jeweler'
|
15
15
|
Jeweler::Tasks.new do |gem|
|
16
16
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
-
gem.name = "
|
17
|
+
gem.name = "requires_approval"
|
18
18
|
gem.homepage = "http://github.com/LifebookerInc/requires_approval"
|
19
19
|
gem.license = "MIT"
|
20
20
|
gem.summary = %Q{Gem to handle versioning and things that require approval}
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.5
|
data/lib/requires_approval.rb
CHANGED
@@ -4,8 +4,9 @@ require 'errors'
|
|
4
4
|
|
5
5
|
module RequiresApproval
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
|
9
|
+
included do |klass|
|
9
10
|
klass.send(:extend, ClassMethods)
|
10
11
|
end
|
11
12
|
|
@@ -16,6 +17,8 @@ module RequiresApproval
|
|
16
17
|
# # approve a list of attributes
|
17
18
|
def approve_attributes(*attributes)
|
18
19
|
|
20
|
+
return true unless self.has_pending_changes?
|
21
|
+
|
19
22
|
# validate an normalize our attributes
|
20
23
|
attributes = self.check_attributes_for_approval(attributes)
|
21
24
|
|
@@ -35,8 +38,10 @@ module RequiresApproval
|
|
35
38
|
end
|
36
39
|
|
37
40
|
# if we have approved all requested changes, make our latest
|
38
|
-
# unapproved version approved
|
39
|
-
|
41
|
+
# unapproved version approved -
|
42
|
+
# this is ALWAYS true for a new record even though its pending_changes
|
43
|
+
# hash is forced to have values
|
44
|
+
if self.is_first_version? || self.no_pending_changes?
|
40
45
|
self.latest_unapproved_version.update_attribute(:is_approved, true)
|
41
46
|
else
|
42
47
|
# makes our latest_unapproved_version approved and
|
@@ -78,7 +83,7 @@ module RequiresApproval
|
|
78
83
|
|
79
84
|
# have any of our versions ever been approved?
|
80
85
|
def has_approved_version?
|
81
|
-
self.versions.
|
86
|
+
self.versions.where(:is_approved => true).count > 0
|
82
87
|
end
|
83
88
|
|
84
89
|
# have we already approved all outstanding changes?
|
@@ -86,6 +91,16 @@ module RequiresApproval
|
|
86
91
|
self.pending_changes.present?
|
87
92
|
end
|
88
93
|
|
94
|
+
# are we the first version?
|
95
|
+
def is_first_version?
|
96
|
+
!self.has_approved_version?
|
97
|
+
end
|
98
|
+
|
99
|
+
# returns true if there are no changes to approve
|
100
|
+
def no_pending_changes?
|
101
|
+
!self.has_pending_changes?
|
102
|
+
end
|
103
|
+
|
89
104
|
# the changes users have requested since the last approval
|
90
105
|
def pending_changes
|
91
106
|
return {} if self.latest_unapproved_version.blank?
|
@@ -93,12 +108,17 @@ module RequiresApproval
|
|
93
108
|
ret = {}
|
94
109
|
# check each field requiring approval
|
95
110
|
self.fields_requiring_approval.each do |field|
|
111
|
+
|
96
112
|
# if it is the same in the unapproved as in the parent table
|
97
113
|
# we skip it
|
98
|
-
|
114
|
+
if self.is_first_version? ||
|
115
|
+
self.send(field) != self.latest_unapproved_version.send(field)
|
116
|
+
|
99
117
|
# otherwise we get the change set
|
100
118
|
ret[field] = {
|
101
|
-
|
119
|
+
# our first version is always nil, regardless of the
|
120
|
+
# defaults in that table
|
121
|
+
"was" => self.is_first_version? ? nil : self.send(field),
|
102
122
|
"became" => self.latest_unapproved_version.send(field)
|
103
123
|
}
|
104
124
|
end
|
@@ -218,10 +238,11 @@ module RequiresApproval
|
|
218
238
|
:conditions => [
|
219
239
|
"#{self.versions_table_name}.is_approved = ?", false
|
220
240
|
]
|
241
|
+
end
|
221
242
|
|
222
|
-
|
223
|
-
|
224
|
-
|
243
|
+
def unapproved
|
244
|
+
includes(:latest_unapproved_version)
|
245
|
+
.where("#{self.versions_table_name}.id IS NOT NULL")
|
225
246
|
end
|
226
247
|
|
227
248
|
# the class which our versions are
|
@@ -291,24 +312,31 @@ module RequiresApproval
|
|
291
312
|
@versions_table_name = opts.delete(:versions_table_name)
|
292
313
|
end
|
293
314
|
|
294
|
-
def set_up_scopes
|
295
|
-
self.named_scope(:unapproved, {
|
296
|
-
:include => [:latest_unapproved_version],
|
297
|
-
:conditions => [
|
298
|
-
"#{self.versions_table_name}.id IS NOT NULL"
|
299
|
-
]
|
300
|
-
})
|
301
|
-
end
|
302
|
-
|
303
315
|
def set_up_version_delegates
|
304
316
|
self.fields_requiring_approval.each do |f|
|
305
317
|
define_method("#{f}=") do |val|
|
306
|
-
|
307
|
-
self.
|
318
|
+
# type cast our val so "0" changes to 'false'
|
319
|
+
type_casted_val = self.column_for_attribute(f).type_cast(val)
|
320
|
+
|
321
|
+
# if we have a latest_unapproved version already, let it handle
|
322
|
+
# updates - if not, only create one if the type casted value is
|
323
|
+
# not the same as what is in the parent value
|
324
|
+
if self.latest_unapproved_version.present? ||
|
325
|
+
type_casted_val != self.send(f)
|
326
|
+
|
327
|
+
self.send("#{f}_will_change!")
|
328
|
+
self.latest_unapproved_version_with_nil_check.send("#{f}=", val)
|
329
|
+
end
|
308
330
|
end
|
309
331
|
end
|
310
332
|
end
|
311
333
|
|
334
|
+
def validates_approved_field(*args)
|
335
|
+
self.versions_class.class_eval do
|
336
|
+
validates(*args)
|
337
|
+
end
|
338
|
+
end
|
339
|
+
|
312
340
|
# class name for our versions
|
313
341
|
def versions_class_name
|
314
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.2"
|
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 = [
|
@@ -13,17 +13,44 @@ describe RequiresApproval do
|
|
13
13
|
t.string(:first_name)
|
14
14
|
t.string(:last_name)
|
15
15
|
t.date(:birthday)
|
16
|
+
t.boolean(:is_alive, :default => true)
|
16
17
|
t.timestamps
|
17
18
|
end
|
18
19
|
|
19
20
|
class User < ActiveRecord::Base
|
20
|
-
requires_approval_for(:first_name, :last_name)
|
21
|
+
requires_approval_for(:first_name, :last_name, :is_alive)
|
21
22
|
end
|
22
23
|
|
23
24
|
User.prepare_tables_for_requires_approval
|
24
25
|
|
25
26
|
end
|
26
27
|
|
28
|
+
context "#pending_changes" do
|
29
|
+
|
30
|
+
it "gives back all attributes when it is a new record" do
|
31
|
+
user = User.create(
|
32
|
+
:first_name => "Dan",
|
33
|
+
:last_name => "Test",
|
34
|
+
:is_alive => true
|
35
|
+
)
|
36
|
+
user.pending_changes.should eql({
|
37
|
+
"first_name" => {
|
38
|
+
"was" => nil,
|
39
|
+
"became" => "Dan"
|
40
|
+
},
|
41
|
+
"last_name" => {
|
42
|
+
"was" => nil,
|
43
|
+
"became" => "Test"
|
44
|
+
},
|
45
|
+
"is_alive" => {
|
46
|
+
"was" => nil,
|
47
|
+
"became" => true
|
48
|
+
}
|
49
|
+
})
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
27
54
|
|
28
55
|
context "setup" do
|
29
56
|
|
@@ -197,15 +224,54 @@ describe RequiresApproval do
|
|
197
224
|
|
198
225
|
end
|
199
226
|
|
227
|
+
it "should not create new versions when attributes are not actually
|
228
|
+
updated" do
|
229
|
+
|
230
|
+
user = User.create(
|
231
|
+
:first_name => "Dan",
|
232
|
+
:last_name => "Langevin"
|
233
|
+
)
|
234
|
+
user.approve_all_attributes
|
235
|
+
user.reload
|
236
|
+
|
237
|
+
user.latest_unapproved_version.should be nil
|
238
|
+
|
239
|
+
user.update_attributes(
|
240
|
+
:first_name => user.first_name,
|
241
|
+
:last_name => user.last_name
|
242
|
+
)
|
243
|
+
user.reload
|
244
|
+
user.latest_unapproved_version.should be nil
|
245
|
+
|
246
|
+
|
247
|
+
end
|
248
|
+
|
249
|
+
it "should allow you to modify attributes after an unapproved version
|
250
|
+
has been created" do
|
251
|
+
|
252
|
+
user = User.create(
|
253
|
+
:first_name => "Dan",
|
254
|
+
:last_name => "Langevin"
|
255
|
+
)
|
256
|
+
user.approve_all_attributes
|
257
|
+
|
258
|
+
user.update_attributes(:first_name => "X")
|
259
|
+
user.update_attributes(:first_name => "Dan")
|
260
|
+
|
261
|
+
user.approve_all_attributes
|
262
|
+
user.reload.first_name.should eql("Dan")
|
263
|
+
|
264
|
+
end
|
265
|
+
|
266
|
+
|
200
267
|
end
|
201
268
|
|
202
|
-
context "
|
269
|
+
context ".validates_approved_field" do
|
203
270
|
|
204
271
|
it "should delegate to the requires_approval field" do
|
205
272
|
User.class_eval do
|
206
|
-
|
207
|
-
|
208
|
-
end
|
273
|
+
validates_approved_field :first_name,
|
274
|
+
:presence => true
|
209
275
|
end
|
210
276
|
|
211
277
|
user = User.new
|
@@ -266,8 +332,7 @@ describe RequiresApproval do
|
|
266
332
|
})
|
267
333
|
|
268
334
|
# should create an approved version
|
269
|
-
|
270
|
-
count.should be > 0
|
335
|
+
user.versions.where(:is_approved => true).count.should be > 0
|
271
336
|
|
272
337
|
end
|
273
338
|
|
@@ -279,7 +344,7 @@ describe RequiresApproval do
|
|
279
344
|
:last_name => "Langevin",
|
280
345
|
:birthday => Date.today
|
281
346
|
)
|
282
|
-
user.approve_attributes(:first_name, :last_name)
|
347
|
+
user.approve_attributes(:first_name, :last_name, :is_alive)
|
283
348
|
user.update_attributes({
|
284
349
|
:first_name => "New Name",
|
285
350
|
:last_name => "New Last Name"
|
@@ -306,6 +371,20 @@ describe RequiresApproval do
|
|
306
371
|
|
307
372
|
end
|
308
373
|
|
374
|
+
it "should return true if you approve an already approved
|
375
|
+
record" do
|
376
|
+
|
377
|
+
user = User.create(
|
378
|
+
:first_name => "Dan",
|
379
|
+
:last_name => "Langevin",
|
380
|
+
:birthday => Date.today
|
381
|
+
)
|
382
|
+
user.approve_all_attributes
|
383
|
+
|
384
|
+
user.approve_all_attributes.should be true
|
385
|
+
|
386
|
+
end
|
387
|
+
|
309
388
|
end
|
310
389
|
|
311
390
|
context "#deny_attributes" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement: &
|
16
|
+
requirement: &2163753200 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '2.3'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2163753200
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: activesupport
|
27
|
-
requirement: &
|
27
|
+
requirement: &2163752640 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '2.3'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2163752640
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &2163751920 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2163751920
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: guard-rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &2163751300 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2163751300
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: guard-bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &2163750660 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2163750660
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: guard-spork
|
71
|
-
requirement: &
|
71
|
+
requirement: &2163750040 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2163750040
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: jeweler
|
82
|
-
requirement: &
|
82
|
+
requirement: &2163749420 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 1.8.3
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2163749420
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: mocha
|
93
|
-
requirement: &
|
93
|
+
requirement: &2163748740 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2163748740
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: rdoc
|
104
|
-
requirement: &
|
104
|
+
requirement: &2163748060 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *2163748060
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: rspec
|
115
|
-
requirement: &
|
115
|
+
requirement: &2163747460 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: '0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *2163747460
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: ruby-debug19
|
126
|
-
requirement: &
|
126
|
+
requirement: &2163746760 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ! '>='
|
@@ -131,10 +131,10 @@ dependencies:
|
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *2163746760
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
136
|
name: sqlite3
|
137
|
-
requirement: &
|
137
|
+
requirement: &2163746140 !ruby/object:Gem::Requirement
|
138
138
|
none: false
|
139
139
|
requirements:
|
140
140
|
- - ! '>='
|
@@ -142,10 +142,10 @@ dependencies:
|
|
142
142
|
version: '0'
|
143
143
|
type: :development
|
144
144
|
prerelease: false
|
145
|
-
version_requirements: *
|
145
|
+
version_requirements: *2163746140
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: yard
|
148
|
-
requirement: &
|
148
|
+
requirement: &2163745620 !ruby/object:Gem::Requirement
|
149
149
|
none: false
|
150
150
|
requirements:
|
151
151
|
- - ! '>='
|
@@ -153,7 +153,7 @@ dependencies:
|
|
153
153
|
version: '0'
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
|
-
version_requirements: *
|
156
|
+
version_requirements: *2163745620
|
157
157
|
description: Gem to handle versioning and things that require approval
|
158
158
|
email: dan.langevin@lifebooker.com
|
159
159
|
executables: []
|
@@ -190,6 +190,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
190
190
|
- - ! '>='
|
191
191
|
- !ruby/object:Gem::Version
|
192
192
|
version: '0'
|
193
|
+
segments:
|
194
|
+
- 0
|
195
|
+
hash: -2588660493545333348
|
193
196
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
197
|
none: false
|
195
198
|
requirements:
|
@@ -203,4 +206,3 @@ signing_key:
|
|
203
206
|
specification_version: 3
|
204
207
|
summary: Gem to handle versioning and things that require approval
|
205
208
|
test_files: []
|
206
|
-
has_rdoc:
|