concerned_states 0.0.1 → 0.1.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/README.rdoc ADDED
@@ -0,0 +1,3 @@
1
+ = concerned_states
2
+
3
+ A simple ActiveSupport::Concern for state related stuff I use frequently.
@@ -1,10 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- require "concerned_states/version"
4
3
 
5
4
  Gem::Specification.new do |s|
6
5
  s.name = "concerned_states"
7
- s.version = ConcernedStates::VERSION
6
+ s.version = "0.1.0"
8
7
  s.authors = ["Richard Hart"]
9
8
  s.email = ["richard@ur-ban.com"]
10
9
  s.homepage = ""
@@ -0,0 +1,99 @@
1
+ module ConcernedStates
2
+ module Stateable
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ PASSIVE = "passive"
7
+ PENDING = "pending"
8
+ DECLINED = "declined"
9
+ APPROVED = "approved"
10
+ ACTIVE = "active"
11
+ FLAGGED = "flagged"
12
+ SUSPENDED = "suspended"
13
+ DELETED = "deleted"
14
+ STARTED = "started"
15
+ PAUSED = "paused"
16
+ CANCELLED = "cancelled"
17
+ COMPLETED = "completed"
18
+ ERRORED = "errored"
19
+
20
+ scope :passive,
21
+ where(:state => PASSIVE)
22
+
23
+ scope :pending,
24
+ where(:state => PENDING)
25
+
26
+ scope :declined,
27
+ where(:state => DECLINED)
28
+
29
+ scope :approved,
30
+ where(:state => APPROVED)
31
+
32
+ scope :active,
33
+ where(:state => ACTIVE)
34
+
35
+ scope :deleted,
36
+ where(:state => DELETED)
37
+
38
+ scope :completed,
39
+ where(:state => COMPLETED)
40
+ end
41
+
42
+ def passivate; self.state = PASSIVE; end
43
+ def passivate!; update_attribute(:state, PASSIVE); end
44
+ def passive?; self.state == PASSIVE; end
45
+
46
+ def pendinate; self.state = PENDING; end
47
+ def pendinate!; update_attribute(:state, PENDING); end
48
+ def pending?; self.state == PENDING; end
49
+
50
+ def decline; self.state = DECLINED; end
51
+ def decline!; update_attribute(:state, DECLINED); end
52
+ def declined?; self.state == DECLINED; end
53
+
54
+ def approve; self.state = APPROVED; end
55
+ def approve!; update_attribute(:state, APPROVE); end
56
+ def approved?; self.state == APPROVED; end
57
+
58
+ def activate; self.state = ACTIVE; end
59
+ def activate!; update_attribute(:state, ACTIVE); end
60
+ def active?; self.state == ACTIVE; end
61
+
62
+ def flag; self.state = FLAGGED; end
63
+ def flag!; update_attribute(:state, FLAGGED); end
64
+ def flagged?; self.state == FLAGGED; end
65
+
66
+ def suspend; self.state = SUSPENDED; end
67
+ def suspend!; update_attribute(:state, SUSPENDED); end
68
+ def suspended?; self.state == SUSPENDED; end
69
+
70
+ def delete; self.state = DELETED; end
71
+ def delete!; update_attribute(:state, DELETED); end
72
+ def deleted?; self.state == DELETED; end
73
+
74
+ def cancel; self.state = CANCELLED; end
75
+ def cancel!; update_attribute(:state, CANCELLED); end
76
+ def cancelled?; self.state == CANCELLED; end
77
+
78
+ def start; self.state = STARTED; end
79
+ def start!; update_attribute(:state, STARTED); end
80
+ def started?; self.state == STARTED; end
81
+
82
+ def pause; self.state = PAUSED; end
83
+ def pause!; update_attribute(:state, PAUSE); end
84
+ def paused?; self.state == PAUSED; end
85
+
86
+ def cancel; self.state = CANCELLED; end
87
+ def cancel!; update_attribute(:state, CANCELLED); end
88
+ def canceled?; self.state == CANCELLED; end
89
+
90
+ def complete; self.state = COMPLETED; end
91
+ def complete!; update_attribute(:state, COMPLETED); end
92
+ def completed?; self.state == COMPLETED; end
93
+
94
+ def error; self.state = ERRORED; end
95
+ def error!; update_attribute(:state, ERRORED); end
96
+ def errored?; self.state == ERRORED; end
97
+
98
+ end
99
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: concerned_states
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 0
9
8
  - 1
10
- version: 0.0.1
9
+ - 0
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Richard Hart
@@ -31,10 +31,11 @@ extra_rdoc_files: []
31
31
  files:
32
32
  - .gitignore
33
33
  - Gemfile
34
+ - README.rdoc
34
35
  - Rakefile
35
36
  - concerned_states.gemspec
36
37
  - lib/concerned_states.rb
37
- - lib/concerned_states/version.rb
38
+ - lib/concerned_states/stateable.rb
38
39
  has_rdoc: true
39
40
  homepage: ""
40
41
  licenses: []
@@ -1,3 +0,0 @@
1
- module ConcernedStates
2
- VERSION = "0.0.1"
3
- end