purgatory 0.2.0 → 1.0.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
- OGU4MWYzYTMwMDA2MzBjN2U1ZDc0ZDMzMGRmMTA5YTE3ZTE0Mjg4Mw==
4
+ ZjNiYzA3NTg0YjQzMTQ0ZmE3ZjdmNzcyZWIwOGJiNGRjOGY1M2U3NQ==
5
5
  data.tar.gz: !binary |-
6
- YmViZGNmYTUxNjQ0MjdhYmVkZGZkMWFlNDI3MmRiNzIzODZkMzI4Zg==
6
+ OWQ0MGZmZDg2ZjhjYmNjNGVkZjhkNTAwMzMxZmM1ZWJkNzdmMTVhYg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Zjc2NWM4NThhNjZiMzM4NmQ3ODFlYjAxYjRjODY2MjljYzBhYzE2NzQxMGY2
10
- ZmEzNWU3Mjg2OTkzMjNjOWRlMDJkOTdjZGQ5MWE5NTNmMDdmYTBiYjEwZjBl
11
- ZGY2M2NkMjc0OTIwOWU1ZGZkYzZlOGJhMzVmNjQxZTNmMjc3Y2I=
9
+ OGQ3MTIxYjgxYzZiOTNjMDhhNGZjNzRiY2Y3NjQ2NjZhMTMxZjY1ODZhMDA1
10
+ NzdhNzY3MzQ0MmRmNDYzMTBkMDRlMTBhOTZhZDY5MDQ0NzI1MDIzODAyMWE0
11
+ ZTAxMmRhNGQ0NmEyZjczNDg5ZjU0MTA5Yzc2M2M3OTg0NzhjNTU=
12
12
  data.tar.gz: !binary |-
13
- NjhjMjQ2MzQ0MzRhYmI1NzVhMzZkZDc5OWEwODk3ZTcwNDM4YTM2MDMzM2Y3
14
- NzI2ZmI4NWM4NzM4NDM0MDgyZGU2MGIyOWE4YjBkN2YzOTRjYmFjZjZmYTU3
15
- NzJhMTlhYTdlNDdiYzYyZmNhZWM0MjY1MGNjOTI2YjZlYTIyYmQ=
13
+ NmM4ZDU3MjIzNDdhMTQ0MGNkNmM1YmVlM2Y4MTYzMjgwNmYyZmYzMDRlNjYw
14
+ ZjYzNWEzNDViZmEyMjU4YjBmMWFmOTAyZTUwM2Y1MjYwNjM5OTk5NGI4ZDE1
15
+ ODU5YWZiMjU3MmU0Y2U1MTIxMzdlOWEyYjQxZDA4ZmRkODNhMTQ=
data/README.markdown CHANGED
@@ -24,9 +24,28 @@ To put your changes to an ActiveRecord class into Purgatory, simply make your ch
24
24
 
25
25
  To apply the changes, simply call the approve! method on the associated Pergatory instance, passing in the approving user as a parameter
26
26
 
27
- purgatory = Purgatory.where(soul_id: 10, soul_type: 'Item')
27
+ purgatory = item.purgatories.last
28
28
  purgatory.approve!(current_user)
29
29
 
30
+ The following are the attributes of a purgatory:
31
+
32
+ purgatory.soul # The ActiveRecord model instance whose changes are in purgatory
33
+ purgatory.requester # The user who created the purgatory
34
+ purgatory.created_at # The time when the purgatory was created
35
+ purgatory.approver # The user who approved the purgatory
36
+ purgatory.approved_at # The time when the purgatory was approved
37
+
38
+ Here are some handy scopes and methods available to you:
39
+
40
+ ### Scopes
41
+ Purgatory.pending # Returns a relation of all pending purgatories
42
+ Purgatory.approved # Returns a relation of all approved purgatories
43
+
44
+ ### Methods
45
+ purgatory.pending? # Returns true if the purgatory is pending, false otherwise
46
+ purgatory.approved? # Returns true if the purgatory has been approved, false otherwise
47
+ 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
48
+
30
49
  ## Contributing to Purgatory
31
50
 
32
51
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 1.0.0
@@ -8,6 +8,17 @@ class Purgatory < ActiveRecord::Base
8
8
 
9
9
  validates :soul, :requester, presence: true
10
10
 
11
+ scope :pending, conditions: { approved_at: nil }
12
+ scope :approved, conditions: ["approved_at IS NOT NULL"]
13
+
14
+ def approved?
15
+ approved_at.present?
16
+ end
17
+
18
+ def pending?
19
+ approved_at.nil?
20
+ end
21
+
11
22
  def changes_hash
12
23
  ActiveSupport::JSON.decode(changes_json)
13
24
  end
data/purgatory.gemspec CHANGED
@@ -2,11 +2,11 @@
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 0.2.0 ruby lib
5
+ # stub: purgatory 1.0.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "purgatory"
9
- s.version = "0.2.0"
9
+ s.version = "1.0.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.authors = ["Elan Dubrofsky"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: purgatory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elan Dubrofsky