solidus_configurable_kits 0.1.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.
Files changed (87) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +41 -0
  3. data/.gem_release.yml +5 -0
  4. data/.github/stale.yml +17 -0
  5. data/.github_changelog_generator +2 -0
  6. data/.gitignore +21 -0
  7. data/.rspec +2 -0
  8. data/.rubocop.yml +5 -0
  9. data/CHANGELOG.md +5 -0
  10. data/Gemfile +37 -0
  11. data/LICENSE +674 -0
  12. data/README.md +91 -0
  13. data/Rakefile +6 -0
  14. data/app/assets/javascripts/solidus_configurable_kits/templates/cart/kit_row.hbs +58 -0
  15. data/app/assets/javascripts/solidus_configurable_kits/views/cart/kit_row.js +105 -0
  16. data/app/assets/javascripts/spree/backend/solidus_configurable_kits.js +2 -0
  17. data/app/assets/javascripts/spree/backend/views/cart/line_item_row.js +135 -0
  18. data/app/assets/javascripts/spree/backend/views/cart/line_item_table.js +27 -0
  19. data/app/assets/javascripts/spree/frontend/solidus_configurable_kits.js +44 -0
  20. data/app/assets/stylesheets/spree/backend/solidus_configurable_kits.css +4 -0
  21. data/app/assets/stylesheets/spree/frontend/solidus_configurable_kits.css +4 -0
  22. data/app/controllers/solidus_configurable_kits/admin/kit_requirements_controller.rb +33 -0
  23. data/app/controllers/solidus_configurable_kits/orders_controller.rb +53 -0
  24. data/app/decorators/controllers/solidus_configurable_kits/spree/api/line_items_controller_decorator.rb +39 -0
  25. data/app/decorators/controllers/solidus_configurable_kits/spree/api/variants_controller_decorator.rb +23 -0
  26. data/app/decorators/models/solidus_configurable_kits/spree/line_item_decorator.rb +102 -0
  27. data/app/decorators/models/solidus_configurable_kits/spree/order_decorator.rb +19 -0
  28. data/app/decorators/models/solidus_configurable_kits/spree/product_decorator.rb +31 -0
  29. data/app/decorators/models/solidus_configurable_kits/spree/shipment_decorator.rb +13 -0
  30. data/app/decorators/models/solidus_configurable_kits/spree/variant_decorator.rb +49 -0
  31. data/app/helpers/solidus_configurable_kits/kit_pricing_helper.rb +9 -0
  32. data/app/models/solidus_configurable_kits/requirement.rb +18 -0
  33. data/app/models/solidus_configurable_kits/shipping_manifest.rb +16 -0
  34. data/app/overrides/add_kit_item_to_price_tables.rb +41 -0
  35. data/app/overrides/add_product_tab.rb +7 -0
  36. data/app/overrides/change_line_items.rb +9 -0
  37. data/app/overrides/kit_manifest_on_delivery_page.rb +9 -0
  38. data/app/overrides/replace_cart_form.rb +9 -0
  39. data/app/services/solidus_configurable_kits/price_selector.rb +34 -0
  40. data/app/services/solidus_configurable_kits/pricing_options.rb +42 -0
  41. data/app/views/solidus_configurable_kits/admin/kit_requirements/_form.html.erb +31 -0
  42. data/app/views/solidus_configurable_kits/admin/kit_requirements/_table.html.erb +31 -0
  43. data/app/views/solidus_configurable_kits/admin/kit_requirements/edit.html.erb +14 -0
  44. data/app/views/solidus_configurable_kits/admin/kit_requirements/index.html.erb +19 -0
  45. data/app/views/solidus_configurable_kits/admin/kit_requirements/new.html.erb +11 -0
  46. data/app/views/solidus_configurable_kits/admin/shared/_prices_form_addition.html.erb +8 -0
  47. data/app/views/solidus_configurable_kits/admin/shared/_prices_table_header_addition.html.erb +1 -0
  48. data/app/views/solidus_configurable_kits/admin/shared/_prices_table_row_addition.html.erb +1 -0
  49. data/app/views/solidus_configurable_kits/shared/_configurable_kits_product_tab.html.erb +3 -0
  50. data/app/views/solidus_configurable_kits/shared/_kit_cart_form.html.erb +5 -0
  51. data/app/views/solidus_configurable_kits/shared/_kit_manifest_item_price.html.erb +1 -0
  52. data/app/views/solidus_configurable_kits/shared/_line_item_override.html.erb +7 -0
  53. data/app/views/spree/api/line_items/_line_item.json.jbuilder +26 -0
  54. data/app/views/spree/api/variants/_big.json.jbuilder +19 -0
  55. data/app/views/spree/api/variants/_small.json.jbuilder +22 -0
  56. data/app/views/spree/orders/_kit_line_item.html.erb +66 -0
  57. data/app/views/spree/products/_kit_form.html.erb +101 -0
  58. data/bin/console +17 -0
  59. data/bin/rails +7 -0
  60. data/bin/rails-engine +13 -0
  61. data/bin/rails-sandbox +16 -0
  62. data/bin/rake +7 -0
  63. data/bin/sandbox +86 -0
  64. data/bin/setup +8 -0
  65. data/config/locales/en.yml +45 -0
  66. data/config/routes.rb +13 -0
  67. data/db/migrate/20210417204426_create_solidus_configurable_kits_requirements.rb +15 -0
  68. data/db/migrate/20210505093839_add_kit_item_id_to_spree_line_items.rb +6 -0
  69. data/db/migrate/20210506145818_add_kit_item_to_spree_prices.rb +5 -0
  70. data/db/migrate/20210510133318_remove_quantity_from_solidus_configurable_kits_requirements.rb +5 -0
  71. data/db/migrate/20210510141953_add_requirement_id_to_spree_line_items.rb +8 -0
  72. data/db/migrate/20210510154604_rename_spree_line_items_kit_item_id_to_kit_id.rb +5 -0
  73. data/db/migrate/20210929063101_add_optional_to_solidus_configurable_kits_requirements.rb +7 -0
  74. data/lib/generators/solidus_configurable_kits/install/install_generator.rb +73 -0
  75. data/lib/generators/solidus_configurable_kits/install/templates/initializer.rb +6 -0
  76. data/lib/solidus_configurable_kits/configuration.rb +21 -0
  77. data/lib/solidus_configurable_kits/engine.rb +27 -0
  78. data/lib/solidus_configurable_kits/testing_support/factories.rb +12 -0
  79. data/lib/solidus_configurable_kits/version.rb +5 -0
  80. data/lib/solidus_configurable_kits.rb +5 -0
  81. data/solidus_configurable_kits.gemspec +37 -0
  82. data/spec/models/solidus_configurable_kits/requirement_spec.rb +36 -0
  83. data/spec/models/spree/line_item_spec.rb +89 -0
  84. data/spec/models/spree/product_spec.rb +9 -0
  85. data/spec/requests/solidus_configurable_kits/solidus_configurable_kits/admin/requirements_request_spec.rb +14 -0
  86. data/spec/spec_helper.rb +38 -0
  87. metadata +217 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f9baf70045244dcef3c950b5e60e5ef5b74382672e838ab43c92684d0840468e
