purgatory 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDk2M2Q4ODkzMTE1NDM4YzRjNGFjZTVmNDg3ZDI0MTE2YzI5NjkzOA==
4
+ ZThjNmYwNzUxOTAyNWY4Nzg5YjViOGViMmU0NTE5ZTg4MmJhZWQ2Mw==
5
5
  data.tar.gz: !binary |-
6
- MjgzNTkxZWM0NzJiNDQyYzY3YzI4NmQ3NmEzNWMwMzZhYjhjNDk5ZQ==
7
- !binary "U0hBNTEy":
6
+ NzE1MmNmNzkzZTgxZDY2Y2IxNTgzZmQ1YmI3NjRhYjBhMTY4Nzk1Nw==
7
+ SHA512:
8
8
  metadata.gz: !binary |-
9
- MTJlOTU1NDRiNjgzZjM5ODgzZWY1NjExZTg1YzAxMWVkZTI1OTdkZTA2NGQ5
10
- NmQ2NmIwYjMyZDI2OWFlNDM0ZDcwODI5OWU0ZTMxMThhYTkwYjFiM2U2NzIy
11
- NDEzZTNmMWQ0MTliZDVhMzk2OTJlYmUyNDY0ZDUxNjVhZWE1ODc=
9
+ OTE1N2FiNmUwMjEzYTFlNWU3M2M3MmZiYmRiOTU2MzIzODQ4NjNlMjI5ZTFm
10
+ YzkxZjc4ZWI1OWFhZWQ3NThhY2EzZTM5ZGI4M2NlN2JjMWQ3MjA5YTEwMTQy
11
+ MDdmNmFmNzYwMDE2YzEzODU3ZTU1N2RiZDMzZDU5NjNjNTRlMzQ=
12
12
  data.tar.gz: !binary |-
13
- MTJlMmE3ZWEwNjM0NDQyNGYxNjNmYjE5NzVmOTE3ZGFmNDI1ZTFhZjgwYzdh
14
- YzFhMjkwZDlkZmYyN2JjMThhNmIzNjIzYmZjYTFjNzFjMjAzZjhiZDFjOGFj
15
- ZGQxN2E3Mjc5NDJjMmJjNWJmZTA0OTE0ZDJkZmQ2NmE2Yjg0Mjk=
13
+ NDg5MjZlYTA3ZDY1NTQyOTE3MDE4MzczMjNlNGE5NWVhMTRmMzMxYzU4ZmEz
14
+ ZjQyOGFkYTE0N2RlOWM0MmU5NzI0NmFmNmNlYTAzMDRhOWU0M2JkYWE1MjY4
15
+ YTg3NjNmOGI0NTcxNmM5YjY0YTE3MWI0M2EyODM5Mjk1MTk3ODU=
data/Gemfile CHANGED
@@ -6,14 +6,13 @@ source "http://rubygems.org"
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
- gem "shoulda", ">= 0"
10
9
  gem "rdoc", "~> 3.12"
11
10
  gem "bundler", "~> 1.0"
12
11
  gem "jeweler", "~> 1.8.7"
13
12
  end
14
13
 
15
14
  group :test do
16
- gem "activerecord"
15
+ gem "activerecord", ">= 4"
17
16
  gem "rspec"
18
17
  gem "sqlite3"
19
18
  end
data/Gemfile.lock CHANGED
@@ -1,7 +1,15 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activerecord (1.6.0)
4
+ activemodel (4.0.1)
5
+ activesupport (= 4.0.1)
6
+ builder (~> 3.1.0)
7
+ activerecord (4.0.1)
8
+ activemodel (= 4.0.1)
9
+ activerecord-deprecated_finders (~> 1.0.2)
10
+ activesupport (= 4.0.1)
11
+ arel (~> 4.0.0)
12
+ activerecord-deprecated_finders (1.0.3)
5
13
  activesupport (4.0.1)
6
14
  i18n (~> 0.6, >= 0.6.4)
7
15
  minitest (~> 4.2)
@@ -9,9 +17,10 @@ GEM
9
17
  thread_safe (~> 0.1)
10
18
  tzinfo (~> 0.3.37)
11
19
  addressable (2.3.5)
20
+ arel (4.0.1)
12
21
  atomic (1.1.14)
13
- builder (3.2.2)
14
- diff-lcs (1.1.3)
22
+ builder (3.1.4)
23
+ diff-lcs (1.2.5)
15
24
  faraday (0.8.8)
