spree_cli 4.7.3 → 4.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bf183bdea00f8cec04707bd3166b9dd6bf2c084b605b4306c60bcd3b0f640bee
4
- data.tar.gz: 00e6d882ccab3c70aa5135950b3fc3dc1f9f3196c18a4c99c83264b5086a6e89
3
+ metadata.gz: 18fb886a96dc4546bf239aacc6db85066316b9dfa812f81277d19c1d92c93bc1
4
+ data.tar.gz: 9cd24b274c6a89779889253500b6b30e6e6e72c2c061f41edbfe3c609d9b9899
5
5
  SHA512:
6
- metadata.gz: dd62a09e00c1115f8ad51f4f98360328a814fd4b72918e822789d5728b6c9494f49663b7d1db7fc83c7851bd878cd0fcd18613bcda0e32db325006232e7c8e59
7
- data.tar.gz: 81200aa08f8004b4c0db9ee6141209d1017d803c9ca786f513d34dac5c0552a84ef3bf831ac654089be3580d898adfbe2f0b74e783089ba6a12bd39fa68921e4
6
+ metadata.gz: f4860fb9857945bc5cdc4e0f779021ae90143fb03d3010f7f6cd49108870119587fd9bc6ba53dd704df14b775f2da20a3983dc74d532656bbbdae5a1e572456a
7
+ data.tar.gz: 1e408fff5fa42e74f09ed8dd3c4c05bd99a020b951424353c313a1d897c70c3d48f09ed1acfa7c484bd0183760df399a632a4dcdff0f8f8fedf39ed8fd97d899
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2007-2015, Spree Commerce, Inc. and other contributors
1
+ Copyright (c) 2007-2024, Spree Commerce, Inc., Spark Solutuons Sp. z o.o. and other contributors
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
@@ -1,3 +1,5 @@
1
+ require 'active_support/core_ext/string/inflections'
2
+
1
3
  module SpreeCli
2
4
  class Extension < Thor::Group
3
5
  include Thor::Actions
@@ -17,6 +19,15 @@ module SpreeCli
17
19
  directory 'bin', "#{file_name}/bin"
18
20
  directory 'spec', "#{file_name}/spec"
19
21
 
22
+ empty_directory "#{file_name}/app/models/spree"
23
+ empty_directory "#{file_name}/app/models/#{file_name}"
24
+ empty_directory "#{file_name}/app/views/spree"
25
+ empty_directory "#{file_name}/app/views/#{file_name}"
26
+ empty_directory "#{file_name}/app/controllers/spree"
27
+ empty_directory "#{file_name}/app/controllers/#{file_name}"
28
+ empty_directory "#{file_name}/app/services/spree"
29
+ empty_directory "#{file_name}/app/services/#{file_name}"
30
+
20
31
  chmod "#{file_name}/bin/rails", 0o755
21
32
 
22
33
  template 'extension.gemspec', "#{file_name}/#{file_name}.gemspec"
@@ -28,19 +39,20 @@ module SpreeCli
28
39
  template 'config/routes.rb', "#{file_name}/config/routes.rb"
29
40
  template 'config/locales/en.yml', "#{file_name}/config/locales/en.yml"
30
41
  template 'rspec', "#{file_name}/.rspec"
31
- template 'travis.yml', "#{file_name}/.travis.yml"
42
+ template '.circleci/config.yml', "#{file_name}/.circleci/config.yml"
43
+ template '.github/.dependabot.yml', "#{file_name}/.github/.dependabot.yml"
32
44
  template '.rubocop.yml', "#{file_name}/.rubocop.yml"
45
+ template '.gem_release.yml', "#{file_name}/.gem_release.yml"
33
46
  end
34
47
 
35
48
  def final_banner
36
49
  say %{
37
50
  #{'*' * 80}
38
51
 
39
- Congrats, Your extension has been generated :rocket:
52
+ Congrats, Your Spree #{human_name} extension has been generated 🚀
40
53
 
41
54
  Next steps:
42
- * Read Spree Developer Documentation at: https://dev-docs.spreecommerce.org/customization
43
- * Start your extension at: https://dev-docs.spreecommerce.org/extensions/extensions
55
+ * Read Spree Developer Documentation at: https://docs.spreecommerce.org/developer
44
56
 
45
57
  #{'*' * 80}
46
58
  }
@@ -51,6 +63,10 @@ module SpreeCli
51
63
  Thor::Util.camel_case file_name
