solidus_volume_pricing 0.2.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +35 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +8 -4
  5. data/.rubocop_todo.yml +126 -0
  6. data/CHANGELOG.md +57 -0
  7. data/Gemfile +18 -4
  8. data/Guardfile +3 -1
  9. data/README.md +53 -48
  10. data/Rakefile +2 -0
  11. data/app/assets/javascripts/spree/backend/solidus_volume_pricing.js +1 -15
  12. data/app/controllers/spree/admin/volume_price_models_controller.rb +2 -1
  13. data/app/controllers/spree/admin/volume_prices_controller.rb +3 -1
  14. data/app/decorators/controllers/solidus_volume_pricing/spree/admin/variants_controller_decorator.rb +42 -0
  15. data/app/decorators/helpers/solidus_volume_pricing/spree/base_helper_decorator.rb +31 -0
  16. data/app/decorators/models/solidus_volume_pricing/spree/line_item_decorator.rb +18 -0
  17. data/app/decorators/models/solidus_volume_pricing/spree/user_decorator.rb +17 -0
  18. data/app/decorators/models/solidus_volume_pricing/spree/variant_decorator.rb +21 -0
  19. data/app/models/solidus_volume_pricing/price_display.rb +47 -0
  20. data/app/models/solidus_volume_pricing/pricer.rb +95 -0
  21. data/app/models/solidus_volume_pricing/pricing_options.rb +20 -0
  22. data/app/models/spree/volume_price.rb +43 -26
  23. data/app/models/spree/volume_price_model.rb +6 -4
  24. data/app/overrides/spree/admin/shared/_settings_sub_menu/add_volume_price_model_admin_menu_links.html.erb.deface +5 -0
  25. data/app/overrides/views_decorator.rb +2 -0
  26. data/app/views/spree/admin/shared/_vp_product_tab.html.erb +2 -2
  27. data/app/views/spree/admin/variants/_edit_fields.html.erb +5 -32
  28. data/app/views/spree/admin/variants/volume_prices.html.erb +9 -36
  29. data/app/views/spree/admin/volume_price_models/_form.html.erb +6 -2
  30. data/app/views/spree/admin/volume_price_models/_list.html.erb +8 -4
  31. data/app/views/spree/admin/volume_price_models/_select.html.erb +17 -0
  32. data/app/views/spree/admin/volume_price_models/edit.html.erb +7 -6
  33. data/app/views/spree/admin/volume_price_models/index.html.erb +7 -5
  34. data/app/views/spree/admin/volume_price_models/new.html.erb +5 -5
  35. data/app/views/spree/admin/volume_prices/_table.html.erb +26 -0
  36. data/app/views/spree/admin/volume_prices/_volume_price_fields.html.erb +6 -6
  37. data/app/views/spree/products/_volume_pricing.html.erb +8 -8
  38. data/bin/rails +3 -2
  39. data/config/locales/de.yml +17 -3
  40. data/config/locales/en.yml +21 -2
  41. data/config/locales/pt.yml +6 -2
  42. data/config/locales/ru.yml +6 -2
  43. data/config/locales/sv.yml +6 -2
  44. data/config/locales/tr.yml +6 -2
  45. data/config/routes.rb +3 -1
  46. data/db/migrate/20081119145604_create_volume_prices.rb +3 -1
  47. data/db/migrate/20110203174010_change_display_name_for_volume_prices.rb +3 -1
  48. data/db/migrate/20111206173307_prefix_volume_pricing_table_names.rb +3 -1
  49. data/db/migrate/20121115043422_add_discount_type_column.rb +3 -1
  50. data/db/migrate/20150513200904_add_role_to_volume_price.rb +3 -1
  51. data/db/migrate/20150603143015_create_spree_volume_price_models.rb +3 -1
  52. data/lib/generators/solidus_volume_pricing/install/install_generator.rb +3 -5
  53. data/lib/solidus_volume_pricing.rb +5 -1
  54. data/lib/solidus_volume_pricing/engine.rb +5 -22
  55. data/lib/solidus_volume_pricing/range_from_string.rb +36 -0
  56. data/lib/solidus_volume_pricing/version.rb +5 -3
  57. data/solidus_volume_pricing.gemspec +6 -14
  58. data/spec/controllers/spree/admin/variants_controller_spec.rb +18 -15
  59. data/spec/factories/volume_price_factory.rb +7 -5
  60. data/spec/features/manage_volume_price_models_feature_spec.rb +5 -3
  61. data/spec/features/manage_volume_prices_feature_spec.rb +6 -4
  62. data/spec/helpers/base_helper_spec.rb +3 -1
  63. data/spec/lib/solidus_volume_pricing/range_from_string_spec.rb +61 -0
  64. data/spec/models/solidus_volume_pricing/pricer_spec.rb +673 -0
  65. data/spec/models/solidus_volume_pricing/pricing_options_spec.rb +57 -0
  66. data/spec/models/spree/line_item_spec.rb +24 -21
  67. data/spec/models/spree/order_spec.rb +4 -2
  68. data/spec/models/spree/variant_spec.rb +3 -303
  69. data/spec/models/spree/volume_price_spec.rb +153 -49
  70. data/spec/spec_helper.rb +5 -38
  71. data/spec/support/shoulda.rb +11 -0
  72. metadata +37 -173
  73. data/.hound.yml +0 -40
  74. data/.travis.yml +0 -12
  75. data/CONTRIBUTING.md +0 -81
  76. data/app/controllers/spree/admin/variants_controller_decorator.rb +0 -32
  77. data/app/helpers/spree/base_helper_decorator.rb +0 -19
  78. data/app/models/spree/line_item_decorator.rb +0 -13
  79. data/app/models/spree/user_decorator.rb +0 -10
  80. data/app/models/spree/variant_decorator.rb +0 -104
  81. data/app/overrides/spree/admin/shared/sub_menu/_configuration/add_volume_price_model_admin_menu_links.html.erb.deface +0 -3
  82. data/app/views/spree/admin/volume_prices/_edit_fields.html.erb +0 -31
  83. data/spec/support/capybara.rb +0 -12
  84. data/spec/support/database_cleaner.rb +0 -21
  85. data/spec/support/factory_girl.rb +0 -7
  86. data/spec/support/spree.rb +0 -10
