acts-as-approvable 0.6.7 → 0.6.8.1

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.
Files changed (64) hide show
  1. data/.gitignore +2 -5
  2. data/.rspec +2 -0
  3. data/.travis.yml +5 -0
  4. data/Appraisals +14 -10
  5. data/CHANGELOG +16 -0
  6. data/Gemfile.lock +60 -20
  7. data/README.md +1 -2
  8. data/Rakefile +44 -16
  9. data/VERSION +1 -1
  10. data/acts-as-approvable.gemspec +21 -11
  11. data/features/create_approval.feature +26 -0
  12. data/features/step_definitions/cucumber_steps.rb +86 -0
  13. data/features/support/env.rb +14 -0
  14. data/features/support/large.txt +29943 -0
  15. data/features/support/second_large.txt +31798 -0
  16. data/features/update_approval.feature +34 -0
  17. data/gemfiles/Gemfile.ci +14 -0
  18. data/gemfiles/Gemfile.ci.lock +98 -0
  19. data/gemfiles/mysql2.gemfile +7 -0
  20. data/gemfiles/mysql2.gemfile.lock +92 -0
  21. data/gemfiles/rails2.gemfile +1 -0
  22. data/gemfiles/rails2.gemfile.lock +59 -17
  23. data/gemfiles/rails30.gemfile +1 -0
  24. data/gemfiles/rails30.gemfile.lock +54 -14
  25. data/gemfiles/rails31.gemfile +1 -0
  26. data/gemfiles/rails31.gemfile.lock +54 -14
  27. data/gemfiles/sqlite.gemfile +7 -0
  28. data/generators/acts_as_approvable/templates/create_approvals.rb +8 -7
  29. data/lib/acts-as-approvable.rb +2 -3
  30. data/lib/acts_as_approvable/approval.rb +3 -2
  31. data/lib/acts_as_approvable/model.rb +55 -0
  32. data/lib/acts_as_approvable/model/class_methods.rb +63 -0
  33. data/lib/acts_as_approvable/model/create_instance_methods.rb +83 -0
  34. data/lib/acts_as_approvable/model/instance_methods.rb +89 -0
  35. data/lib/acts_as_approvable/model/update_instance_methods.rb +61 -0
  36. data/lib/acts_as_approvable/railtie.rb +1 -1
  37. data/lib/generators/acts_as_approvable/templates/create_approvals.rb +8 -7
  38. data/spec/acts_as_approvable/approval_spec.rb +475 -0
  39. data/spec/acts_as_approvable/model/class_methods_spec.rb +219 -0
  40. data/spec/acts_as_approvable/model/create_instance_methods_spec.rb +149 -0
  41. data/spec/acts_as_approvable/model/instance_methods_spec.rb +328 -0
  42. data/spec/acts_as_approvable/model/update_instance_methods_spec.rb +111 -0
  43. data/spec/acts_as_approvable/model_spec.rb +90 -0
  44. data/spec/acts_as_approvable/ownership/class_methods_spec.rb +101 -0
  45. data/spec/acts_as_approvable/ownership/instance_methods_spec.rb +32 -0
  46. data/spec/acts_as_approvable/ownership_spec.rb +51 -0
  47. data/spec/acts_as_approvable_spec.rb +29 -0
  48. data/spec/spec_helper.rb +51 -0
  49. data/spec/support/database.rb +46 -0
  50. data/spec/support/database.yml +12 -0
  51. data/spec/support/matchers.rb +87 -0
  52. data/spec/support/models.rb +60 -0
  53. data/{test → spec/support}/schema.rb +15 -9
  54. metadata +156 -53
  55. data/gemfiles/rails32.gemfile +0 -8
  56. data/gemfiles/rails32.gemfile.lock +0 -99
  57. data/lib/acts_as_approvable/acts_as_approvable.rb +0 -291
  58. data/test/acts_as_approvable_model_test.rb +0 -459
  59. data/test/acts_as_approvable_ownership_test.rb +0 -132
  60. data/test/acts_as_approvable_schema_test.rb +0 -13
  61. data/test/acts_as_approvable_test.rb +0 -8
  62. data/test/database.yml +0 -7
  63. data/test/support.rb +0 -19
  64. data/test/test_helper.rb +0 -62