52
64
  end
53
65
 
66
+ def human_name
67
+ file_name.to_s.gsub('spree_', '').humanize
68
+ end
69
+
54
70
  def use_prefix(prefix)
55
71
  @file_name = prefix + Thor::Util.snake_case(file_name) unless file_name =~ /^#{prefix}/
56
72
  end
@@ -0,0 +1,115 @@
1
+ version: 2.1
2
+
3
+ defaults: &defaults
4
+ environment: &environment
5
+ CIRCLE_TEST_REPORTS: /tmp/test-results
6
+ CIRCLE_ARTIFACTS: /tmp/test-artifacts
7
+ BUNDLE_JOBS: 4
8
+ BUNDLE_RETRY: 3
9
+ BUNDLE_PATH: ~/spree/vendor/bundle
10
+ working_directory: ~/spree
11
+ docker:
12
+ - image: &ruby_image cimg/ruby:3.3-browsers
13
+
14
+ run_tests: &run_tests
15
+ <<: *defaults
16
+ steps:
17
+ - checkout
18
+ - restore_cache:
19
+ keys:
20
+ - spree-bundle-{{ .Branch }}
21
+ - spree-bundle
22
+ - run:
23
+ name: Add keyserver
24
+ command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
25
+ - run:
26
+ name: Install libvips
27
+ command: sudo apt-get update && sudo apt-get install libvips
28
+ - run:
29
+ name: Set bundle path
30
+ command: bundle config --local path vendor/bundle
31
+ - run:
32
+ name: Ensure bundle Install
33
+ command: |
34
+ bundle check || bundle install
35
+ - run:
36
+ name: Create test app
37
+ command: |
38
+ bundle exec rake test_app
39
+ - run:
40
+ name: Run Rspec
41
+ command: |
42
+ TESTFILES=$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
43
+ bundle exec rspec --format documentation \
44
+ --format RspecJunitFormatter \
45
+ -o ~/rspec/rspec.xml \
46
+ -- ${TESTFILES}
47
+ - store_test_results:
48
+ path: ~/rspec
49
+ - store_artifacts:
50
+ path: tmp/capybara
51
+
52
+ jobs:
53
+ bundle:
54
+ <<: *defaults
55
+ steps:
56
+ - checkout
57
+ - restore_cache:
58
+ keys:
59
+ - spree-bundle-{{ .Branch }}
60
+ - spree-bundle
61
+ - run:
62
+ name: Add keyserver
63
+ command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4EB27DB2A3B88B8B
64
+ - run:
65
+ name: Install libvips
66
+ command: sudo apt-get update && sudo apt-get install libvips
67
+ - run:
68
+ name: Set bundle path
69
+ command: bundle config --local path vendor/bundle
70
+ - run:
71
+ name: Bundle Install
72
+ command: |
73
+ bundle check || bundle install
74
+ - save_cache:
75
+ paths:
76
+ - vendor/bundle
77
+ key: spree-bundle-{{ checksum "Gemfile.lock" }}
78
+
79
+ tests_postgres: &tests_postgres
80
+ <<: *run_tests
81
+ environment: &postgres_environment
82
+ <<: *environment
83
+ DB: postgres
84
+ DB_HOST: localhost
85
+ DB_USERNAME: postgres
86
+ docker:
87
+ - image: *ruby_image
88
+ - image: &postgres_image cimg/postgres:16.2
89
+ environment:
90
+ POSTGRES_USER: postgres
91
+
92
+ tests_mysql: &tests_mysql
93
+ <<: *run_tests
94
+ environment: &mysql_environment
95
+ <<: *environment
96
+ DB: mysql
97
+ DB_HOST: 127.0.0.1
98
+ DB_USERNAME: root
99
+ COVERAGE: true
100
+ COVERAGE_DIR: /tmp/workspace/simplecov
101
+ docker:
102
+ - image: *ruby_image
103
+ - image: &mysql_image cimg/mysql:8.0
104
+
105
+ workflows:
106
+ version: 2
107
+ main:
108
+ jobs:
109
+ - bundle
110
+ - tests_postgres:
111
+ requires:
112
+ - bundle
113
+ - tests_mysql:
114
+ requires:
115
+ - bundle
@@ -0,0 +1,3 @@
1
+ bump:
2
+ file: "lib/<%= file_name %>/version.rb"
3
+
@@ -0,0 +1,11 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "bundler" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
@@ -5,8 +5,21 @@ git_source(:github) do |repo_name|
5
5
  "https://github.com/#{repo_name}.git"