4
+ data.tar.gz: bf55efa24e492e8587d3f14435444ec81fa6c1b0b6722de43bf4d394d28a2661
5
+ SHA512:
6
+ metadata.gz: be54eba183cbc5f0a24f0992096b08519aba2d7b79a73273fad1a8de65476e8205ac224a04907067379f8b749a404b0254176a86787a969b948796a4151a0719
7
+ data.tar.gz: a5fd96b5051c60c9756848003fb199318185c3c5ed7fac107e000fd152631ac775a243f48d55f711eebafa1f61135e70f0be811a72dda183b04d9acd1eb2e65c
@@ -0,0 +1,41 @@
1
+ version: 2.1
2
+
3
+ orbs:
4
+ # Always take the latest version of the orb, this allows us to
5
+ # run specs against Solidus supported versions only without the need
6
+ # to change this configuration every time a Solidus version is released
7
+ # or goes EOL.
8
+ solidusio_extensions: solidusio/extensions@volatile
9
+
10
+ jobs:
11
+ run-specs-with-postgres:
12
+ executor: solidusio_extensions/postgres
13
+ steps:
14
+ - solidusio_extensions/run-tests
15
+ run-specs-with-mysql:
16
+ executor: solidusio_extensions/mysql
17
+ steps:
18
+ - solidusio_extensions/run-tests
19
+ lint-code:
20
+ executor: solidusio_extensions/sqlite-memory
21
+ steps:
22
+ - solidusio_extensions/lint-code
23
+
24
+ workflows:
25
+ "Run specs on supported Solidus versions":
26
+ jobs:
27
+ - run-specs-with-postgres
28
+ - run-specs-with-mysql
29
+ - lint-code
30
+
31
+ "Weekly run specs against master":
32
+ triggers:
33
+ - schedule:
34
+ cron: "0 0 * * 4" # every Thursday
35
+ filters:
36
+ branches:
37
+ only:
38
+ - master
39
+ jobs:
40
+ - run-specs-with-postgres
41
+ - run-specs-with-mysql
data/.gem_release.yml ADDED
@@ -0,0 +1,5 @@
1
+ bump:
2
+ recurse: false
3
+ file: 'lib/solidus_configurable_kits/version.rb'
4
+ message: Bump SolidusConfigurableKits to %{version}
5
+ tag: true
data/.github/stale.yml ADDED
@@ -0,0 +1,17 @@
1
+ # Number of days of inactivity before an issue becomes stale
2
+ daysUntilStale: 60
3
+ # Number of days of inactivity before a stale issue is closed
4
+ daysUntilClose: false
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: stale
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 might 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
@@ -0,0 +1,2 @@
1
+ issues=false
2
+ exclude-labels=infrastructure
data/.gitignore ADDED
@@ -0,0 +1,21 @@
1
+ *.gem
2
+ \#*
3
+ *~
4
+ .#*
5
+ .DS_Store
6
+ .idea
7
+ .project
8
+ .sass-cache
9
+ coverage
10
+ Gemfile.lock
11
+ tmp
12
+ nbproject
13
+ pkg
14
+ *.swp
15
+ spec/dummy
16
+ spec/examples.txt
17
+ /sandbox
18
+ .rvmrc
19
+ .ruby-version
20
+ .ruby-gemset
21
+ .bundle
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,5 @@
1
+ require:
2
+ - solidus_dev_support/rubocop
3
+
4
+ AllCops:
5
+ NewCops: disable
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ # Changelog
2
+
3
+ # 0.0.2
4
+
5
+ Allow optional requirements
data/Gemfile ADDED
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
5
+
6
+ branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
7
+ gem 'solidus', github: 'solidusio/solidus', branch: branch
8
+
9
+ # Needed to help Bundler figure out how to resolve dependencies,
10
+ # otherwise it takes forever to resolve them.
11
+ # See https://github.com/bundler/bundler/issues/6677
12
+ gem 'rails', ENV.fetch('RAILS_VERSION', '>0.a')
13
+
14
+ # Provides basic authentication functionality for testing parts of your engine
15
+ gem 'solidus_auth_devise'
16
+
17
+ case ENV['DB']
18
+ when 'mysql'
19
+ gem 'mysql2'
20
+ when 'postgresql'
21
+ gem 'pg'
22
+ else
23
+ gem 'sqlite3'
24
+ end
25
+
26
+ gemspec
27
+
28
+ # Use a local Gemfile to include development dependencies that might not be
29
+ # relevant for the project or for other contributors, e.g. pry-byebug.
30
+ #
31
+ # We use `send` instead of calling `eval_gemfile` to work around an issue with
32
+ # how Dependabot parses projects: https://github.com/dependabot/dependabot-core/issues/1658.
33
+ send(:eval_gemfile, 'Gemfile-local') if File.exist? 'Gemfile-local'
34
+
35
+ group :test do
36
+ gem 'shoulda-matchers', '~> 4.0'
37
+ end