16
25
  multipart-post (~> 1.2.0)
17
26
  git (1.2.6)
@@ -54,21 +63,15 @@ GEM
54
63
  rake (10.1.0)
55
64
  rdoc (3.12.2)
56
65
  json (~> 1.4)
57
- rspec (2.11.0)
58
- rspec-core (~> 2.11.0)
59
- rspec-expectations (~> 2.11.0)
60
- rspec-mocks (~> 2.11.0)
61
- rspec-core (2.11.1)
62
- rspec-expectations (2.11.3)
63
- diff-lcs (~> 1.1.3)
64
- rspec-mocks (2.11.3)
65
- shoulda (3.5.0)
66
- shoulda-context (~> 1.0, >= 1.0.1)
67
- shoulda-matchers (>= 1.4.1, < 3.0)
68
- shoulda-context (1.1.6)
69
- shoulda-matchers (2.4.0)
70
- activesupport (>= 3.0.0)
71
- sqlite3 (1.3.7)
66
+ rspec (2.14.1)
67
+ rspec-core (~> 2.14.0)
68
+ rspec-expectations (~> 2.14.0)
69
+ rspec-mocks (~> 2.14.0)
70
+ rspec-core (2.14.7)
71
+ rspec-expectations (2.14.4)
72
+ diff-lcs (>= 1.1.3, < 2.0)
73
+ rspec-mocks (2.14.4)
74
+ sqlite3 (1.3.8)
72
75
  thread_safe (0.1.3)
73
76
  atomic
74
77
  tzinfo (0.3.38)
@@ -77,10 +80,9 @@ PLATFORMS
77
80
  ruby
78
81
 
79
82
  DEPENDENCIES
80
- activerecord
83
+ activerecord (>= 4)
81
84
  bundler (~> 1.0)
82
85
  jeweler (~> 1.8.7)
83
86
  rdoc (~> 3.12)
84
87
  rspec
85
- shoulda
86
88
  sqlite3
data/README.markdown CHANGED
@@ -37,6 +37,7 @@ The following are some attributes of a purgatory:
37
37
  purgatory.soul # The ActiveRecord model instance whose changes are in purgatory
38
38
  purgatory.requester # The user who created the purgatory
39
39
  purgatory.created_at # The time when the purgatory was created
40
+ purgatory.requested_changes # A hash of the proposed changes. The keys are the attribute names and the values are 2-element arrays where the 1st element is the old value and the 2nd element is the new value
40
41
  purgatory.approver # The user who approved the purgatory
41
42
  purgatory.approved_at # The time when the purgatory was approved
42
43
 
@@ -49,7 +50,6 @@ Here are some handy scopes and methods available to you:
49
50
  ### Methods
50
51
  purgatory.pending? # Returns true if the purgatory is pending, false otherwise
51
52
  purgatory.approved? # Returns true if the purgatory has been approved, false otherwise
52
- purgatory.changes_hash # Returns a hash of the proposed changes. The keys are the attribute names and the values are 2-element arrays where the 1st element is the old value and the 2nd element is the new value
53
53
 
54
54
  ## Contributing to Purgatory
55
55
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.0
1
+ 2.2.0
@@ -6,7 +6,7 @@ class CreatePurgatories < ActiveRecord::Migration
6
6
  t.integer :requester_id
7
7
  t.integer :approver_id
8
8
  t.datetime :approved_at
9
- t.string :changes_json
9
+ t.string :requested_changes
10
10
 
11
11
  t.timestamps
12
12
  end
@@ -6,6 +6,8 @@ class Purgatory < ActiveRecord::Base
6
6
 
7
7
  validates :soul_type, presence: true
8
8
 
9
+ serialize :requested_changes
10
+
9
11
  def self.pending
10
12
  where(approved_at: nil)
11
13
  end
@@ -22,17 +24,13 @@ class Purgatory < ActiveRecord::Base
22
24
  approved_at.nil?
23
25
  end
24
26
 
25
- def changes_hash
26
- ActiveSupport::JSON.decode(changes_json)
27
- end
28
-
29
27
  def soul
30
28
  @soul ||= (super || soul_type.constantize.new)
31
29
  end
32
30
 
33
31
  def approve!(approver = nil)
34
32
  return false if approved?
35
- changes_hash.each{|k,v| soul.send "#{k}=", v[1]}
33
+ requested_changes.each{|k,v| soul.send "#{k}=", v[1]}
36
34
  if soul.save