@@ -0,0 +1,34 @@
1
+ Feature: Update Approvals
2
+ In order to provide an approval queue for new records
3
+
4
+ Background:
5
+ Given a record created with update approval
6
+
7
+ Scenario: a new record is created
8
+ Then it should have no pending changes
9
+
10
+ Scenario: a record update should not change approvable fields
11
+ When I update the record with:
12
+ | title | updated |
13
+ | body | not updated |
14
+ Then it should have pending changes
15
+ And the record should not have changed
16
+ And the approval should have the changes
17
+
18
+ Scenario: a record with pending changes should apply them after approval
19
+ When I update the record with:
20
+ | title | updated |
21
+ | body | not updated |
22
+ And I approve the changes
23
+ Then it should have no pending changes
24
+ And the record should have changed
25
+
26
+ Scenario: a record with a large body of text should not break the system
27
+ When I update the record with:
28
+ | body | file:large |
29
+ And I approve the changes
30
+ When I update the record with:
31
+ | body | file:second_large |
32
+ And I approve the changes
33
+ And the record should have changed to:
34
+ | body | file:second_large |
@@ -0,0 +1,14 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem 'activerecord', '~> 3.1.0'
6
+ gem 'railties', '~> 3.1.0'
7
+ gem 'sqlite3'
8
+ gem 'appraisal', '~> 0.4.1'
9
+ gem 'rake', '~> 0.9.2'
10
+ gem 'rspec', '~> 2.8.0'
11
+ gem 'cucumber', '~> 1.1.0'
12
+ gem 'shoulda', '~> 2.0'
13
+ gem 'timecop', '~> 0.3.5'
14
+ gem 'yard'
@@ -0,0 +1,98 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ actionpack (3.1.4)
5
+ activemodel (= 3.1.4)
6
+ activesupport (= 3.1.4)
7
+ builder (~> 3.0.0)
8
+ erubis (~> 2.7.0)
9
+ i18n (~> 0.6)
10
+ rack (~> 1.3.6)
11
+ rack-cache (~> 1.1)
12
+ rack-mount (~> 0.8.2)
13
+ rack-test (~> 0.6.1)
14
+ sprockets (~> 2.0.3)
15
+ activemodel (3.1.4)
16
+ activesupport (= 3.1.4)
17
+ builder (~> 3.0.0)
18
+ i18n (~> 0.6)
19
+ activerecord (3.1.4)
20
+ activemodel (= 3.1.4)
21
+ activesupport (= 3.1.4)
22
+ arel (~> 2.2.3)
23
+ tzinfo (~> 0.3.29)
24
+ activesupport (3.1.4)
25
+ multi_json (~> 1.0)
26
+ appraisal (0.4.1)
27
+ bundler
28
+ rake
29
+ arel (2.2.3)
30
+ builder (3.0.0)
31
+ cucumber (1.1.0)
32
+ builder (>= 2.1.2)
33
+ diff-lcs (>= 1.1.2)
34
+ gherkin (~> 2.5.0)
35
+ json (>= 1.4.6)
36
+ term-ansicolor (>= 1.0.6)
37
+ diff-lcs (1.1.3)
38
+ erubis (2.7.0)
39
+ gherkin (2.5.1)
40
+ json (>= 1.4.6)
41
+ hike (1.2.1)
42
+ i18n (0.6.0)
43
+ json (1.6.5)
44
+ multi_json (1.1.0)
45
+ rack (1.3.6)
46
+ rack-cache (1.2)
47
+ rack (>= 0.4)
48
+ rack-mount (0.8.3)
49
+ rack (>= 1.0.0)
50
+ rack-ssl (1.3.2)
51
+ rack
52
+ rack-test (0.6.1)
53
+ rack (>= 1.0)
54
+ railties (3.1.4)
55
+ actionpack (= 3.1.4)
56
+ activesupport (= 3.1.4)
57
+ rack-ssl (~> 1.3.2)
58
+ rake (>= 0.8.7)
59
+ rdoc (~> 3.4)
60
+ thor (~> 0.14.6)
61
+ rake (0.9.2.2)
62
+ rdoc (3.12)
63
+ json (~> 1.4)
64
+ rspec (2.8.0)
65
+ rspec-core (~> 2.8.0)
66
+ rspec-expectations (~> 2.8.0)
67
+ rspec-mocks (~> 2.8.0)
68
+ rspec-core (2.8.0)
69
+ rspec-expectations (2.8.0)
70
+ diff-lcs (~> 1.1.2)
71
+ rspec-mocks (2.8.0)
72
+ shoulda (2.11.3)
73
+ sprockets (2.0.3)
74
+ hike (~> 1.2)
75
+ rack (~> 1.0)
76
+ tilt (~> 1.1, != 1.3.0)
77
+ sqlite3 (1.3.5)
78
+ term-ansicolor (1.0.6)
79
+ thor (0.14.6)
80
+ tilt (1.3.3)
81
+ timecop (0.3.5)
82
+ tzinfo (0.3.32)
83
+ yard (0.7.5)
84
+
85
+ PLATFORMS
86
+ ruby
87
+
88
+ DEPENDENCIES
89
+ activerecord (~> 3.1.0)
90
+ appraisal (~> 0.4.1)
91
+ cucumber (~> 1.1.0)
92
+ railties (~> 3.1.0)
93
+ rake (~> 0.9.2)
94
+ rspec (~> 2.8.0)
95
+ shoulda (~> 2.0)
96
+ sqlite3
97
+ timecop (~> 0.3.5)
98
+ yard
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "mysql2", "~> 0.2.18"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,92 @@
1
+ PATH
2
+ remote: /Users/jlogsdon/Code/acts_as_approvable/acts_as_approvable
3
+ specs:
4
+ acts-as-approvable (0.6.7)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ activerecord (2.3.14)
10
+ activesupport (= 2.3.14)
11
+ activesupport (2.3.14)
12
+ appraisal (0.4.1)
13
+ bundler
14
+ rake
15
+ binding_of_caller (0.6.7)
16
+ builder (3.0.0)
17
+ coderay (1.0.5)
18
+ coolline (0.1.0)
19
+ cucumber (1.1.0)
20
+ builder (>= 2.1.2)
21
+ diff-lcs (>= 1.1.2)
22
+ gherkin (~> 2.5.0)
23
+ json (>= 1.4.6)
24
+ term-ansicolor (>= 1.0.6)
25
+ diff-lcs (1.1.3)
26
+ gherkin (2.5.1)
27
+ json (>= 1.4.6)
28
+ io-console (0.3)
29
+ json (1.6.5)
30
+ method_source (0.7.1)
31
+ multi_json (1.1.0)
32
+ mysql2 (0.2.18)
33
+ plymouth (0.3.2)
34
+ pry-exception_explorer (>= 0.1.7)
35
+ pry (0.9.8.4)
36
+ coderay (~> 1.0.5)
37
+ method_source (~> 0.7.1)
38
+ slop (>= 2.4.4, < 3)
39
+ pry-coolline (0.1.1)
40
+ coolline (~> 0.1.0)
41
+ io-console (~> 0.3.0)
42
+ pry-exception_explorer (0.1.9)
43
+ pry-stack_explorer (>= 0.3.9)
44
+ pry-nav (0.1.0)
45
+ pry (~> 0.9.8.1)
46
+ pry-stack_explorer (0.4.1)
47
+ binding_of_caller (~> 0.6.2)
48
+ pry (~> 0.9.8.2)
49
+ pry-syntax-hacks (0.0.6)
50
+ pry (>= 0.9.8)
51
+ rake (0.9.2.2)
52
+ redcarpet (2.1.0)
53
+ rspec (2.8.0)
54
+ rspec-core (~> 2.8.0)
55
+ rspec-expectations (~> 2.8.0)
56
+ rspec-mocks (~> 2.8.0)
57
+ rspec-core (2.8.0)
58
+ rspec-expectations (2.8.0)
59
+ diff-lcs (~> 1.1.2)
60
+ rspec-mocks (2.8.0)
61
+ shoulda (2.11.3)
62
+ simplecov (0.6.1)
63
+ multi_json (~> 1.0)
64
+ simplecov-html (~> 0.5.3)
65
+ simplecov-html (0.5.3)
66
+ slop (2.4.4)
67
+ term-ansicolor (1.0.6)
68
+ timecop (0.3.5)
69
+ yard (0.7.5)
70
+
71
+ PLATFORMS
72
+ ruby
73
+
74
+ DEPENDENCIES
75
+ activerecord (~> 2.3.14)
76
+ acts-as-approvable!
77
+ appraisal (~> 0.4.1)
78
+ cucumber (~> 1.1.0)
79
+ mysql2 (~> 0.2.18)
80
+ plymouth
81
+ pry (~> 0.9.8.1)
82
+ pry-coolline
83
+ pry-nav (~> 0.1.0)
84
+ pry-stack_explorer
85
+ pry-syntax-hacks
86
+ rake (~> 0.9.2)
87
+ redcarpet (~> 2.1.0)
88
+ rspec (~> 2.8.0)
89
+ shoulda (~> 2.0)
90
+ simplecov
91
+ timecop (~> 0.3.5)
92
+ yard
@@ -3,5 +3,6 @@
3
3
  source "http://rubygems.org"