6
6
  end
7
7
 
8
- gem 'spree', github: 'spree/spree', branch: 'main'
9
- # gem 'spree_backend', github: 'spree/spree', branch: 'main'
10
8
  gem 'rails-controller-testing'
11
9
 
10
+ spree_opts = { github: 'spree/spree', branch: 'main' }
11
+ gem 'spree', spree_opts
12
+ gem 'spree_emails', spree_opts
13
+
14
+ gem 'spree_backend', github: 'spree/spree_backend', branch: 'main'
15
+ gem 'spree_frontend', github: 'spree/spree_rails_frontend', branch: 'main'
16
+
17
+ if ENV['DB'] == 'mysql'
18
+ gem 'mysql2'
19
+ elsif ENV['DB'] == 'postgres'
20
+ gem 'pg'
21
+ else
22
+ gem 'sqlite3', '~> 1.4'
23
+ end
24
+
12
25
  gemspec
@@ -1,39 +1,40 @@
1
- # <%= class_name %>
1
+ # Spree <%= human_name %>
2
2
 
3
- Introduction goes here.
3
+ This is a <%= human_name %> extension for [Spree Commerce](https://spreecommerce.org), an open source e-commerce platform built with Ruby on Rails.
4
4
 
5
5
  ## Installation
6
6
 
7
7
  1. Add this extension to your Gemfile with this line:
8
8
 
9
9
  ```ruby
10
- gem '<%= file_name %>'
10
+ bundle add <%= file_name %>
11
11
  ```
12
12
 
13
- 2. Install the gem using Bundler
14
-
15
- ```ruby
16
- bundle install
17
- ```
18
-
19
- 3. Copy & run migrations
13
+ 2. Copy & run migrations
20
14
 
21
15
  ```ruby
22
16
  bundle exec rails g <%= file_name %>:install
23
17
  ```
24
18
 
25
- 4. Restart your server
19
+ 3. Restart your server
26
20
 
27
21
  If your server was running, restart it so that it can find the assets properly.
28
22
 
29
- ## Testing
23
+ ## Developing
30
24
 
31
- First bundle your dependencies, then run `rake`. `rake` will default to building the dummy app if it does not exist, then it will run specs. The dummy app can be regenerated by using `rake test_app`.
25
+ 1. Create a dummy app
32
26
 
33
- ```shell
34
- bundle update
35
- bundle exec rake
36
- ```
27
+ ```bash
28
+ bundle update
29
+ bundle exec rake test_app
30
+ ```
31
+
32
+ 2. Add your new code
33
+ 3. Run tests
34
+
35
+ ```bash
36
+ bundle exec rspec
37
+ ```
37
38
 
38
39
  When testing your applications integration with this extension you may use it's factories.
39
40
  Simply add this require statement to your spec_helper:
@@ -42,7 +43,7 @@ Simply add this require statement to your spec_helper:
42
43
  require '<%= file_name %>/factories'
43
44
  ```
44
45
 
45
- ## Releasing
46
+ ## Releasing a new version
46
47
 
47
48
  ```shell
48
49
  bundle exec gem bump -p -t
@@ -7,9 +7,8 @@ require '<%= file_name %>/version'
7
7
  Gem::Specification.new do |s|
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.name = '<%= file_name %>'
10
- s.version = <%= class_name %>.version
11
- s.summary = 'Add extension summary here'
12
- s.description = 'Add (optional) extension description here'
10
+ s.version = <%= class_name %>::VERSION
11
+ s.summary = "Spree Commerce <%= human_name %> Extension"
13
12
  s.required_ruby_version = '>= 3.0'
14
13
 
15
14
  s.author = 'You'
@@ -2,9 +2,9 @@ module <%= class_name %>
2
2
  class Configuration < Spree::Preferences::Configuration
3
3
 
4
4
  # Some example preferences are shown below, for more information visit:
5
- # https://dev-docs.spreecommerce.org/internals/preferences
5
+ # https://docs.spreecommerce.org/developer/contributing/creating-an-extension
6
6
 
7
- preference :enabled, :boolean, default: true
7
+ # preference :enabled, :boolean, default: true
8
8
  # preference :dark_chocolate, :boolean, default: true
9
9
  # preference :color, :string, default: 'Red'
10
10
  # preference :favorite_number, :integer
@@ -1,11 +1,7 @@
1
1
  module <%= class_name %>
2
2
  VERSION = '0.0.1'.freeze
3
3
 
4
- module_function
5
-
6
- # Returns the version of the currently loaded <%= class_name %> as a
7
- # <tt>Gem::Version</tt>.
8
- def version
9
- Gem::Version.new VERSION
4
+ def gem_version
5
+ Gem::Version.new(VERSION)
10
6
  end
11
7
  end
@@ -10,7 +10,7 @@ module <%= class_name %>
10
10
  def run_migrations
11
11
  run_migrations = options[:migrate] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]'))