37
35
  self.approver = approver
38
36
  self.approved_at = Time.now
@@ -45,6 +43,6 @@ class Purgatory < ActiveRecord::Base
45
43
  private
46
44
 
47
45
  def store_changes
48
- self.changes_json = ActiveSupport::JSON.encode(soul.changes)
46
+ self.requested_changes = soul.changes
49
47
  end
50
48
  end
data/purgatory.gemspec CHANGED
@@ -2,14 +2,15 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: purgatory 2.2.0 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
8
  s.name = "purgatory"
8
- s.version = "2.1.0"
9
+ s.version = "2.2.0"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
12
  s.authors = ["Elan Dubrofsky"]
12
- s.date = "2013-11-24"
13
+ s.date = "2013-11-25"
13
14
  s.description = "Put your model changes in purgatory and allow them to remain lost souls until they are approved"
14
15
  s.email = "elan.dubrofsky@gmail.com"
15
16
  s.extra_rdoc_files = [
@@ -39,25 +40,22 @@ Gem::Specification.new do |s|
39
40
  s.homepage = "http://github.com/financeit/purgatory"
40
41
  s.licenses = ["MIT"]
41
42
  s.require_paths = ["lib"]
42
- s.rubygems_version = "2.0.3"
43
+ s.rubygems_version = "2.1.11"
43
44
  s.summary = "Allow changes to a model to be put in purgatory until they are approved"
44
45
 
45
46
  if s.respond_to? :specification_version then
46
47
  s.specification_version = 4
47
48
 
48
49
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
- s.add_development_dependency(%q<shoulda>, [">= 0"])
50
50
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
51
51
  s.add_development_dependency(%q<bundler>, ["~> 1.0"])
52
52
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.7"])
53
53
  else
54
- s.add_dependency(%q<shoulda>, [">= 0"])
55
54
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
56
55
  s.add_dependency(%q<bundler>, ["~> 1.0"])
57
56
  s.add_dependency(%q<jeweler>, ["~> 1.8.7"])
58
57
  end
59
58
  else
60
- s.add_dependency(%q<shoulda>, [">= 0"])
61
59
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
62
60
  s.add_dependency(%q<bundler>, ["~> 1.0"])
63
61
  s.add_dependency(%q<jeweler>, ["~> 1.8.7"])
@@ -23,10 +23,10 @@ describe Purgatory do
23
23
  it "should store the soul, requester and requested changes" do
24
24
  @purgatory.soul.should == @widget
25
25
  @purgatory.requester.should == user1
26
- @purgatory.changes_hash['name'].first.should == 'foo'
27
- @purgatory.changes_hash['name'].last.should == 'bar'
28
- @purgatory.changes_hash['price'].first.should == 100
29
- @purgatory.changes_hash['price'].last.should == 200
26
+ @purgatory.requested_changes['name'].first.should == 'foo'
27
+ @purgatory.requested_changes['name'].last.should == 'bar'
28
+ @purgatory.requested_changes['price'].first.should == 100
29
+ @purgatory.requested_changes['price'].last.should == 200
30
30
  end
31
31
 
32
32
  it "should not change the widget" do
@@ -71,10 +71,10 @@ describe Purgatory do
71
71
 
72
72
  it "should store the requester and requested changes" do
73
73
  @purgatory.requester.should == user1
74
- @purgatory.changes_hash['name'].first.should == nil
75
- @purgatory.changes_hash['name'].last.should == 'foo'
76
- @purgatory.changes_hash['price'].first.should == nil
77
- @purgatory.changes_hash['price'].last.should == 100
74
+ @purgatory.requested_changes['name'].first.should == nil
75
+ @purgatory.requested_changes['name'].last.should == 'foo'
76
+ @purgatory.requested_changes['price'].first.should == nil
77
+ @purgatory.requested_changes['price'].last.should == 100
78
78
  end
79
79
 
80
80
  it "should not create a widget" do
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: purgatory
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elan Dubrofsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-24 00:00:00.000000000 Z
11
+ date: 2013-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: shoulda
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ! '>='
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ! '>='
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rdoc
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -113,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
99
  version: '0'
114
100
  requirements: []
115
101
  rubyforge_project:
116
- rubygems_version: 2.0.3
102
+ rubygems_version: 2.1.11
117
103
  signing_key:
118
104
  specification_version: 4
119
105
  summary: Allow changes to a model to be put in purgatory until they are approved