4
4
 
5
5
  gem "activerecord", "~> 2.3"
6
+ gem "sqlite3"
6
7
 
7
8
  gemspec :path=>"../"
@@ -12,25 +12,60 @@ GEM
12
12
  appraisal (0.4.1)
13
13
  bundler
14
14
  rake
15
+ binding_of_caller (0.6.7)
16
+ builder (3.0.0)
15
17
  coderay (1.0.5)
16
- metaclass (0.0.1)
17
- method_source (0.7.0)
18
- mocha (0.10.4)
19
- metaclass (~> 0.0.1)
20
- multi_json (1.0.4)
21
- pry (0.9.8)
18
+ coolline (0.1.0)
19
+ cucumber (1.1.0)
20
+ builder (>= 2.1.2)
21
+ diff-lcs (>= 1.1.2)
22
+ gherkin (~> 2.5.0)
23
+ json (>= 1.4.6)
24
+ term-ansicolor (>= 1.0.6)
25
+ diff-lcs (1.1.3)
26
+ gherkin (2.5.1)
27
+ json (>= 1.4.6)
28
+ io-console (0.3)
29
+ json (1.6.5)
30
+ method_source (0.7.1)
31
+ multi_json (1.1.0)
32
+ plymouth (0.3.2)
33
+ pry-exception_explorer (>= 0.1.7)
34
+ pry (0.9.8.4)
22
35
  coderay (~> 1.0.5)