@@ -1,44 +1,11 @@
1
- require 'simplecov'
2
- SimpleCov.start 'rails' do
3
- add_filter "/lib/generators"
4
- add_filter "/lib/solidus_volume_pricing"
5
- end
1
+ # frozen_string_literal: true
6
2
 
7
3
  ENV['RAILS_ENV'] ||= 'test'
8
4
 
9
- begin
10
- require File.expand_path('../dummy/config/environment', __FILE__)
11
- rescue LoadError
12
- puts 'Could not load dummy application. Please ensure you have run `bundle exec rake test_app`'
13
- exit
14
- end
5
+ require 'solidus_extension_dev_tools/rspec/coverage'
15
6
 
16
- require 'rspec/rails'
17
- require 'ffaker'
18
- require 'shoulda-matchers'
19
- require 'pry'
7
+ require File.expand_path('dummy/config/environment.rb', __dir__)
20
8
 
21
- RSpec.configure do |config|
22
- config.fail_fast = false
23
- config.filter_run focus: true
24
- config.run_all_when_everything_filtered = true
9
+ require 'solidus_extension_dev_tools/rspec/feature_helper'
25
10
 
26
- config.mock_with :rspec
27
- config.use_transactional_fixtures = false
28
- config.raise_errors_for_deprecations!
29
- config.infer_spec_type_from_file_location!
30
-
31
- config.expect_with :rspec do |expectations|
32
- expectations.syntax = :expect
33
- end
34
- end
35
-
36
- # From: https://github.com/thoughtbot/shoulda-matchers/issues/384
37
- Shoulda::Matchers.configure do |config|
38
- config.integrate do |with|
39
- with.test_framework :rspec
40
- with.library :rails
41
- end
42
- end
43
-
44
- Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |file| require file }
11
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'shoulda-matchers'
4
+
5
+ # From: https://github.com/thoughtbot/shoulda-matchers/issues/384
6
+ Shoulda::Matchers.configure do |config|
7
+ config.integrate do |with|
8
+ with.test_framework :rspec
9
+ with.library :rails
10
+ end
11
+ end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_volume_pricing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-20 00:00:00.000000000 Z
11
+ date: 2019-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: solidus_core
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.3'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.3'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: deface
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -39,47 +25,33 @@ dependencies:
39
25
  - !ruby/object:Gem::Version
40
26
  version: '1.0'
41
27
  - !ruby/object:Gem::Dependency
42
- name: sqlite3
28
+ name: solidus_backend
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - ">="
46
32
  - !ruby/object:Gem::Version
47
- version: 1.3.10
48
- type: :development
33
+ version: '2.0'
34
+ type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - ">="
53
39
  - !ruby/object:Gem::Version
54
- version: 1.3.10
55
- - !ruby/object:Gem::Dependency
56
- name: capybara
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '2.4'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '2.4'
40
+ version: '2.0'
69
41
  - !ruby/object:Gem::Dependency
70
- name: ffaker
42
+ name: solidus_core
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
45
  - - ">="