12
12
  if run_migrations
13
- run 'bundle exec rails db:migrate'
13
+ run 'bin/rails db:migrate'
14
14
  else
15
15
  puts 'Skipping rails db:migrate, don\'t forget to run it!'
16
16
  end
data/spree_cli.gemspec CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.metadata = {
16
16
  "bug_tracker_uri" => "https://github.com/spree/spree/issues",
17
17
  "changelog_uri" => "https://github.com/spree/spree/releases/tag/v#{s.version}",
18
- "documentation_uri" => "https://dev-docs.spreecommerce.org/",
18
+ "documentation_uri" => "https://docs.spreecommerce.org/",
19
19
  "source_code_uri" => "https://github.com/spree/spree/tree/v#{s.version}",
20
20
  }
21
21
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.3
4
+ version: 4.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Mar
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-04-24 00:00:00.000000000 Z
12
+ date: 2024-05-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -41,6 +41,9 @@ files:
41
41
  - bin/spree_cli
42
42
  - lib/spree_cli.rb
43
43
  - lib/spree_cli/extension.rb
44
+ - lib/spree_cli/templates/extension/.circleci/config.yml
45
+ - lib/spree_cli/templates/extension/.gem_release.yml
46
+ - lib/spree_cli/templates/extension/.github/.dependabot.yml
44
47
  - lib/spree_cli/templates/extension/.rubocop.yml
45
48
  - lib/spree_cli/templates/extension/CONTRIBUTING.md
46
49
  - lib/spree_cli/templates/extension/Gemfile
@@ -66,16 +69,15 @@ files:
66
69
  - lib/spree_cli/templates/extension/rspec
67
70
  - lib/spree_cli/templates/extension/spec/.rubocop.yml
68
71
  - lib/spree_cli/templates/extension/spec/spec_helper.rb
69
- - lib/spree_cli/templates/extension/travis.yml
70
72
  - spree_cli.gemspec
71
73
  homepage: https://spreecommerce.org
72
74
  licenses:
73
75
  - BSD-3-Clause
74
76
  metadata:
75
77
  bug_tracker_uri: https://github.com/spree/spree/issues
76
- changelog_uri: https://github.com/spree/spree/releases/tag/v4.7.3
77
- documentation_uri: https://dev-docs.spreecommerce.org/
78
- source_code_uri: https://github.com/spree/spree/tree/v4.7.3
78
+ changelog_uri: https://github.com/spree/spree/releases/tag/v4.8.0
79
+ documentation_uri: https://docs.spreecommerce.org/
80
+ source_code_uri: https://github.com/spree/spree/tree/v4.8.0
79
81
  post_install_message:
80
82
  rdoc_options: []
81
83
  require_paths:
@@ -1,37 +0,0 @@
1
- os: linux
2
- dist: bionic
3
-
4
- addons:
5
- apt:
6
- sources:
7
- - google-chrome
8
- packages:
9
- - google-chrome-stable
10
-
11
- services:
12
- - mysql
13
- - postgresql
14
-
15
- language: ruby
16
-
17
- rvm:
18
- - 2.7
19
- - 3.0
20
-
21
- env:
22
- - DB=mysql
23
- - DB=postgres
24
-
25
- before_install:
26
- - mysql -u root -e "GRANT ALL ON *.* TO 'travis'@'%';"
27
-
28
- before_script:
29
- - CHROME_MAIN_VERSION=`google-chrome-stable --version | sed -E 's/(^Google Chrome |\.[0-9]+ )//g'`
30
- - CHROMEDRIVER_VERSION=`curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_MAIN_VERSION"`
31
- - curl "https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip" -O
32
- - unzip chromedriver_linux64.zip -d ~/bin
33
- - nvm install 16
34
-
35
- script:
36
- - bundle exec rake test_app
37
- - bundle exec rspec