acts-as-approvable 0.6.7 → 0.6.8.1

Sign up to get free protection for your applications and to get access to all the features.
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