acts_as_approvable 0.1.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. data/.gitignore +4 -0
  2. data/.rspec +2 -0
  3. data/.travis.yml +5 -0
  4. data/Appraisals +22 -0
  5. data/CHANGELOG +76 -0
  6. data/Gemfile +3 -0
  7. data/Gemfile.lock +84 -0
  8. data/MIT-LICENSE +2 -2
  9. data/README.md +146 -0
  10. data/Rakefile +90 -7
  11. data/TODO.md +30 -0
  12. data/VERSION +1 -0
  13. data/acts_as_approvable.gemspec +40 -0
  14. data/features/create_approval.feature +36 -0
  15. data/features/destroy_approval.feature +19 -0
  16. data/features/reset_approval.feature +13 -0
  17. data/features/step_definitions/cucumber_steps.rb +132 -0
  18. data/features/support/env.rb +14 -0
  19. data/features/support/large.txt +29943 -0
  20. data/features/support/second_large.txt +31798 -0
  21. data/features/update_approval.feature +48 -0
  22. data/gemfiles/Gemfile.ci +14 -0
  23. data/gemfiles/Gemfile.ci.lock +98 -0
  24. data/gemfiles/mysql2.gemfile +7 -0
  25. data/gemfiles/mysql2.gemfile.lock +86 -0
  26. data/gemfiles/rails2.gemfile +8 -0
  27. data/gemfiles/rails2.gemfile.lock +86 -0
  28. data/gemfiles/rails30.gemfile +9 -0
  29. data/gemfiles/rails30.gemfile.lock +124 -0
  30. data/gemfiles/rails31.gemfile +9 -0
  31. data/gemfiles/rails31.gemfile.lock +135 -0
  32. data/gemfiles/sqlite.gemfile +7 -0
  33. data/generators/acts_as_approvable/USAGE +3 -0
  34. data/generators/acts_as_approvable/acts_as_approvable_generator.rb +81 -0
  35. data/generators/acts_as_approvable/templates/approvals.js +71 -0
  36. data/generators/acts_as_approvable/templates/approvals_controller.rb +91 -0
  37. data/generators/acts_as_approvable/templates/create_approvals.rb +27 -0
  38. data/generators/acts_as_approvable/templates/initializer.rb +3 -0
  39. data/generators/acts_as_approvable/templates/jquery.form.js +101 -0
  40. data/generators/acts_as_approvable/templates/views/erb/_owner_select.html.erb +4 -0
  41. data/generators/acts_as_approvable/templates/views/erb/_table.html.erb +26 -0
  42. data/generators/acts_as_approvable/templates/views/erb/index.html.erb +17 -0
  43. data/generators/acts_as_approvable/templates/views/haml/_owner_select.html.haml +3 -0
  44. data/generators/acts_as_approvable/templates/views/haml/_table.html.haml +19 -0
  45. data/generators/acts_as_approvable/templates/views/haml/index.html.haml +15 -0
  46. data/init.rb +1 -0
  47. data/lib/acts_as_approvable.rb +96 -2
  48. data/lib/acts_as_approvable/approval.rb +205 -11
  49. data/lib/acts_as_approvable/error.rb +34 -0
  50. data/lib/acts_as_approvable/model.rb +60 -0
  51. data/lib/acts_as_approvable/model/class_methods.rb +63 -0
  52. data/lib/acts_as_approvable/model/create_instance_methods.rb +88 -0
  53. data/lib/acts_as_approvable/model/destroy_instance_methods.rb +38 -0
  54. data/lib/acts_as_approvable/model/instance_methods.rb +107 -0
  55. data/lib/acts_as_approvable/model/update_instance_methods.rb +61 -0
  56. data/lib/acts_as_approvable/ownership.rb +141 -0
  57. data/lib/acts_as_approvable/railtie.rb +7 -0
  58. data/lib/acts_as_approvable/version.rb +1 -8
  59. data/lib/generators/acts_as_approvable/USAGE +1 -0
  60. data/lib/generators/acts_as_approvable/acts_as_approvable_generator.rb +68 -0
  61. data/lib/generators/acts_as_approvable/base.rb +30 -0
  62. data/lib/generators/acts_as_approvable/templates/approvals.js +71 -0
  63. data/lib/generators/acts_as_approvable/templates/approvals_controller.rb +91 -0
  64. data/lib/generators/acts_as_approvable/templates/create_approvals.rb +27 -0
  65. data/lib/generators/acts_as_approvable/templates/jquery.form.js +101 -0
  66. data/lib/generators/erb/acts_as_approvable_generator.rb +33 -0
  67. data/lib/generators/erb/templates/_owner_select.html.erb +4 -0
  68. data/lib/generators/erb/templates/_table.html.erb +26 -0
  69. data/lib/generators/erb/templates/index.html.erb +17 -0
  70. data/lib/generators/haml/acts_as_approvable_generator.rb +33 -0
  71. data/lib/generators/haml/templates/_owner_select.html.haml +3 -0
  72. data/lib/generators/haml/templates/_table.html.haml +19 -0
  73. data/lib/generators/haml/templates/index.html.haml +15 -0
  74. data/lib/tasks/acts_as_approvable.rake +4 -0
  75. data/rails/init.rb +1 -0
  76. data/spec/acts_as_approvable/approval_spec.rb +614 -0
  77. data/spec/acts_as_approvable/model/class_methods_spec.rb +219 -0
  78. data/spec/acts_as_approvable/model/create_instance_methods_spec.rb +169 -0
  79. data/spec/acts_as_approvable/model/destroy_instance_methods_spec.rb +71 -0
  80. data/spec/acts_as_approvable/model/instance_methods_spec.rb +328 -0
  81. data/spec/acts_as_approvable/model/update_instance_methods_spec.rb +111 -0
  82. data/spec/acts_as_approvable/model_spec.rb +113 -0
  83. data/spec/acts_as_approvable/ownership/class_methods_spec.rb +134 -0
  84. data/spec/acts_as_approvable/ownership/instance_methods_spec.rb +32 -0
  85. data/spec/acts_as_approvable/ownership_spec.rb +52 -0
  86. data/spec/acts_as_approvable_spec.rb +31 -0
  87. data/spec/spec_helper.rb +51 -0
  88. data/spec/support/database.rb +49 -0
  89. data/spec/support/database.yml +12 -0
  90. data/spec/support/matchers.rb +87 -0
  91. data/spec/support/models.rb +67 -0
  92. data/spec/support/schema.rb +54 -0
  93. metadata +375 -58
  94. data/README.rdoc +0 -38
  95. data/lib/acts_as_approvable/approver.rb +0 -76
  96. data/lib/generators/acts_as_approvable/install_generator.rb +0 -28
  97. data/lib/generators/acts_as_approvable/templates/install.rb +0 -16
