Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,11 @@
inherit_from:
- https://relaxed.ruby.style/rubocop.yml

AllCops:
Exclude:
- tmp/**/*

Style/FrozenStringLiteralComment:
Exclude:
- "**/bin/*"
- "**/exe/*"
24 changes: 18 additions & 6 deletions bin/setup
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
set -vx
#!/usr/bin/env ruby
require 'fileutils'
include FileUtils

bundle install
GEM_ROOT = File.expand_path('..', __dir__)

# Do any other automated setup that you need to do here
def system(*args)
puts "$ #{args.size == 1 ? args.first : args.shelljoin}"
super
end

def system!(*args)
system(*args) || abort("\n== Command #{args} failed ==")
end

cd GEM_ROOT

puts "\n== Installing Ruby dependencies =="
system! %{gem install bundler --conservative}
system! %{bundle check || bundle install}
4 changes: 4 additions & 0 deletions bin/solidus
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env ruby

require 'bundler/setup'
load "#{__dir__}/../exe/solidus"
5 changes: 3 additions & 2 deletions exe/solidus
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@

require 'optparse'

require 'solidus_dev_support'
require 'solidus_dev_support/extension'
require 'solidus_dev_support/version'

Options = Struct.new(:name)

Expand Down Expand Up @@ -46,6 +45,8 @@ if ARGV.first == 'extension' || ARGV.first == 'e'
exit 1
end

require 'solidus_dev_support'
require 'solidus_dev_support/extension'
SolidusDevSupport::Extension.start
else
Parser.parse(ARGV)
Expand Down
11 changes: 11 additions & 0 deletions lib/solidus_dev_support/extension.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

require 'thor'
require 'thor/group'
require 'pathname'

module SolidusDevSupport
class Extension < Thor::Group
Expand All @@ -23,6 +24,10 @@ def generate
directory '.circleci', "#{file_name}/.circleci"
directory '.github', "#{file_name}/.github"

Dir["#{file_name}/bin/*"].each do |executable|
make_executable executable
end

template 'extension.gemspec.erb', "#{file_name}/#{file_name}.gemspec"
template 'Gemfile', "#{file_name}/Gemfile"
template 'gitignore', "#{file_name}/.gitignore"
Expand All @@ -45,6 +50,12 @@ def class_name
def use_prefix(prefix)
@file_name = prefix + Thor::Util.snake_case(file_name) unless file_name =~ /^#{prefix}/
end

def make_executable(path)
path = Pathname(path)
executable = (path.stat.mode | 0o111)
path.chmod(executable)
end
end
end
end
15 changes: 15 additions & 0 deletions lib/solidus_dev_support/templates/extension/bin/console.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env ruby

require "bundler/setup"
require "<%= file_name %>"

# You can add fixtures and/or initialization code here to make experimenting
# with your gem easier. You can also use a different console, if you like.
$LOAD_PATH.unshift(*Dir["#{__dir__}/../app/*"])

# (If you use this, don't forget to add pry to your Gemfile!)
# require "pry"
# Pry.start

require "irb"
IRB.start(__FILE__)
13 changes: 13 additions & 0 deletions lib/solidus_dev_support/templates/extension/bin/rails
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env ruby

app_root = 'spec/dummy'

unless File.exist? "#{app_root}/bin/rails"
system "bin/rake", app_root or begin # rubocop:disable Style/AndOr
warn "Automatic creation of the dummy app failed"
exit 1
end
end

Dir.chdir 'spec/dummy'
exec 'bin/rails', *ARGV
7 changes: 0 additions & 7 deletions lib/solidus_dev_support/templates/extension/bin/rails.tt

This file was deleted.

10 changes: 10 additions & 0 deletions lib/solidus_dev_support/templates/extension/bin/setup
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
set -vx

gem install bundler --conservative
bundle update
bin/rake clobber
bin/rake spec/dummy
bin/rails railties:install:migrations db:migrate db:seed