23
- method_source (~> 0.7)
24
- slop (>= 2.4.3, < 3)
36
+ method_source (~> 0.7.1)
37
+ slop (>= 2.4.4, < 3)
38
+ pry-coolline (0.1.1)
39
+ coolline (~> 0.1.0)
40
+ io-console (~> 0.3.0)
41
+ pry-exception_explorer (0.1.9)
42
+ pry-stack_explorer (>= 0.3.9)
43
+ pry-nav (0.1.0)
44
+ pry (~> 0.9.8.1)
45
+ pry-stack_explorer (0.4.1)
46
+ binding_of_caller (~> 0.6.2)
47
+ pry (~> 0.9.8.2)
48
+ pry-syntax-hacks (0.0.6)
49
+ pry (>= 0.9.8)
25
50
  rake (0.9.2.2)
26
51
  redcarpet (2.1.0)
52
+ rspec (2.8.0)
53
+ rspec-core (~> 2.8.0)
54
+ rspec-expectations (~> 2.8.0)
55
+ rspec-mocks (~> 2.8.0)
56
+ rspec-core (2.8.0)
57
+ rspec-expectations (2.8.0)
58
+ diff-lcs (~> 1.1.2)
59
+ rspec-mocks (2.8.0)
27
60
  shoulda (2.11.3)
28
- simplecov (0.5.4)
29
- multi_json (~> 1.0.3)
61
+ simplecov (0.6.1)
62
+ multi_json (~> 1.0)
30
63
  simplecov-html (~> 0.5.3)
31
64
  simplecov-html (0.5.3)
32
- slop (2.4.3)
65
+ slop (2.4.4)
33
66
  sqlite3 (1.3.5)
67
+ term-ansicolor (1.0.6)
68
+ timecop (0.3.5)
34
69
  yard (0.7.5)
35
70
 
36
71
  PLATFORMS
@@ -39,12 +74,19 @@ PLATFORMS
39
74
  DEPENDENCIES
40
75
  activerecord (~> 2.3)
41
76
  acts-as-approvable!
42
- appraisal
43
- mocha
44
- pry
45
- rake
46
- redcarpet
47
- shoulda
77
+ appraisal (~> 0.4.1)
78
+ cucumber (~> 1.1.0)
79
+ plymouth
80
+ pry (~> 0.9.8.1)
81
+ pry-coolline
82
+ pry-nav (~> 0.1.0)
83
+ pry-stack_explorer
84
+ pry-syntax-hacks
85
+ rake (~> 0.9.2)
86
+ redcarpet (~> 2.1.0)
87
+ rspec (~> 2.8.0)
88
+ shoulda (~> 2.0)
48
89
  simplecov
49
90
  sqlite3
91
+ timecop (~> 0.3.5)
50
92
  yard
@@ -4,5 +4,6 @@ source "http://rubygems.org"
4
4
 
5
5
  gem "activerecord", "~> 3.0.0"