74
46
  - !ruby/object:Gem::Version
75
- version: 1.32.1
76
- type: :development
47
+ version: '2.0'
48
+ type: :runtime
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
52
  - - ">="
81
53
  - !ruby/object:Gem::Version
82
- version: 1.32.1
54
+ version: '2.0'
83
55
  - !ruby/object:Gem::Dependency
84
56
  name: shoulda-matchers
85
57
  requirement: !ruby/object:Gem::Requirement
@@ -95,169 +67,61 @@ dependencies:
95
67
  - !ruby/object:Gem::Version
96
68
  version: '0'
97
69
  - !ruby/object:Gem::Dependency
98
- name: rspec-rails
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '3.2'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '3.2'
111
- - !ruby/object:Gem::Dependency
112
- name: simplecov
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '0.9'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '0.9'
125
- - !ruby/object:Gem::Dependency
126
- name: factory_girl
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '4.5'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '4.5'
139
- - !ruby/object:Gem::Dependency
140
- name: pry-rails
70
+ name: solidus_extension_dev_tools
141
71
  requirement: !ruby/object:Gem::Requirement
142
72
  requirements:
143
73
  - - ">="
144
74
  - !ruby/object:Gem::Version
145
- version: '0.3'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0.3'
153
- - !ruby/object:Gem::Dependency
154
- name: poltergeist
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '1.6'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '1.6'
167
- - !ruby/object:Gem::Dependency
168
- name: database_cleaner
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '1.4'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '1.4'
181
- - !ruby/object:Gem::Dependency
182
- name: coffee-rails
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: '4.0'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: '4.0'
195
- - !ruby/object:Gem::Dependency
196
- name: sass-rails
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: '5.0'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - "~>"
207
- - !ruby/object:Gem::Version
208
- version: '5.0'
209
- - !ruby/object:Gem::Dependency
210
- name: rubocop
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- version: 0.24.1
75
+ version: '0'
216
76
  type: :development
217
77
  prerelease: false
218
78
  version_requirements: !ruby/object:Gem::Requirement
219
79
  requirements:
220
80
  - - ">="
221
81
  - !ruby/object:Gem::Version
222
- version: 0.24.1
82
+ version: '0'
223
83
  description: Allow prices to be configured in quantity ranges for each variant
224
84
  email: sean@railsdog.com
225
85
  executables: []
226
86
  extensions: []
227
87
  extra_rdoc_files: []
228
88
  files:
89
+ - ".circleci/config.yml"
229
90
  - ".gitignore"
230
- - ".hound.yml"
231
91
  - ".rspec"
232
92
  - ".rubocop.yml"
233
- - ".travis.yml"
234
- - CONTRIBUTING.md
93
+ - ".rubocop_todo.yml"
94
+ - CHANGELOG.md
235
95
  - Gemfile
236
96
  - Guardfile
237
97
  - LICENSE.md
238
98
  - README.md
239
99
  - Rakefile
240
100
  - app/assets/javascripts/spree/backend/solidus_volume_pricing.js
241
- - app/controllers/spree/admin/variants_controller_decorator.rb
242
101
  - app/controllers/spree/admin/volume_price_models_controller.rb
243
102
  - app/controllers/spree/admin/volume_prices_controller.rb
244
- - app/helpers/spree/base_helper_decorator.rb
245
- - app/models/spree/line_item_decorator.rb
246
- - app/models/spree/user_decorator.rb
247
- - app/models/spree/variant_decorator.rb
103
+ - app/decorators/controllers/solidus_volume_pricing/spree/admin/variants_controller_decorator.rb
104
+ - app/decorators/helpers/solidus_volume_pricing/spree/base_helper_decorator.rb
105
+ - app/decorators/models/solidus_volume_pricing/spree/line_item_decorator.rb
106
+ - app/decorators/models/solidus_volume_pricing/spree/user_decorator.rb
107
+ - app/decorators/models/solidus_volume_pricing/spree/variant_decorator.rb
108
+ - app/models/solidus_volume_pricing/price_display.rb
109
+ - app/models/solidus_volume_pricing/pricer.rb
110
+ - app/models/solidus_volume_pricing/pricing_options.rb
248
111
  - app/models/spree/volume_price.rb
249
112
  - app/models/spree/volume_price_model.rb
250
- - app/overrides/spree/admin/shared/sub_menu/_configuration/add_volume_price_model_admin_menu_links.html.erb.deface
113
+ - app/overrides/spree/admin/shared/_settings_sub_menu/add_volume_price_model_admin_menu_links.html.erb.deface
251
114
  - app/overrides/views_decorator.rb