@@ -0,0 +1,48 @@
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 |
35
+
36
+ Scenario: a stale record is approved
37
+ When I update the record with:
38
+ | body | not updated |
39
+ And the record is stale
40
+ And I approve the changes
41
+ Then it should raise ActsAsApprovable::Error::Stale
42
+
43
+ Scenario: a stale record is forcefully approved
44
+ When I update the record with:
45
+ | body | not updated |
46
+ And the record is stale
47
+ And I approve the changes forcefully
48
+ Then the record should have the changes
@@ -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,86 @@
1
+ PATH
2
+ remote: /Users/jlogsdon/Code/jlogsdon.github.com/acts_as_approvable
3
+ specs:
4
+ acts_as_approvable (0.7.0)
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
+ cucumber (1.1.0)
19
+ builder (>= 2.1.2)
20
+ diff-lcs (>= 1.1.2)
21
+ gherkin (~> 2.5.0)
22
+ json (>= 1.4.6)
23
+ term-ansicolor (>= 1.0.6)
24
+ diff-lcs (1.1.3)
25
+ gherkin (2.5.1)
26
+ json (>= 1.4.6)
27
+ json (1.6.5)
28
+ method_source (0.7.1)
29
+ multi_json (1.1.0)
30
+ mysql2 (0.2.18)
31
+ plymouth (0.3.2)
32
+ pry-exception_explorer (>= 0.1.7)
33
+ pry (0.9.8.4)
34
+ coderay (~> 1.0.5)
35
+ method_source (~> 0.7.1)
36
+ slop (>= 2.4.4, < 3)
37
+ pry-exception_explorer (0.1.9)
38
+ pry-stack_explorer (>= 0.3.9)
39
+ pry-nav (0.1.0)
40
+ pry (~> 0.9.8.1)
41
+ pry-stack_explorer (0.4.1)
42
+ binding_of_caller (~> 0.6.2)
43
+ pry (~> 0.9.8.2)
44
+ pry-syntax-hacks (0.0.6)
45
+ pry (>= 0.9.8)
46
+ rake (0.9.2.2)
47
+ redcarpet (2.1.0)
48
+ rspec (2.8.0)
49
+ rspec-core (~> 2.8.0)
50
+ rspec-expectations (~> 2.8.0)
51
+ rspec-mocks (~> 2.8.0)
52
+ rspec-core (2.8.0)
53
+ rspec-expectations (2.8.0)
54
+ diff-lcs (~> 1.1.2)
55
+ rspec-mocks (2.8.0)
56
+ shoulda (2.11.3)
57
+ simplecov (0.6.1)
58
+ multi_json (~> 1.0)
59
+ simplecov-html (~> 0.5.3)
60
+ simplecov-html (0.5.3)
61
+ slop (2.4.4)
62
+ term-ansicolor (1.0.6)
63
+ timecop (0.3.5)
64
+ yard (0.7.5)
65
+
66
+ PLATFORMS
67
+ ruby
68
+
69
+ DEPENDENCIES
70
+ activerecord (>= 2.3)
71
+ acts_as_approvable!
72
+ appraisal (~> 0.4.1)
73
+ cucumber (~> 1.1.0)
74
+ mysql2 (~> 0.2.18)
75
+ plymouth
76
+ pry (~> 0.9.8.1)
77
+ pry-nav (~> 0.1.0)
78
+ pry-stack_explorer
79
+ pry-syntax-hacks
80
+ rake (~> 0.9.2)
81
+ redcarpet (~> 2.1.0)
82
+ rspec (~> 2.8.0)
83
+ shoulda (~> 2.0)
84
+ simplecov
85
+ timecop (~> 0.3.5)
86
+ yard
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "activerecord", "~> 2.3"
6
+ gem "sqlite3"
7
+
8
+ gemspec :path=>"../"
@@ -0,0 +1,86 @@
1
+ PATH
2
+ remote: /Users/jlogsdon/Code/jlogsdon.github.com/acts_as_approvable
3
+ specs:
4
+ acts_as_approvable (0.7.0)
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
+ cucumber (1.1.0)
19
+ builder (>= 2.1.2)
20
+ diff-lcs (>= 1.1.2)
21
+ gherkin (~> 2.5.0)
22
+ json (>= 1.4.6)
23
+ term-ansicolor (>= 1.0.6)
24
+ diff-lcs (1.1.3)
25
+ gherkin (2.5.1)
26
+ json (>= 1.4.6)
27
+ json (1.6.5)
28
+ method_source (0.7.1)
29
+ multi_json (1.1.0)
30
+ plymouth (0.3.2)
31
+ pry-exception_explorer (>= 0.1.7)
32
+ pry (0.9.8.4)
33
+ coderay (~> 1.0.5)
34
+ method_source (~> 0.7.1)
35
+ slop (>= 2.4.4, < 3)
36
+ pry-exception_explorer (0.1.9)
37
+ pry-stack_explorer (>= 0.3.9)
38
+ pry-nav (0.1.0)
39
+ pry (~> 0.9.8.1)
40
+ pry-stack_explorer (0.4.1)
41
+ binding_of_caller (~> 0.6.2)
42
+ pry (~> 0.9.8.2)
43
+ pry-syntax-hacks (0.0.6)
44
+ pry (>= 0.9.8)
45
+ rake (0.9.2.2)
46
+ redcarpet (2.1.0)
47
+ rspec (2.8.0)
48
+ rspec-core (~> 2.8.0)
49
+ rspec-expectations (~> 2.8.0)
50
+ rspec-mocks (~> 2.8.0)
51
+ rspec-core (2.8.0)
52
+ rspec-expectations (2.8.0)
53
+ diff-lcs (~> 1.1.2)
54
+ rspec-mocks (2.8.0)
55
+ shoulda (2.11.3)
56
+ simplecov (0.6.1)
57
+ multi_json (~> 1.0)
58
+ simplecov-html (~> 0.5.3)
59
+ simplecov-html (0.5.3)
60
+ slop (2.4.4)
61
+ sqlite3 (1.3.5)
62
+ term-ansicolor (1.0.6)
63
+ timecop (0.3.5)
64
+ yard (0.7.5)
65
+
66
+ PLATFORMS
67
+ ruby
68
+
69
+ DEPENDENCIES
70
+ activerecord (~> 2.3)
71
+ acts_as_approvable!
72
+ appraisal (~> 0.4.1)
73
+ cucumber (~> 1.1.0)
74
+ plymouth
75
+ pry (~> 0.9.8.1)
76
+ pry-nav (~> 0.1.0)
77
+ pry-stack_explorer
78
+ pry-syntax-hacks
79
+ rake (~> 0.9.2)
80
+ redcarpet (~> 2.1.0)
81
+ rspec (~> 2.8.0)
82
+ shoulda (~> 2.0)
83
+ simplecov
84
+ sqlite3
85
+ timecop (~> 0.3.5)
86
+ yard
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "activerecord", "~> 3.0.0"
6
+ gem "railties", "~> 3.0.0"
7
+ gem "sqlite3"
8
+
9
+ gemspec :path=>"../"
@@ -0,0 +1,124 @@
1
+ PATH
2
+ remote: /Users/jlogsdon/Code/jlogsdon.github.com/acts_as_approvable
3
+ specs:
4
+ acts_as_approvable (0.7.0)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ abstract (1.0.0)
10
+ actionpack (3.0.11)
11
+ activemodel (= 3.0.11)
12
+ activesupport (= 3.0.11)
13
+ builder (~> 2.1.2)
14
+ erubis (~> 2.6.6)
15
+ i18n (~> 0.5.0)
16
+ rack (~> 1.2.1)
17
+ rack-mount (~> 0.6.14)
18
+ rack-test (~> 0.5.7)
19
+ tzinfo (~> 0.3.23)
20
+ activemodel (3.0.11)
21
+ activesupport (= 3.0.11)
22
+ builder (~> 2.1.2)
23
+ i18n (~> 0.5.0)
24
+ activerecord (3.0.11)
25
+ activemodel (= 3.0.11)
26
+ activesupport (= 3.0.11)
27
+ arel (~> 2.0.10)
28
+ tzinfo (~> 0.3.23)
29
+ activesupport (3.0.11)
30
+ appraisal (0.4.1)
31
+ bundler
32
+ rake
33
+ arel (2.0.10)
34
+ binding_of_caller (0.6.7)
35
+ builder (2.1.2)
36
+ coderay (1.0.5)
37
+ cucumber (1.1.0)
38
+ builder (>= 2.1.2)
39
+ diff-lcs (>= 1.1.2)
40
+ gherkin (~> 2.5.0)
41
+ json (>= 1.4.6)
42
+ term-ansicolor (>= 1.0.6)
43
+ diff-lcs (1.1.3)
44
+ erubis (2.6.6)
45
+ abstract (>= 1.0.0)
46
+ gherkin (2.5.1)
47
+ json (>= 1.4.6)
48
+ i18n (0.5.0)
49
+ json (1.6.5)
50
+ method_source (0.7.1)
51
+ multi_json (1.0.4)
52
+ plymouth (0.3.2)
53
+ pry-exception_explorer (>= 0.1.7)
54
+ pry (0.9.8.4)
55
+ coderay (~> 1.0.5)
56
+ method_source (~> 0.7.1)
57
+ slop (>= 2.4.4, < 3)
58
+ pry-exception_explorer (0.1.9)
59
+ pry-stack_explorer (>= 0.3.9)
60
+ pry-nav (0.1.0)
61
+ pry (~> 0.9.8.1)
62
+ pry-stack_explorer (0.4.1)
63
+ binding_of_caller (~> 0.6.2)
64
+ pry (~> 0.9.8.2)
65
+ pry-syntax-hacks (0.0.6)
66
+ pry (>= 0.9.8)
67
+ rack (1.2.5)
68
+ rack-mount (0.6.14)
69
+ rack (>= 1.0.0)
70
+ rack-test (0.5.7)
71
+ rack (>= 1.0)
72
+ railties (3.0.11)
73
+ actionpack (= 3.0.11)
74
+ activesupport (= 3.0.11)
75
+ rake (>= 0.8.7)
76
+ rdoc (~> 3.4)
77
+ thor (~> 0.14.4)
78
+ rake (0.9.2.2)
79
+ rdoc (3.12)
80
+ json (~> 1.4)
81
+ redcarpet (2.1.0)
82
+ rspec (2.8.0)
83
+ rspec-core (~> 2.8.0)
84
+ rspec-expectations (~> 2.8.0)
85
+ rspec-mocks (~> 2.8.0)
86
+ rspec-core (2.8.0)
87
+ rspec-expectations (2.8.0)
88
+ diff-lcs (~> 1.1.2)
89
+ rspec-mocks (2.8.0)
90
+ shoulda (2.11.3)
91
+ simplecov (0.5.4)
92
+ multi_json (~> 1.0.3)
93
+ simplecov-html (~> 0.5.3)
94
+ simplecov-html (0.5.3)
95
+ slop (2.4.4)
96
+ sqlite3 (1.3.5)
97
+ term-ansicolor (1.0.6)
98
+ thor (0.14.6)
99
+ timecop (0.3.5)
100
+ tzinfo (0.3.31)
101
+ yard (0.7.5)
102
+
103
+ PLATFORMS
104
+ ruby
105
+
106
+ DEPENDENCIES
107
+ activerecord (~> 3.0.0)
108
+ acts_as_approvable!
109
+ appraisal (~> 0.4.1)
110
+ cucumber (~> 1.1.0)
111
+ plymouth
112
+ pry (~> 0.9.8.1)
113
+ pry-nav (~> 0.1.0)
114
+ pry-stack_explorer
115
+ pry-syntax-hacks
116
+ railties (~> 3.0.0)
117
+ rake (~> 0.9.2)
118
+ redcarpet (~> 2.1.0)
119
+ rspec (~> 2.8.0)
120
+ shoulda (~> 2.0)
121
+ simplecov
122
+ sqlite3
123
+ timecop (~> 0.3.5)
124
+ yard