solidus_volume_pricing 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +50 -12
- data/.github/stale.yml +1 -17
- data/.github_changelog_generator +2 -0
- data/.gitignore +6 -2
- data/.rspec +0 -1
- data/.rubocop.yml +4 -1
- data/.rubocop_todo.yml +18 -76
- data/CHANGELOG.md +1 -84
- data/Gemfile +16 -11
- data/OLD_CHANGELOG.md +86 -0
- data/Rakefile +2 -0
- data/app/controllers/spree/admin/volume_price_models_controller.rb +1 -1
- data/app/decorators/models/solidus_volume_pricing/spree/variant_decorator.rb +6 -4
- data/app/models/spree/volume_price.rb +41 -41
- data/app/models/spree/volume_price_model.rb +9 -7
- data/app/overrides/spree/admin/shared/_product_tabs/add_volume_pricing_admin_tab.html.erb.deface +3 -0
- data/app/overrides/spree/admin/variants/edit/add_volume_pricing_field_to_variant.html.erb.deface +3 -0
- data/bin/rails +4 -12
- data/bin/rails-engine +13 -0
- data/bin/rails-sandbox +16 -0
- data/bin/rake +7 -0
- data/bin/sandbox +78 -0
- data/bin/setup +1 -1
- data/db/migrate/20150603143015_create_spree_volume_price_models.rb +1 -0
- data/lib/generators/solidus_volume_pricing/install/install_generator.rb +8 -6
- data/lib/solidus_volume_pricing/engine.rb +2 -1
- data/lib/solidus_volume_pricing/version.rb +1 -1
- data/solidus_volume_pricing.gemspec +38 -40
- data/spec/controllers/spree/admin/variants_controller_spec.rb +1 -1
- data/spec/features/manage_volume_price_models_feature_spec.rb +1 -1
- data/spec/lib/solidus_volume_pricing/range_from_string_spec.rb +2 -2
- data/spec/spec_helper.rb +12 -4
- metadata +25 -14
- data/app/overrides/views_decorator.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4851ed1cbff2d8a6b293bb4e13004c3d029904ac9b77f184d18d25c0165868d9
|
4
|
+
data.tar.gz: 3a8471044299dff716a3d99551dfe353d6aff0b41213288e7e808ec8a7d0f0ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb6a8e0e5e693b25583d7648a42375c6a11ae0afdbd7a6435306ec9cfc159848ce062a0b1f73ca953bbf9ddf48b12266bd95fcdda5e0d3a04a0aca28205c193f
|
7
|
+
data.tar.gz: 30aff993f5ed9e502533377c770d252064e5fd77b503024e5cab0759dc9a445396f0bad14b81da672d2bafdccef67d73d5ab295af9459de470da4e4c53d13d9a
|
data/.circleci/config.yml
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
version: 2.1
|
2
2
|
|
3
3
|
orbs:
|
4
|
+
# Required for feature specs.
|
5
|
+
browser-tools: circleci/browser-tools@1.1
|
6
|
+
|
4
7
|
# Always take the latest version of the orb, this allows us to
|
5
8
|
# run specs against Solidus supported versions only without the need
|
6
9
|
# to change this configuration every time a Solidus version is released
|
@@ -8,28 +11,63 @@ orbs:
|
|
8
11
|
solidusio_extensions: solidusio/extensions@volatile
|
9
12
|
|
10
13
|
jobs:
|
11
|
-
run-specs
|
12
|
-
|
14
|
+
run-specs:
|
15
|
+
parameters:
|
16
|
+
solidus:
|
17
|
+
type: string
|
18
|
+
default: main
|
19
|
+
db:
|
20
|
+
type: string
|
21
|
+
default: "postgres"
|
22
|
+
ruby:
|
23
|
+
type: string
|
24
|
+
default: "3.2"
|
25
|
+
executor:
|
26
|
+
name: solidusio_extensions/<< parameters.db >>
|
27
|
+
ruby_version: << parameters.ruby >>
|
13
28
|
steps:
|
14
|
-
-
|
15
|
-
|
16
|
-
|
29
|
+
- checkout
|
30
|
+
- browser-tools/install-chrome
|
31
|
+
- solidusio_extensions/run-tests-solidus-<< parameters.solidus >>
|
32
|
+
|
33
|
+
lint-code:
|
34
|
+
executor:
|
35
|
+
name: solidusio_extensions/sqlite
|
36
|
+
ruby_version: "3.0"
|
17
37
|
steps:
|
18
|
-
- solidusio_extensions/
|
38
|
+
- solidusio_extensions/lint-code
|
19
39
|
|
20
40
|
workflows:
|
21
41
|
"Run specs on supported Solidus versions":
|
22
42
|
jobs:
|
23
|
-
- run-specs
|
24
|
-
|
25
|
-
|
43
|
+
- run-specs:
|
44
|
+
name: &name "run-specs-solidus-<< matrix.solidus >>-ruby-<< matrix.ruby >>-db-<< matrix.db >>"
|
45
|
+
matrix:
|
46
|
+
parameters: { solidus: ["main"], ruby: ["3.2"], db: ["postgres"] }
|
47
|
+
- run-specs:
|
48
|
+
name: *name
|
49
|
+
matrix:
|
50
|
+
parameters: { solidus: ["current"], ruby: ["3.1"], db: ["mysql"] }
|
51
|
+
- run-specs:
|
52
|
+
name: *name
|
53
|
+
matrix:
|
54
|
+
parameters: { solidus: ["older"], ruby: ["3.0"], db: ["sqlite"] }
|
55
|
+
- lint-code
|
56
|
+
|
57
|
+
"Weekly run specs against main":
|
26
58
|
triggers:
|
27
59
|
- schedule:
|
28
60
|
cron: "0 0 * * 4" # every Thursday
|
29
61
|
filters:
|
30
62
|
branches:
|
31
63
|
only:
|
32
|
-
-
|
64
|
+
- main
|
33
65
|
jobs:
|
34
|
-
- run-specs
|
35
|
-
|
66
|
+
- run-specs:
|
67
|
+
name: *name
|
68
|
+
matrix:
|
69
|
+
parameters: { solidus: ["main"], ruby: ["3.2"], db: ["postgres"] }
|
70
|
+
- run-specs:
|
71
|
+
name: *name
|
72
|
+
matrix:
|
73
|
+
parameters: { solidus: ["current"], ruby: ["3.1"], db: ["mysql"] }
|
data/.github/stale.yml
CHANGED
@@ -1,17 +1 @@
|
|
1
|
-
|
2
|
-
daysUntilStale: 60
|
3
|
-
# Number of days of inactivity before a stale issue is closed
|
4
|
-
daysUntilClose: 7
|
5
|
-
# Issues with these labels will never be considered stale
|
6
|
-
exemptLabels:
|
7
|
-
- pinned
|
8
|
-
- security
|
9
|
-
# Label to use when marking an issue as stale
|
10
|
-
staleLabel: wontfix
|
11
|
-
# Comment to post when marking an issue as stale. Set to `false` to disable
|
12
|
-
markComment: >
|
13
|
-
This issue has been automatically marked as stale because it has not had
|
14
|
-
recent activity. It will be closed if no further activity occurs. Thank you
|
15
|
-
for your contributions.
|
16
|
-
# Comment to post when closing a stale issue. Set to `false` to disable
|
17
|
-
closeComment: false
|
1
|
+
_extends: .github
|
data/.gitignore
CHANGED
data/.rspec
CHANGED
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -1,49 +1,24 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on
|
3
|
+
# on 2023-05-12 15:47:30 UTC using RuboCop version 1.50.2.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
# Offense count:
|
10
|
-
# Configuration parameters:
|
11
|
-
# Include: **/*.gemspec,
|
12
|
-
Gemspec/RequiredRubyVersion:
|
13
|
-
Exclude:
|
14
|
-
- 'solidus_volume_pricing.gemspec'
|
15
|
-
|
16
|
-
# Offense count: 2
|
17
|
-
Lint/InterpolationCheck:
|
18
|
-
Exclude:
|
19
|
-
- 'spec/lib/solidus_volume_pricing/range_from_string_spec.rb'
|
20
|
-
|
21
|
-
# Offense count: 21
|
22
|
-
# Cop supports --auto-correct.
|
23
|
-
# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
24
|
-
# URISchemes: http, https
|
25
|
-
Metrics/LineLength:
|
26
|
-
Max: 160
|
27
|
-
|
28
|
-
# Offense count: 43
|
29
|
-
# Configuration parameters: Prefixes.
|
9
|
+
# Offense count: 42
|
10
|
+
# Configuration parameters: Prefixes, AllowedPatterns.
|
30
11
|
# Prefixes: when, with, without
|
31
12
|
RSpec/ContextWording:
|
32
13
|
Exclude:
|
33
|
-
- 'spec/controllers/spree/admin/variants_controller_spec.rb'
|
34
14
|
- 'spec/helpers/base_helper_spec.rb'
|
35
15
|
- 'spec/models/solidus_volume_pricing/pricer_spec.rb'
|
36
16
|
- 'spec/models/spree/order_spec.rb'
|
37
17
|
- 'spec/models/spree/volume_price_spec.rb'
|
38
18
|
|
39
|
-
# Offense count: 2
|
40
|
-
RSpec/DescribeClass:
|
41
|
-
Exclude:
|
42
|
-
- 'spec/features/manage_volume_price_models_feature_spec.rb'
|
43
|
-
- 'spec/features/manage_volume_prices_feature_spec.rb'
|
44
|
-
|
45
19
|
# Offense count: 1
|
46
|
-
# Configuration parameters: CustomTransform, IgnoreMethods.
|
20
|
+
# Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
|
21
|
+
# Include: **/*_spec*rb*, **/spec/**/*
|
47
22
|
RSpec/FilePath:
|
48
23
|
Exclude:
|
49
24
|
- 'spec/helpers/base_helper_spec.rb'
|
@@ -56,12 +31,17 @@ RSpec/InstanceVariable:
|
|
56
31
|
- 'spec/models/spree/order_spec.rb'
|
57
32
|
|
58
33
|
# Offense count: 5
|
59
|
-
# Configuration parameters: AggregateFailuresByDefault.
|
60
34
|
RSpec/MultipleExpectations:
|
61
35
|
Max: 3
|
62
36
|
|
63
|
-
# Offense count:
|
64
|
-
# Configuration parameters:
|
37
|
+
# Offense count: 82
|
38
|
+
# Configuration parameters: AllowSubject.
|
39
|
+
RSpec/MultipleMemoizedHelpers:
|
40
|
+
Max: 8
|
41
|
+
|
42
|
+
# Offense count: 57
|
43
|
+
# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
|
44
|
+
# SupportedStyles: always, named_only
|
65
45
|
RSpec/NamedSubject:
|
66
46
|
Exclude:
|
67
47
|
- 'spec/lib/solidus_volume_pricing/range_from_string_spec.rb'
|
@@ -70,57 +50,19 @@ RSpec/NamedSubject:
|
|
70
50
|
- 'spec/models/spree/volume_price_spec.rb'
|
71
51
|
|
72
52
|
# Offense count: 74
|
53
|
+
# Configuration parameters: AllowedGroups.
|
73
54
|
RSpec/NestedGroups:
|
74
55
|
Max: 7
|
75
56
|
|
76
|
-
# Offense count:
|
77
|
-
|
78
|
-
# Include: db/migrate/*.rb
|
79
|
-
Rails/CreateTableWithTimestamps:
|
80
|
-
Exclude:
|
81
|
-
- 'db/migrate/20150603143015_create_spree_volume_price_models.rb'
|
82
|
-
|
83
|
-
# Offense count: 1
|
84
|
-
# Configuration parameters: Include.
|
85
|
-
# Include: app/models/**/*.rb
|
86
|
-
Rails/HasManyOrHasOneDependent:
|
57
|
+
# Offense count: 2
|
58
|
+
RSpec/RepeatedExampleGroupDescription:
|
87
59
|
Exclude:
|
88
|
-
- '
|
60
|
+
- 'spec/lib/solidus_volume_pricing/range_from_string_spec.rb'
|
89
61
|
|
90
62
|
# Offense count: 2
|
91
|
-
# Configuration parameters: Include.
|
63
|
+
# Configuration parameters: IgnoreScopes, Include.
|
92
64
|
# Include: app/models/**/*.rb
|
93
65
|
Rails/InverseOf:
|
94
66
|
Exclude:
|
95
67
|
- 'app/models/spree/volume_price.rb'
|
96
68
|
- 'app/models/spree/volume_price_model.rb'
|
97
|
-
|
98
|
-
# Offense count: 1
|
99
|
-
# Configuration parameters: Include.
|
100
|
-
# Include: app/controllers/**/*.rb
|
101
|
-
Rails/LexicallyScopedActionFilter:
|
102
|
-
Exclude:
|
103
|
-
- 'app/controllers/spree/admin/volume_price_models_controller.rb'
|
104
|
-
|
105
|
-
# Offense count: 1
|
106
|
-
# Configuration parameters: Include.
|
107
|
-
# Include: app/**/*.rb, config/**/*.rb, db/**/*.rb, lib/**/*.rb
|
108
|
-
Rails/Output:
|
109
|
-
Exclude:
|
110
|
-
- 'lib/generators/solidus_volume_pricing/install/install_generator.rb'
|
111
|
-
|
112
|
-
# Offense count: 2
|
113
|
-
# Configuration parameters: Blacklist, Whitelist.
|
114
|
-
# Blacklist: decrement!, decrement_counter, increment!, increment_counter, toggle!, touch, update_all, update_attribute, update_column, update_columns, update_counters
|
115
|
-
Rails/SkipsModelValidations:
|
116
|
-
Exclude:
|
117
|
-
- 'spec/models/spree/volume_price_spec.rb'
|
118
|
-
|
119
|
-
# Offense count: 2
|
120
|
-
# Cop supports --auto-correct.
|
121
|
-
# Configuration parameters: AutoCorrect, EnforcedStyle.
|
122
|
-
# SupportedStyles: nested, compact
|
123
|
-
Style/ClassAndModuleChildren:
|
124
|
-
Exclude:
|
125
|
-
- 'app/models/spree/volume_price.rb'
|
126
|
-
- 'app/models/spree/volume_price_model.rb'
|
data/CHANGELOG.md
CHANGED
@@ -1,86 +1,3 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
[Full Changelog](https://github.com/solidusio-contrib/solidus_volume_pricing/compare/v1.0.0...v1.1.0)
|
6
|
-
|
7
|
-
**Closed issues:**
|
8
|
-
|
9
|
-
- Dependabot can't resolve your Ruby dependency files [\#57](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/57)
|
10
|
-
- Prepare Solidus Volume Pricing for Solidus 3.0 [\#53](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/53)
|
11
|
-
- Dependabot can't resolve your Ruby dependency files [\#52](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/52)
|
12
|
-
- Dependabot can't resolve your Ruby dependency files [\#51](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/51)
|
13
|
-
- Role base volume pricing not working [\#47](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/47)
|
14
|
-
- Dependabot couldn't find a Gemfile-local for this project [\#44](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/44)
|
15
|
-
- Dependabot can't resolve your Ruby dependency files [\#42](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/42)
|
16
|
-
- Dependabot can't resolve your Ruby dependency files [\#41](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/41)
|
17
|
-
- Dependabot can't resolve your Ruby dependency files [\#40](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/40)
|
18
|
-
- Dependabot can't resolve your Ruby dependency files [\#39](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/39)
|
19
|
-
- Dependabot can't resolve your Ruby dependency files [\#38](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/38)
|
20
|
-
- Dependabot can't resolve your Ruby dependency files [\#37](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/37)
|
21
|
-
- Dependabot can't resolve your Ruby dependency files [\#36](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/36)
|
22
|
-
- Dependabot can't resolve your Ruby dependency files [\#35](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/35)
|
23
|
-
- Can we get a new release? [\#29](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/29)
|
24
|
-
|
25
|
-
**Merged pull requests:**
|
26
|
-
|
27
|
-
- Update supported ruby version [\#66](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/66) ([mcrisologo](https://github.com/mcrisologo))
|
28
|
-
- Bump version to 1.1.0 [\#65](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/65) ([mcrisologo](https://github.com/mcrisologo))
|
29
|
-
- Update to use forked solidus\_frontend when needed [\#64](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/64) ([waiting-for-dev](https://github.com/waiting-for-dev))
|
30
|
-
- Configure autoloader to ignore decorators [\#61](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/61) ([pelargir](https://github.com/pelargir))
|
31
|
-
- Updating gemspec for Ruby 3 support [\#60](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/60) ([embold-given](https://github.com/embold-given))
|
32
|
-
- Solidus 3 preparation [\#59](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/59) ([cpfergus1](https://github.com/cpfergus1))
|
33
|
-
- Upgrade to GitHub-native Dependabot [\#58](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/58) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
34
|
-
- Relax solidus\_support dependency [\#50](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/50) ([kennyadsl](https://github.com/kennyadsl))
|
35
|
-
- Fix Dependabot looking for Gemfile-local [\#48](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/48) ([aldesantis](https://github.com/aldesantis))
|
36
|
-
- Fix role discounts [\#46](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/46) ([hrdchz](https://github.com/hrdchz))
|
37
|
-
- Rerun dev tools extension update command to improve the structure [\#45](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/45) ([blocknotes](https://github.com/blocknotes))
|
38
|
-
- Upgrade the extension using solidus\_dev\_support [\#43](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/43) ([blocknotes](https://github.com/blocknotes))
|
39
|
-
|
40
|
-
## [v1.0.0](https://github.com/solidusio-contrib/solidus_volume_pricing/tree/v1.0.0) (2019-11-23)
|
41
|
-
|
42
|
-
[Full Changelog](https://github.com/solidusio-contrib/solidus_volume_pricing/compare/v0.2.1...v1.0.0)
|
43
|
-
|
44
|
-
**Implemented enhancements:**
|
45
|
-
|
46
|
-
- Replace `I18n.t` with `t` in views [\#22](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/22)
|
47
|
-
|
48
|
-
**Closed issues:**
|
49
|
-
|
50
|
-
- can we create packs of product by this ? [\#13](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/13)
|
51
|
-
- Rails v 5.0.1 [\#8](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/8)
|
52
|
-
|
53
|
-
**Merged pull requests:**
|
54
|
-
|
55
|
-
- Replace I18n.t with t in views [\#34](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/34) ([aldesantis](https://github.com/aldesantis))
|
56
|
-
- Reformat readme [\#33](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/33) ([aldesantis](https://github.com/aldesantis))
|
57
|
-
- Adopt solidus\_extension\_dev\_tools [\#32](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/32) ([aldesantis](https://github.com/aldesantis))
|
58
|
-
- Switch to sassc/rails [\#30](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/30) ([pelargir](https://github.com/pelargir))
|
59
|
-
- Update pg requirement from ~\> 0.21 to ~\> 1.1 [\#27](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/27) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
60
|
-
- Update coffee-rails requirement from ~\> 4.0 to ~\> 5.0 [\#26](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/26) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
61
|
-
- Adopt CircleCI instead of Travis [\#23](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/23) ([aldesantis](https://github.com/aldesantis))
|
62
|
-
- Solidus 2.4 UI updates [\#21](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/21) ([tvdeyen](https://github.com/tvdeyen))
|
63
|
-
- Test suite maintenance [\#20](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/20) ([aitbw](https://github.com/aitbw))
|
64
|
-
- Remove 2.2 from CI \(EOL\) [\#19](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/19) ([jacobherrington](https://github.com/jacobherrington))
|
65
|
-
- Remove versions past EOL from .travis.yml [\#17](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/17) ([jacobherrington](https://github.com/jacobherrington))
|
66
|
-
- Add Solidus 2.1-2.7 to .travis.yml [\#16](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/16) ([jacobherrington](https://github.com/jacobherrington))
|
67
|
-
- Remove deprecated icon option from button [\#12](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/12) ([pelargir](https://github.com/pelargir))
|
68
|
-
- V2.1 [\#11](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/11) ([seand7565](https://github.com/seand7565))
|
69
|
-
- Role fix [\#9](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/9) ([Senjai](https://github.com/Senjai))
|
70
|
-
- 1.0 fixes [\#7](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/7) ([tvdeyen](https://github.com/tvdeyen))
|
71
|
-
- Add pricers to calculate volume prices [\#4](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/4) ([tvdeyen](https://github.com/tvdeyen))
|
72
|
-
- Remove String monkey patch [\#3](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/3) ([tvdeyen](https://github.com/tvdeyen))
|
73
|
-
- Solidus 1.3 [\#2](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/2) ([tvdeyen](https://github.com/tvdeyen))
|
74
|
-
- Rename to solidus [\#1](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/1) ([tvdeyen](https://github.com/tvdeyen))
|
75
|
-
|
76
|
-
## [v0.2.1](https://github.com/solidusio-contrib/solidus_volume_pricing/tree/v0.2.1) (2017-01-20)
|
77
|
-
|
78
|
-
[Full Changelog](https://github.com/solidusio-contrib/solidus_volume_pricing/compare/v0.1.1...v0.2.1)
|
79
|
-
|
80
|
-
## [v0.1.1](https://github.com/solidusio-contrib/solidus_volume_pricing/tree/v0.1.1) (2017-01-20)
|
81
|
-
|
82
|
-
[Full Changelog](https://github.com/solidusio-contrib/solidus_volume_pricing/compare/9bcf78426749d2d73878c6c7c8eb3bf0e5747ada...v0.1.1)
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
3
|
+
See https://github.com/solidusio-contrib/solidus_volume_pricing/releases or [OLD_CHANGELOG.md](OLD_CHANGELOG.md) for older versions.
|
data/Gemfile
CHANGED
@@ -3,14 +3,11 @@
|
|
3
3
|
source 'https://rubygems.org'
|
4
4
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
5
5
|
|
6
|
-
branch = ENV.fetch('SOLIDUS_BRANCH', '
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
12
|
-
gem 'solidus', github: solidus_git, branch: branch
|
13
|
-
gem 'solidus_frontend', github: solidus_frontend_git, branch: branch
|
6
|
+
branch = ENV.fetch('SOLIDUS_BRANCH', 'main')
|
7
|
+
gem 'solidus', github: 'solidusio/solidus', branch: branch
|
8
|
+
|
9
|
+
# The solidus_frontend gem has been pulled out since v3.2
|
10
|
+
gem 'solidus_frontend'
|
14
11
|
|
15
12
|
# Needed to help Bundler figure out how to resolve dependencies,
|
16
13
|
# otherwise it takes forever to resolve them.
|
@@ -20,7 +17,7 @@ gem 'rails', '>0.a'
|
|
20
17
|
# Provides basic authentication functionality for testing parts of your engine
|
21
18
|
gem 'solidus_auth_devise'
|
22
19
|
|
23
|
-
case ENV
|
20
|
+
case ENV.fetch('DB', nil)
|
24
21
|
when 'mysql'
|
25
22
|
gem 'mysql2'
|
26
23
|
when 'postgresql'
|
@@ -29,8 +26,16 @@ else
|
|
29
26
|
gem 'sqlite3'
|
30
27
|
end
|
31
28
|
|
29
|
+
# While we still support Ruby < 3 we need to workaround a limitation in
|
30
|
+
# the 'async' gem that relies on the latest ruby, since RubyGems doesn't
|
31
|
+
# resolve gems based on the required ruby version.
|
32
|
+
gem 'async', '< 3' if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('3')
|
33
|
+
|
32
34
|
gemspec
|
33
35
|
|
34
36
|
# Use a local Gemfile to include development dependencies that might not be
|
35
|
-
# relevant for the project or for other contributors, e.g
|
36
|
-
|
37
|
+
# relevant for the project or for other contributors, e.g. pry-byebug.
|
38
|
+
#
|
39
|
+
# We use `send` instead of calling `eval_gemfile` to work around an issue with
|
40
|
+
# how Dependabot parses projects: https://github.com/dependabot/dependabot-core/issues/1658.
|
41
|
+
send(:eval_gemfile, 'Gemfile-local') if File.exist? 'Gemfile-local'
|
data/OLD_CHANGELOG.md
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## [v1.1.0](https://github.com/solidusio-contrib/solidus_volume_pricing/tree/v1.1.0) (2023-02-09)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/solidusio-contrib/solidus_volume_pricing/compare/v1.0.0...v1.1.0)
|
6
|
+
|
7
|
+
**Closed issues:**
|
8
|
+
|
9
|
+
- Dependabot can't resolve your Ruby dependency files [\#57](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/57)
|
10
|
+
- Prepare Solidus Volume Pricing for Solidus 3.0 [\#53](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/53)
|
11
|
+
- Dependabot can't resolve your Ruby dependency files [\#52](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/52)
|
12
|
+
- Dependabot can't resolve your Ruby dependency files [\#51](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/51)
|
13
|
+
- Role base volume pricing not working [\#47](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/47)
|
14
|
+
- Dependabot couldn't find a Gemfile-local for this project [\#44](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/44)
|
15
|
+
- Dependabot can't resolve your Ruby dependency files [\#42](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/42)
|
16
|
+
- Dependabot can't resolve your Ruby dependency files [\#41](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/41)
|
17
|
+
- Dependabot can't resolve your Ruby dependency files [\#40](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/40)
|
18
|
+
- Dependabot can't resolve your Ruby dependency files [\#39](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/39)
|
19
|
+
- Dependabot can't resolve your Ruby dependency files [\#38](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/38)
|
20
|
+
- Dependabot can't resolve your Ruby dependency files [\#37](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/37)
|
21
|
+
- Dependabot can't resolve your Ruby dependency files [\#36](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/36)
|
22
|
+
- Dependabot can't resolve your Ruby dependency files [\#35](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/35)
|
23
|
+
- Can we get a new release? [\#29](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/29)
|
24
|
+
|
25
|
+
**Merged pull requests:**
|
26
|
+
|
27
|
+
- Update supported ruby version [\#66](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/66) ([mcrisologo](https://github.com/mcrisologo))
|
28
|
+
- Bump version to 1.1.0 [\#65](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/65) ([mcrisologo](https://github.com/mcrisologo))
|
29
|
+
- Update to use forked solidus\_frontend when needed [\#64](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/64) ([waiting-for-dev](https://github.com/waiting-for-dev))
|
30
|
+
- Configure autoloader to ignore decorators [\#61](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/61) ([pelargir](https://github.com/pelargir))
|
31
|
+
- Updating gemspec for Ruby 3 support [\#60](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/60) ([embold-given](https://github.com/embold-given))
|
32
|
+
- Solidus 3 preparation [\#59](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/59) ([cpfergus1](https://github.com/cpfergus1))
|
33
|
+
- Upgrade to GitHub-native Dependabot [\#58](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/58) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
34
|
+
- Relax solidus\_support dependency [\#50](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/50) ([kennyadsl](https://github.com/kennyadsl))
|
35
|
+
- Fix Dependabot looking for Gemfile-local [\#48](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/48) ([aldesantis](https://github.com/aldesantis))
|
36
|
+
- Fix role discounts [\#46](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/46) ([hrdchz](https://github.com/hrdchz))
|
37
|
+
- Rerun dev tools extension update command to improve the structure [\#45](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/45) ([blocknotes](https://github.com/blocknotes))
|
38
|
+
- Upgrade the extension using solidus\_dev\_support [\#43](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/43) ([blocknotes](https://github.com/blocknotes))
|
39
|
+
|
40
|
+
## [v1.0.0](https://github.com/solidusio-contrib/solidus_volume_pricing/tree/v1.0.0) (2019-11-23)
|
41
|
+
|
42
|
+
[Full Changelog](https://github.com/solidusio-contrib/solidus_volume_pricing/compare/v0.2.1...v1.0.0)
|
43
|
+
|
44
|
+
**Implemented enhancements:**
|
45
|
+
|
46
|
+
- Replace `I18n.t` with `t` in views [\#22](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/22)
|
47
|
+
|
48
|
+
**Closed issues:**
|
49
|
+
|
50
|
+
- can we create packs of product by this ? [\#13](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/13)
|
51
|
+
- Rails v 5.0.1 [\#8](https://github.com/solidusio-contrib/solidus_volume_pricing/issues/8)
|
52
|
+
|
53
|
+
**Merged pull requests:**
|
54
|
+
|
55
|
+
- Replace I18n.t with t in views [\#34](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/34) ([aldesantis](https://github.com/aldesantis))
|
56
|
+
- Reformat readme [\#33](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/33) ([aldesantis](https://github.com/aldesantis))
|
57
|
+
- Adopt solidus\_extension\_dev\_tools [\#32](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/32) ([aldesantis](https://github.com/aldesantis))
|
58
|
+
- Switch to sassc/rails [\#30](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/30) ([pelargir](https://github.com/pelargir))
|
59
|
+
- Update pg requirement from ~\> 0.21 to ~\> 1.1 [\#27](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/27) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
60
|
+
- Update coffee-rails requirement from ~\> 4.0 to ~\> 5.0 [\#26](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/26) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
61
|
+
- Adopt CircleCI instead of Travis [\#23](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/23) ([aldesantis](https://github.com/aldesantis))
|
62
|
+
- Solidus 2.4 UI updates [\#21](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/21) ([tvdeyen](https://github.com/tvdeyen))
|
63
|
+
- Test suite maintenance [\#20](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/20) ([aitbw](https://github.com/aitbw))
|
64
|
+
- Remove 2.2 from CI \(EOL\) [\#19](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/19) ([jacobherrington](https://github.com/jacobherrington))
|
65
|
+
- Remove versions past EOL from .travis.yml [\#17](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/17) ([jacobherrington](https://github.com/jacobherrington))
|
66
|
+
- Add Solidus 2.1-2.7 to .travis.yml [\#16](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/16) ([jacobherrington](https://github.com/jacobherrington))
|
67
|
+
- Remove deprecated icon option from button [\#12](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/12) ([pelargir](https://github.com/pelargir))
|
68
|
+
- V2.1 [\#11](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/11) ([seand7565](https://github.com/seand7565))
|
69
|
+
- Role fix [\#9](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/9) ([Senjai](https://github.com/Senjai))
|
70
|
+
- 1.0 fixes [\#7](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/7) ([tvdeyen](https://github.com/tvdeyen))
|
71
|
+
- Add pricers to calculate volume prices [\#4](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/4) ([tvdeyen](https://github.com/tvdeyen))
|
72
|
+
- Remove String monkey patch [\#3](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/3) ([tvdeyen](https://github.com/tvdeyen))
|
73
|
+
- Solidus 1.3 [\#2](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/2) ([tvdeyen](https://github.com/tvdeyen))
|
74
|
+
- Rename to solidus [\#1](https://github.com/solidusio-contrib/solidus_volume_pricing/pull/1) ([tvdeyen](https://github.com/tvdeyen))
|
75
|
+
|
76
|
+
## [v0.2.1](https://github.com/solidusio-contrib/solidus_volume_pricing/tree/v0.2.1) (2017-01-20)
|
77
|
+
|
78
|
+
[Full Changelog](https://github.com/solidusio-contrib/solidus_volume_pricing/compare/v0.1.1...v0.2.1)
|
79
|
+
|
80
|
+
## [v0.1.1](https://github.com/solidusio-contrib/solidus_volume_pricing/tree/v0.1.1) (2017-01-20)
|
81
|
+
|
82
|
+
[Full Changelog](https://github.com/solidusio-contrib/solidus_volume_pricing/compare/9bcf78426749d2d73878c6c7c8eb3bf0e5747ada...v0.1.1)
|
83
|
+
|
84
|
+
|
85
|
+
|
86
|
+
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
data/Rakefile
CHANGED
@@ -7,11 +7,13 @@ module SolidusVolumePricing
|
|
7
7
|
base.class_eval do
|
8
8
|
has_and_belongs_to_many :volume_price_models
|
9
9
|
has_many :volume_prices, -> { order(position: :asc) }, dependent: :destroy
|
10
|
-
has_many :model_volume_prices, -> {
|
10
|
+
has_many :model_volume_prices, -> {
|
11
|
+
order(position: :asc)
|
12
|
+
}, class_name: '::Spree::VolumePrice', through: :volume_price_models, source: :volume_prices
|
11
13
|
accepts_nested_attributes_for :volume_prices, allow_destroy: true,
|
12
|
-
|
13
|
-
|
14
|
-
|
14
|
+
reject_if: proc { |volume_price|
|
15
|
+
volume_price[:amount].blank? && volume_price[:range].blank?
|
16
|
+
}
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
@@ -1,52 +1,52 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
user
|
3
|
+
module Spree
|
4
|
+
class VolumePrice < ApplicationRecord
|
5
|
+
belongs_to :variant, touch: true, optional: true
|
6
|
+
belongs_to :volume_price_model, touch: true, optional: true
|
7
|
+
belongs_to :spree_role, class_name: 'Spree::Role', foreign_key: 'role_id', optional: true
|
8
|
+
acts_as_list scope: [:variant_id, :volume_price_model_id]
|
9
|
+
|
10
|
+
validates :amount, presence: true
|
11
|
+
validates :discount_type,
|
12
|
+
presence: true,
|
13
|
+
inclusion: {
|
14
|
+
in: %w(price dollar percent)
|
15
|
+
}
|
16
|
+
|
17
|
+
validate :range_format
|
18
|
+
|
19
|
+
def self.for_variant(variant, user: nil)
|
20
|
+
roles = [nil]
|
21
|
+
user&.spree_roles&.each { |r| roles << r.id }
|
22
|
+
|
23
|
+
where(
|
24
|
+
arel_table[:variant_id].eq(variant.id).
|
25
|
+
or(
|
26
|
+
arel_table[:volume_price_model_id].in(variant.volume_price_model_ids)
|
27
|
+
)
|
28
|
+
).
|
29
|
+
where(role_id: roles).
|
30
|
+
order(position: :asc, amount: :asc)
|
22
31
|
end
|
23
32
|
|
24
|
-
|
25
|
-
arel_table[:variant_id].eq(variant.id).
|
26
|
-
or(
|
27
|
-
arel_table[:volume_price_model_id].in(variant.volume_price_model_ids)
|
28
|
-
)
|
29
|
-
).
|
30
|
-
where(role_id: roles).
|
31
|
-
order(position: :asc, amount: :asc)
|
32
|
-
end
|
33
|
-
|
34
|
-
delegate :include?, to: :range_from_string
|
33
|
+
delegate :include?, to: :range_from_string
|
35
34
|
|
36
|
-
|
37
|
-
|
38
|
-
|
35
|
+
def display_range
|
36
|
+
range.gsub(/\.+/, "-").gsub(/\(|\)/, '')
|
37
|
+
end
|
39
38
|
|
40
|
-
|
39
|
+
private
|
41
40
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
41
|
+
def range_format
|
42
|
+
if !(SolidusVolumePricing::RangeFromString::RANGE_FORMAT =~ range ||
|
43
|
+
SolidusVolumePricing::RangeFromString::OPEN_ENDED =~ range)
|
44
|
+
errors.add(:range, :must_be_in_format)
|
45
|
+
end
|
46
46
|
end
|
47
|
-
end
|
48
47
|
|
49
|
-
|
50
|
-
|
48
|
+
def range_from_string
|
49
|
+
SolidusVolumePricing::RangeFromString.new(range).to_range
|
50
|
+
end
|
51
51
|
end
|
52
52
|
end
|
@@ -1,10 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
module Spree
|
4
|
+
class VolumePriceModel < ApplicationRecord
|
5
|
+
has_many :variants, dependent: :nullify
|
6
|
+
has_many :volume_prices, -> { order(position: :asc) }, dependent: :destroy
|
7
|
+
accepts_nested_attributes_for :volume_prices, allow_destroy: true,
|
8
|
+
reject_if: proc { |volume_price|
|
9
|
+
volume_price[:amount].blank? && volume_price[:range].blank?
|
10
|
+
}
|
11
|
+
end
|
10
12
|
end
|
data/bin/rails
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
unless File.exist? "#{app_root}/bin/rails"
|
8
|
-
system "bin/rake", app_root or begin # rubocop:disable Style/AndOr
|
9
|
-
warn "Automatic creation of the dummy app failed"
|
10
|
-
exit 1
|
11
|
-
end
|
3
|
+
if %w[g generate].include? ARGV.first
|
4
|
+
exec "#{__dir__}/rails-engine", *ARGV
|
5
|
+
else
|
6
|
+
exec "#{__dir__}/rails-sandbox", *ARGV
|
12
7
|
end
|
13
|
-
|
14
|
-
Dir.chdir app_root
|
15
|
-
exec 'bin/rails', *ARGV
|
data/bin/rails-engine
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# This command will automatically be run when you run "rails" with Rails gems
|
3
|
+
# installed from the root of your application.
|
4
|
+
|
5
|
+
ENGINE_ROOT = File.expand_path('..', __dir__)
|
6
|
+
ENGINE_PATH = File.expand_path('../lib/solidus_volume_pricing/engine', __dir__)
|
7
|
+
|
8
|
+
# Set up gems listed in the Gemfile.
|
9
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
|
10
|
+
require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
|
11
|
+
|
12
|
+
require 'rails/all'
|
13
|
+
require 'rails/engine/commands'
|
data/bin/rails-sandbox
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
app_root = 'sandbox'
|
4
|
+
|
5
|
+
unless File.exist? "#{app_root}/bin/rails"
|
6
|
+
warn 'Creating the sandbox app...'
|
7
|
+
Dir.chdir "#{__dir__}/.." do
|
8
|
+
system "#{__dir__}/sandbox" or begin
|
9
|
+
warn 'Automatic creation of the sandbox app failed'
|
10
|
+
exit 1
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
Dir.chdir app_root
|
16
|
+
exec 'bin/rails', *ARGV
|
data/bin/rake
ADDED
data/bin/sandbox
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
test -z "${DEBUG+empty_string}" || set -x
|
5
|
+
|
6
|
+
test "$DB" = "sqlite" && export DB="sqlite3"
|
7
|
+
|
8
|
+
if [ -z "$SOLIDUS_BRANCH" ]
|
9
|
+
then
|
10
|
+
echo "~~> Use 'export SOLIDUS_BRANCH=[master|v3.2|...]' to control the Solidus branch"
|
11
|
+
SOLIDUS_BRANCH="master"
|
12
|
+
fi
|
13
|
+
echo "~~> Using branch $SOLIDUS_BRANCH of solidus"
|
14
|
+
|
15
|
+
if [ -z "$SOLIDUS_FRONTEND" ]
|
16
|
+
then
|
17
|
+
echo "~~> Use 'export SOLIDUS_FRONTEND=[solidus_frontend|solidus_starter_frontend]' to control the Solidus frontend"
|
18
|
+
SOLIDUS_FRONTEND="solidus_frontend"
|
19
|
+
fi
|
20
|
+
echo "~~> Using branch $SOLIDUS_FRONTEND as the solidus frontend"
|
21
|
+
|
22
|
+
extension_name="solidus_volume_pricing"
|
23
|
+
|
24
|
+
# Stay away from the bundler env of the containing extension.
|
25
|
+
function unbundled {
|
26
|
+
ruby -rbundler -e'b = proc {system *ARGV}; Bundler.respond_to?(:with_unbundled_env) ? Bundler.with_unbundled_env(&b) : Bundler.with_clean_env(&b)' -- $@
|
27
|
+
}
|
28
|
+
|
29
|
+
rm -rf ./sandbox
|
30
|
+
unbundled bundle exec rails new sandbox \
|
31
|
+
--database="${DB:-sqlite3}" \
|
32
|
+
--skip-bundle \
|
33
|
+
--skip-git \
|
34
|
+
--skip-keeps \
|
35
|
+
--skip-rc \
|
36
|
+
--skip-spring \
|
37
|
+
--skip-test \
|
38
|
+
--skip-javascript
|
39
|
+
|
40
|
+
if [ ! -d "sandbox" ]; then
|
41
|
+
echo 'sandbox rails application failed'
|
42
|
+
exit 1
|
43
|
+
fi
|
44
|
+
|
45
|
+
cd ./sandbox
|
46
|
+
cat <<RUBY >> Gemfile
|
47
|
+
gem 'solidus', github: 'solidusio/solidus', branch: '$SOLIDUS_BRANCH'
|
48
|
+
gem 'rails-i18n'
|
49
|
+
gem 'solidus_i18n'
|
50
|
+
|
51
|
+
gem '$extension_name', path: '..'
|
52
|
+
|
53
|
+
group :test, :development do
|
54
|
+
platforms :mri do
|
55
|
+
gem 'pry-byebug'
|
56
|
+
end
|
57
|
+
end
|
58
|
+
RUBY
|
59
|
+
|
60
|
+
unbundled bundle install --gemfile Gemfile
|
61
|
+
|
62
|
+
unbundled bundle exec rake db:drop db:create
|
63
|
+
|
64
|
+
unbundled bundle exec rails generate solidus:install \
|
65
|
+
--auto-accept \
|
66
|
+
--user_class=Spree::User \
|
67
|
+
--enforce_available_locales=true \
|
68
|
+
--with-authentication=true \
|
69
|
+
--payment-method=none \
|
70
|
+
--frontend=${SOLIDUS_FRONTEND} \
|
71
|
+
$@
|
72
|
+
|
73
|
+
unbundled bundle exec rails generate solidus:auth:install --auto-run-migrations
|
74
|
+
unbundled bundle exec rails generate ${extension_name}:install --auto-run-migrations
|
75
|
+
|
76
|
+
echo
|
77
|
+
echo "🚀 Sandbox app successfully created for $extension_name!"
|
78
|
+
echo "🧪 This app is intended for test purposes."
|
data/bin/setup
CHANGED
@@ -10,6 +10,7 @@ class CreateSpreeVolumePriceModels < ActiveRecord::Migration[4.2]
|
|
10
10
|
create_table :spree_variants_volume_price_models do |t|
|
11
11
|
t.belongs_to :volume_price_model
|
12
12
|
t.belongs_to :variant
|
13
|
+
t.timestamps
|
13
14
|
end
|
14
15
|
|
15
16
|
add_reference :spree_volume_prices, :volume_price_model
|
@@ -5,18 +5,20 @@ module SolidusVolumePricing
|
|
5
5
|
class InstallGenerator < Rails::Generators::Base
|
6
6
|
class_option :auto_run_migrations, type: :boolean, default: false
|
7
7
|
|
8
|
+
def self.exit_on_failure?
|
9
|
+
true
|
10
|
+
end
|
11
|
+
|
8
12
|
def add_migrations
|
9
|
-
run '
|
13
|
+
run 'bin/rails railties:install:migrations FROM=solidus_volume_pricing'
|
10
14
|
end
|
11
15
|
|
12
16
|
def run_migrations
|
13
|
-
run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(
|
14
|
-
ask('Would you like to run the migrations now? [Y/n]')
|
15
|
-
)
|
17
|
+
run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]')) # rubocop:disable Layout/LineLength
|
16
18
|
if run_migrations
|
17
|
-
run '
|
19
|
+
run 'bin/rails db:migrate'
|
18
20
|
else
|
19
|
-
puts 'Skipping
|
21
|
+
puts 'Skipping bin/rails db:migrate, don\'t forget to run it!' # rubocop:disable Rails/Output
|
20
22
|
end
|
21
23
|
end
|
22
24
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'spree/core'
|
4
|
+
require 'solidus_support'
|
4
5
|
|
5
6
|
module SolidusVolumePricing
|
6
7
|
class Engine < Rails::Engine
|
@@ -17,7 +18,7 @@ module SolidusVolumePricing
|
|
17
18
|
end
|
18
19
|
|
19
20
|
def self.activate
|
20
|
-
Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
|
21
|
+
Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')).sort.each do |c|
|
21
22
|
Rails.configuration.cache_classes ? require(c) : load(c)
|
22
23
|
Rails.autoloaders.main.ignore(c) if Rails.autoloaders.zeitwerk_enabled?
|
23
24
|
end
|
@@ -1,43 +1,41 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
s.add_development_dependency 'shoulda-matchers'
|
42
|
-
s.add_development_dependency 'solidus_dev_support'
|
3
|
+
require_relative 'lib/solidus_volume_pricing/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'solidus_volume_pricing'
|
7
|
+
spec.version = SolidusVolumePricing::VERSION
|
8
|
+
spec.authors = ['Sean Schofield']
|
9
|
+
spec.email = 'sean@railsdog.com'
|
10
|
+
|
11
|
+
spec.summary = 'Allow prices to be configured in quantity ranges for each variant'
|
12
|
+
spec.description = 'Allow prices to be configured in quantity ranges for each variant'
|
13
|
+
spec.homepage = 'https://github.com/solidusio-contrib/solidus_volume_pricing'
|
14
|
+
spec.license = 'BSD-3-Clause'
|
15
|
+
|
16
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
17
|
+
spec.metadata['source_code_uri'] = 'https://github.com/solidusio-contrib/solidus_volume_pricing'
|
18
|
+
spec.metadata['changelog_uri'] = 'https://github.com/solidusio-contrib/solidus_volume_pricing/releases'
|
19
|
+
|
20
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.5', '< 4')
|
21
|
+
|
22
|
+
# Specify which files should be added to the gem when it is released.
|
23
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
24
|
+
files = Dir.chdir(__dir__) { `git ls-files -z`.split("\x0") }
|
25
|
+
|
26
|
+
spec.files = files.grep_v(%r{^(test|spec|features)/})
|
27
|
+
spec.test_files = files.grep(%r{^(test|spec|features)/})
|
28
|
+
spec.bindir = "exe"
|
29
|
+
spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) }
|
30
|
+
spec.require_paths = ["lib"]
|
31
|
+
|
32
|
+
spec.add_runtime_dependency 'solidus_backend', ['>= 2.4.0', '< 5']
|
33
|
+
spec.add_dependency 'coffee-rails'
|
34
|
+
spec.add_dependency 'deface'
|
35
|
+
spec.add_dependency 'sassc-rails'
|
36
|
+
spec.add_dependency 'solidus_core', ['>= 2.0.0', '< 5']
|
37
|
+
spec.add_dependency 'solidus_support', '~> 0.8'
|
38
|
+
|
39
|
+
spec.add_development_dependency 'shoulda-matchers'
|
40
|
+
spec.add_development_dependency 'solidus_dev_support', '~> 2.6'
|
43
41
|
end
|
@@ -30,13 +30,13 @@ RSpec.describe SolidusVolumePricing::RangeFromString do
|
|
30
30
|
it { is_expected.to eq(1...2) }
|
31
31
|
end
|
32
32
|
|
33
|
-
context 'with an open-ended string like
|
33
|
+
context 'with an open-ended string like x+' do
|
34
34
|
let(:argument) { '10+' }
|
35
35
|
|
36
36
|
it { is_expected.to eq(10..Float::INFINITY) }
|
37
37
|
end
|
38
38
|
|
39
|
-
context 'with an open-ended string like
|
39
|
+
context 'with an open-ended string like x+" and parens' do
|
40
40
|
let(:argument) { '(10+)' }
|
41
41
|
|
42
42
|
it { is_expected.to eq(10..Float::INFINITY) }
|
data/spec/spec_helper.rb
CHANGED
@@ -1,24 +1,32 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# Configure Rails Environment
|
4
|
-
ENV['RAILS_ENV']
|
4
|
+
ENV['RAILS_ENV'] = 'test'
|
5
5
|
|
6
6
|
# Run Coverage report
|
7
7
|
require 'solidus_dev_support/rspec/coverage'
|
8
8
|
|
9
|
-
|
9
|
+
# Create the dummy app if it's still missing.
|
10
|
+
dummy_env = "#{__dir__}/dummy/config/environment.rb"
|
11
|
+
system 'bin/rake extension:test_app' unless File.exist? dummy_env
|
12
|
+
require dummy_env
|
10
13
|
|
11
14
|
# Requires factories and other useful helpers defined in spree_core.
|
12
15
|
require 'solidus_dev_support/rspec/feature_helper'
|
13
16
|
|
14
17
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
15
18
|
# in spec/support/ and its subdirectories.
|
16
|
-
Dir[
|
19
|
+
Dir["#{__dir__}/support/**/*.rb"].sort.each { |f| require f }
|
17
20
|
|
18
|
-
# Requires factories defined in
|
21
|
+
# Requires factories defined in Solidus core and this extension.
|
22
|
+
# See: lib/solidus_volume_pricing/testing_support/factories.rb
|
19
23
|
SolidusDevSupport::TestingSupport::Factories.load_for(SolidusVolumePricing::Engine)
|
20
24
|
|
21
25
|
RSpec.configure do |config|
|
22
26
|
config.infer_spec_type_from_file_location!
|
23
27
|
config.use_transactional_fixtures = false
|
28
|
+
|
29
|
+
if Spree.solidus_gem_version < Gem::Version.new('2.11')
|
30
|
+
config.extend Spree::TestingSupport::AuthorizationHelpers::Request, type: :system
|
31
|
+
end
|
24
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_volume_pricing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Schofield
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus_backend
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: 2.4.0
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '5'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: 2.4.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '5'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: coffee-rails
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,20 +78,20 @@ dependencies:
|
|
78
78
|
requirements:
|
79
79
|
- - ">="
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: 2.
|
81
|
+
version: 2.0.0
|
82
82
|
- - "<"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: '
|
84
|
+
version: '5'
|
85
85
|
type: :runtime
|
86
86
|
prerelease: false
|
87
87
|
version_requirements: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - ">="
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: 2.
|
91
|
+
version: 2.0.0
|
92
92
|
- - "<"
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
94
|
+
version: '5'
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: solidus_support
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -124,16 +124,16 @@ dependencies:
|
|
124
124
|
name: solidus_dev_support
|
125
125
|
requirement: !ruby/object:Gem::Requirement
|
126
126
|
requirements:
|
127
|
-
- - "
|
127
|
+
- - "~>"
|
128
128
|
- !ruby/object:Gem::Version
|
129
|
-
version: '
|
129
|
+
version: '2.6'
|
130
130
|
type: :development
|
131
131
|
prerelease: false
|
132
132
|
version_requirements: !ruby/object:Gem::Requirement
|
133
133
|
requirements:
|
134
|
-
- - "
|
134
|
+
- - "~>"
|
135
135
|
- !ruby/object:Gem::Version
|
136
|
-
version: '
|
136
|
+
version: '2.6'
|
137
137
|
description: Allow prices to be configured in quantity ranges for each variant
|
138
138
|
email: sean@railsdog.com
|
139
139
|
executables: []
|
@@ -144,6 +144,7 @@ files:
|
|
144
144
|
- ".gem_release.yml"
|
145
145
|
- ".github/dependabot.yml"
|
146
146
|
- ".github/stale.yml"
|
147
|
+
- ".github_changelog_generator"
|
147
148
|
- ".gitignore"
|
148
149
|
- ".rspec"
|
149
150
|
- ".rubocop.yml"
|
@@ -152,6 +153,7 @@ files:
|
|
152
153
|
- Gemfile
|
153
154
|
- Guardfile
|
154
155
|
- LICENSE
|
156
|
+
- OLD_CHANGELOG.md
|
155
157
|
- README.md
|
156
158
|
- Rakefile
|
157
159
|
- app/assets/javascripts/spree/backend/solidus_volume_pricing.js
|
@@ -166,8 +168,9 @@ files:
|
|
166
168
|
- app/models/solidus_volume_pricing/pricing_options.rb
|
167
169
|
- app/models/spree/volume_price.rb
|
168
170
|
- app/models/spree/volume_price_model.rb
|
171
|
+
- app/overrides/spree/admin/shared/_product_tabs/add_volume_pricing_admin_tab.html.erb.deface
|
169
172
|
- app/overrides/spree/admin/shared/_settings_sub_menu/add_volume_price_model_admin_menu_links.html.erb.deface
|
170
|
-
- app/overrides/
|
173
|
+
- app/overrides/spree/admin/variants/edit/add_volume_pricing_field_to_variant.html.erb.deface
|
171
174
|
- app/views/spree/admin/shared/_vp_product_tab.html.erb
|
172
175
|
- app/views/spree/admin/variants/_edit_fields.html.erb
|
173
176
|
- app/views/spree/admin/variants/volume_prices.html.erb
|
@@ -182,6 +185,10 @@ files:
|
|
182
185
|
- app/views/spree/products/_volume_pricing.html.erb
|
183
186
|
- bin/console
|
184
187
|
- bin/rails
|
188
|
+
- bin/rails-engine
|
189
|
+
- bin/rails-sandbox
|
190
|
+
- bin/rake
|
191
|
+
- bin/sandbox
|
185
192
|
- bin/setup
|
186
193
|
- config/locales/de.yml
|
187
194
|
- config/locales/en.yml
|
@@ -222,6 +229,7 @@ licenses:
|
|
222
229
|
metadata:
|
223
230
|
homepage_uri: https://github.com/solidusio-contrib/solidus_volume_pricing
|
224
231
|
source_code_uri: https://github.com/solidusio-contrib/solidus_volume_pricing
|
232
|
+
changelog_uri: https://github.com/solidusio-contrib/solidus_volume_pricing/releases
|
225
233
|
post_install_message:
|
226
234
|
rdoc_options: []
|
227
235
|
require_paths:
|
@@ -231,13 +239,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
231
239
|
- - ">="
|
232
240
|
- !ruby/object:Gem::Version
|
233
241
|
version: '2.5'
|
242
|
+
- - "<"
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: '4'
|
234
245
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
235
246
|
requirements:
|
236
247
|
- - ">="
|
237
248
|
- !ruby/object:Gem::Version
|
238
249
|
version: '0'
|
239
250
|
requirements: []
|
240
|
-
rubygems_version: 3.
|
251
|
+
rubygems_version: 3.2.33
|
241
252
|
signing_key:
|
242
253
|
specification_version: 4
|
243
254
|
summary: Allow prices to be configured in quantity ranges for each variant
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
Deface::Override.new(
|
4
|
-
virtual_path: 'spree/admin/shared/_product_tabs',
|
5
|
-
name: 'add_volume_pricing_admin_tab',
|
6
|
-
insert_bottom: '[data-hook="admin_product_tabs"]',
|
7
|
-
partial: 'spree/admin/shared/vp_product_tab'
|
8
|
-
)
|
9
|
-
|
10
|
-
Deface::Override.new(
|
11
|
-
virtual_path: 'spree/admin/variants/edit',
|
12
|
-
name: 'add_volume_pricing_field_to_variant',
|
13
|
-
insert_after: '[data-hook="admin_variant_edit_form"]',
|
14
|
-
partial: 'spree/admin/variants/edit_fields'
|
15
|
-
)
|