252
115
  - app/views/spree/admin/shared/_vp_product_tab.html.erb
253
116
  - app/views/spree/admin/variants/_edit_fields.html.erb
254
117
  - app/views/spree/admin/variants/volume_prices.html.erb
255
118
  - app/views/spree/admin/volume_price_models/_form.html.erb
256
119
  - app/views/spree/admin/volume_price_models/_list.html.erb
120
+ - app/views/spree/admin/volume_price_models/_select.html.erb
257
121
  - app/views/spree/admin/volume_price_models/edit.html.erb
258
122
  - app/views/spree/admin/volume_price_models/index.html.erb
259
123
  - app/views/spree/admin/volume_price_models/new.html.erb
260
- - app/views/spree/admin/volume_prices/_edit_fields.html.erb
124
+ - app/views/spree/admin/volume_prices/_table.html.erb
261
125
  - app/views/spree/admin/volume_prices/_volume_price_fields.html.erb
262
126
  - app/views/spree/products/_volume_pricing.html.erb
263
127
  - bin/rails
@@ -277,6 +141,7 @@ files:
277
141
  - lib/generators/solidus_volume_pricing/install/install_generator.rb
278
142
  - lib/solidus_volume_pricing.rb
279
143
  - lib/solidus_volume_pricing/engine.rb
144
+ - lib/solidus_volume_pricing/range_from_string.rb
280
145
  - lib/solidus_volume_pricing/version.rb
281
146
  - solidus_volume_pricing.gemspec
282
147
  - spec/controllers/spree/admin/variants_controller_spec.rb
@@ -284,15 +149,15 @@ files:
284
149
  - spec/features/manage_volume_price_models_feature_spec.rb
285
150
  - spec/features/manage_volume_prices_feature_spec.rb
286
151
  - spec/helpers/base_helper_spec.rb
152
+ - spec/lib/solidus_volume_pricing/range_from_string_spec.rb
153
+ - spec/models/solidus_volume_pricing/pricer_spec.rb
154
+ - spec/models/solidus_volume_pricing/pricing_options_spec.rb
287
155
  - spec/models/spree/line_item_spec.rb
288
156
  - spec/models/spree/order_spec.rb
289
157
  - spec/models/spree/variant_spec.rb
290
158
  - spec/models/spree/volume_price_spec.rb
291
159
  - spec/spec_helper.rb
292
- - spec/support/capybara.rb
293
- - spec/support/database_cleaner.rb
294
- - spec/support/factory_girl.rb
295
- - spec/support/spree.rb
160
+ - spec/support/shoulda.rb
296
161
  homepage: https://github.com/solidusio-contrib/solidus_volume_pricing
297
162
  licenses:
298
163
  - BSD-3
@@ -313,8 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
313
178
  version: '0'
314
179
  requirements:
315
180
  - none
316
- rubyforge_project:
317
- rubygems_version: 2.5.2
181
+ rubygems_version: 3.0.6
318
182
  signing_key:
319
183
  specification_version: 4
320
184
  summary: Allow prices to be configured in quantity ranges for each variant
@@ -324,12 +188,12 @@ test_files:
324
188
  - spec/features/manage_volume_price_models_feature_spec.rb
325
189
  - spec/features/manage_volume_prices_feature_spec.rb
326
190
  - spec/helpers/base_helper_spec.rb
191
+ - spec/lib/solidus_volume_pricing/range_from_string_spec.rb
192
+ - spec/models/solidus_volume_pricing/pricer_spec.rb
193
+ - spec/models/solidus_volume_pricing/pricing_options_spec.rb
327
194
  - spec/models/spree/line_item_spec.rb
328
195
  - spec/models/spree/order_spec.rb
329
196
  - spec/models/spree/variant_spec.rb
330
197
  - spec/models/spree/volume_price_spec.rb
331
198
  - spec/spec_helper.rb