6
6
  gem "railties", "~> 3.0.0"
7
+ gem "sqlite3"
7
8
 
8
9
  gemspec :path=>"../"
@@ -31,21 +31,44 @@ GEM
31
31
  bundler
32
32
  rake
33
33
  arel (2.0.10)
34
+ binding_of_caller (0.6.7)
34
35
  builder (2.1.2)
35
36
  coderay (1.0.5)
37
+ coolline (0.1.0)
38
+ cucumber (1.1.0)
39
+ builder (>= 2.1.2)
40
+ diff-lcs (>= 1.1.2)
41
+ gherkin (~> 2.5.0)
42
+ json (>= 1.4.6)
43
+ term-ansicolor (>= 1.0.6)
44
+ diff-lcs (1.1.3)
36
45
  erubis (2.6.6)
37
46
  abstract (>= 1.0.0)
47
+ gherkin (2.5.1)
48
+ json (>= 1.4.6)
38
49
  i18n (0.5.0)
50
+ io-console (0.3)
39
51
  json (1.6.5)
40
- metaclass (0.0.1)
41
- method_source (0.7.0)
42
- mocha (0.10.4)
43
- metaclass (~> 0.0.1)
52
+ method_source (0.7.1)
44
53
  multi_json (1.0.4)
45
- pry (0.9.8)
54
+ plymouth (0.3.2)
55
+ pry-exception_explorer (>= 0.1.7)
56
+ pry (0.9.8.4)
46
57
  coderay (~> 1.0.5)
47
- method_source (~> 0.7)
48
- slop (>= 2.4.3, < 3)
58
+ method_source (~> 0.7.1)
59
+ slop (>= 2.4.4, < 3)
60
+ pry-coolline (0.1.1)
61
+ coolline (~> 0.1.0)
62
+ io-console (~> 0.3.0)
63
+ pry-exception_explorer (0.1.9)
64
+ pry-stack_explorer (>= 0.3.9)
65
+ pry-nav (0.1.0)
66
+ pry (~> 0.9.8.1)
67
+ pry-stack_explorer (0.4.1)
68
+ binding_of_caller (~> 0.6.2)
69
+ pry (~> 0.9.8.2)
70
+ pry-syntax-hacks (0.0.6)
71
+ pry (>= 0.9.8)
49
72
  rack (1.2.5)
50
73
  rack-mount (0.6.14)
51
74
  rack (>= 1.0.0)
@@ -61,14 +84,24 @@ GEM
61
84
  rdoc (3.12)
62
85
  json (~> 1.4)
63
86
  redcarpet (2.1.0)
87
+ rspec (2.8.0)
88
+ rspec-core (~> 2.8.0)
89
+ rspec-expectations (~> 2.8.0)
90
+ rspec-mocks (~> 2.8.0)
91
+ rspec-core (2.8.0)
92
+ rspec-expectations (2.8.0)
93
+ diff-lcs (~> 1.1.2)
94
+ rspec-mocks (2.8.0)
64
95
  shoulda (2.11.3)
65
96
  simplecov (0.5.4)
66
97
  multi_json (~> 1.0.3)
67
98
  simplecov-html (~> 0.5.3)
68
99
  simplecov-html (0.5.3)
69
- slop (2.4.3)
100
+ slop (2.4.4)
70
101
  sqlite3 (1.3.5)
102
+ term-ansicolor (1.0.6)
71
103
  thor (0.14.6)
104
+ timecop (0.3.5)
72
105
  tzinfo (0.3.31)
73
106
  yard (0.7.5)
74
107
 
@@ -78,13 +111,20 @@ PLATFORMS
78
111
  DEPENDENCIES
79
112
  activerecord (~> 3.0.0)
80
113
  acts-as-approvable!
81
- appraisal
82
- mocha
83
- pry
114
+ appraisal (~> 0.4.1)
115
+ cucumber (~> 1.1.0)
116
+ plymouth
117
+ pry (~> 0.9.8.1)
118
+ pry-coolline
119
+ pry-nav (~> 0.1.0)
120
+ pry-stack_explorer
121
+ pry-syntax-hacks
84
122
  railties (~> 3.0.0)
85
- rake
86
- redcarpet
87
- shoulda
123
+ rake (~> 0.9.2)
124
+ redcarpet (~> 2.1.0)
125
+ rspec (~> 2.8.0)
126
+ shoulda (~> 2.0)
88
127
  simplecov
89
128
  sqlite3
129
+ timecop (~> 0.3.5)
90
130
  yard