solidus_volume_pricing 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
)
|