332
- - spec/support/capybara.rb
333
- - spec/support/database_cleaner.rb
334
- - spec/support/factory_girl.rb
335
- - spec/support/spree.rb
199
+ - spec/support/shoulda.rb
data/.hound.yml DELETED
@@ -1,40 +0,0 @@
1
- ---
2
- # Too picky.
3
- Metrics/LineLength:
4
- Enabled: false
5
-
6
- Metrics/AbcSize:
7
- Enabled: false
8
-
9
- # This should truly be on for well documented gems.
10
- Style/Documentation:
11
- Enabled: false
12
-
13
- # Neatly aligned code is too swell.
14
- Style/SingleSpaceBeforeFirstArg:
15
- Enabled: false
16
-
17
- # Don't mess with RSpec DSL.
18
- Style/BlockDelimiters:
19
- Exclude:
20
- - 'spec/**/*'
21
-
22
- # We really like the readability with newline in beginning of classes.
23
- Style/EmptyLinesAroundBlockBody:
24
- Enabled: false
25
-
26
- Style/EmptyLinesAroundClassBody:
27
- Enabled: false
28
-
29
- # It say we should use fail over raise.
30
- Style/SignalException:
31
- Enabled: false
32
-
33
- # Use nested module/class definitions instead of compact style.
34
- # Too high git impact to change this now.
35
- Style/ClassAndModuleChildren:
36
- Enabled: false
37
-
38
- # Avoid contradictory style rules by enforce single quotes.
39
- Style/StringLiterals:
40
- EnforcedStyle: single_quotes
@@ -1,12 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.3.3
4
- sudo: false
5
- cache: bundler
6
- only: master
7
- env:
8
- matrix:
9
- - SOLIDUS_BRANCH=v1.3 DB=mysql
10
- - SOLIDUS_BRANCH=v1.3 DB=postgresql
11
- - SOLIDUS_BRANCH=v1.4 DB=mysql
12
- - SOLIDUS_BRANCH=v1.4 DB=postgresql
@@ -1,81 +0,0 @@
1
- # Contributing
2
-
3
- Spree Reviews is an open source project and we encourage contributions. Please see the [contributors guidelines](http://spreecommerce.com/documentation/contributing_to_spree.html) for more information before contributing.
4
-
5
- In the spirit of [free software][1], **everyone** is encouraged to help improve this project.
6
-
7
- Here are some ways *you* can contribute:
8
-
9
- * by using prerelease versions
10
- * by reporting [bugs][2]
11
- * by suggesting new features
12
- * by writing [translations][3]
13
- * by writing or editing documentation
14
- * by writing specifications
15
- * by writing code (*no patch is too small*: fix typos, add comments, clean up inconsistent whitespace)
16
- * by refactoring code
17
- * by resolving [issues][2]
18
- * by reviewing patches
19
-
20
- ---
21
-
22
- ## Filing an issue
23
-
24
- When filing an issue on this extension, please first do these things:
25
-
26
- * Verify you can reproduce this issue in a brand new application.
27
- * Run through the steps to reproduce the issue again.
28
-
29
- In the issue itself please provide:
30
-
31
- * A comprehensive list of steps to reproduce the issue.
32
- * What you're *expecting* to happen compared with what's *actually* happening.
33
- * The version of Spree *and* the version of Rails.
34
- * A list of all extensions.
35
- * Any relevant stack traces ("Full trace" preferred)
36
- * Your `Gemfile`
37
-
38
- In 99% of cases, this information is enough to determine the cause and solution to the problem that is being described.
39
-
40
- ---
41
-
42
- ## Pull requests
43
-
44
- We gladly accept pull requests to fix bugs and, in some circumstances, add new features to this extension.
45
-
46
- Here's a quick guide:
47
-
48
- 1. Fork the repo.
49
-
50
- 2. Run the tests. We only take pull requests with passing tests, and it's great to know that you have a clean slate.
51
-
52
- 3. Create new branch then make changes and add tests for your changes. Only refactoring and documentation changes require no new tests. If you are adding functionality or fixing a bug, we need tests!
53
-
54
- 4. Push to your fork and submit a pull request. If the changes will apply cleanly to the latest stable branches and master branch, you will only need to submit one pull request.
55
-
56
- At this point you're waiting on us. We may suggest some changes or improvements or alternatives.
57
-
58
- Some things that will increase the chance that your pull request is accepted, taken straight from the Ruby on Rails guide:
59
-
60
- * Use Rails idioms and helpers.
61
- * Include tests that fail without your code, and pass with it.
62
- * Update the documentation, the surrounding one, examples elsewhere, guides, whatever is affected by your contribution.
63
-
64
- ---
65
-
66
- ## TL;DR
67
-
68
- * Fork the repo
69
- * Clone your repo
70
- * Run `bundle install`
71
- * Run `bundle exec rake test_app` to create the test application in `spec/dummy`
72
- * Make your changes
73
- * Ensure specs pass by running `bundle exec rspec spec`
74
- * Ensure all syntax ok by running `rubocop .`
75
- * Submit your pull request
76
-
77
- And in case we didn't emphasize it enough: **we love tests!**
78
-
79
- [1]: http://www.fsf.org/licensing/essays/free-sw.html
80
- [2]: https://github.com/solidusio-contrib/solidus_volume_pricing/issues
81
- [3]: https://github.com/solidusio-contrib/solidus_volume_pricing/tree/master/config/locales