hoboken 0.0.1 → 0.9.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 (65) hide show
  1. checksums.yaml +5 -5
  2. data/.github/dependabot.yml +7 -0
  3. data/.github/workflows/ruby.yml +28 -0
  4. data/.rubocop.yml +33 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +2 -0
  7. data/IDEAS.md +57 -0
  8. data/LICENSE.txt +1 -1
  9. data/README.md +21 -10
  10. data/Rakefile +14 -6
  11. data/bin/hoboken +2 -1
  12. data/hoboken.gemspec +53 -16
  13. data/lib/hoboken.rb +110 -23
  14. data/lib/hoboken/actions.rb +10 -6
  15. data/lib/hoboken/add_ons/github_action.rb +14 -0
  16. data/lib/hoboken/add_ons/heroku.rb +8 -23
  17. data/lib/hoboken/add_ons/internationalization.rb +10 -6
  18. data/lib/hoboken/add_ons/metrics.rb +39 -14
  19. data/lib/hoboken/add_ons/omniauth.rb +114 -47
  20. data/lib/hoboken/add_ons/rubocop.rb +40 -0
  21. data/lib/hoboken/add_ons/sequel.rb +76 -47
  22. data/lib/hoboken/add_ons/sprockets.rb +67 -65
  23. data/lib/hoboken/add_ons/travis.rb +6 -2
  24. data/lib/hoboken/add_ons/twbs.rb +80 -0
  25. data/lib/hoboken/generate.rb +112 -38
  26. data/lib/hoboken/templates/Gemfile.erb.tt +33 -10
  27. data/lib/hoboken/templates/README.md.tt +105 -35
  28. data/lib/hoboken/templates/Rakefile.tt +10 -22
  29. data/lib/hoboken/templates/classic.rb.tt +35 -8
  30. data/lib/hoboken/templates/config.ru.tt +5 -3
  31. data/lib/hoboken/templates/console.sh +5 -0
  32. data/lib/hoboken/templates/db.rb.tt +24 -0
  33. data/lib/hoboken/templates/github_action.tt +28 -0
  34. data/lib/hoboken/templates/gitignore +8 -1
  35. data/lib/hoboken/templates/metrics.rake.tt +10 -9
  36. data/lib/hoboken/templates/modular.rb.tt +40 -11
  37. data/lib/hoboken/templates/puma.rb.tt +21 -0
  38. data/lib/hoboken/templates/rspec.rake.tt +5 -0
  39. data/lib/hoboken/templates/rubocop.yml.tt +31 -0
  40. data/lib/hoboken/templates/sequel.rake +6 -4
  41. data/lib/hoboken/templates/server.sh +12 -0
  42. data/lib/hoboken/templates/setup.sh +7 -0
  43. data/lib/hoboken/templates/spec/app_spec.rb.tt +15 -0
  44. data/lib/hoboken/templates/spec/rack_matchers.rb.tt +56 -0
  45. data/lib/hoboken/templates/spec/spec_helper.rb.tt +41 -0
  46. data/lib/hoboken/templates/sprockets.rake +13 -7
  47. data/lib/hoboken/templates/sprockets_chain.rb +7 -3
  48. data/lib/hoboken/templates/sprockets_helper.rb +14 -10
  49. data/lib/hoboken/templates/support/rack_helpers.rb.tt +55 -0
  50. data/lib/hoboken/templates/support/rack_test_assertions.rb.tt +111 -0
  51. data/lib/hoboken/templates/test/test_helper.rb.tt +38 -27
  52. data/lib/hoboken/templates/test/unit/app_test.rb.tt +11 -3
  53. data/lib/hoboken/templates/test_unit.rake.tt +18 -0
  54. data/lib/hoboken/templates/views/index.erb.tt +10 -3
  55. data/lib/hoboken/templates/views/layout.erb.tt +4 -1
  56. data/lib/hoboken/version.rb +3 -1
  57. data/test/fixtures/Gemfile +3 -3
  58. data/test/fixtures/Gemfile.pristine +3 -2
  59. data/test/integration/add_on_test.rb +399 -136
  60. data/test/integration/generate_test.rb +170 -38
  61. data/test/test_helper.rb +54 -23
  62. data/test/unit/hoboken_actions_test.rb +70 -61
  63. metadata +441 -16
  64. data/.travis.yml +0 -5
  65. data/lib/hoboken/templates/test/support/rack_test_assertions.rb.tt +0 -92
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5d2df9dfc9ecc21aa34c95ac8f7f3b91bd3149fd
4
- data.tar.gz: fc960ac11680b88e5b037fb846bd39896a568227
2
+ SHA256:
3
+ metadata.gz: d42754fed3189d3de171e54745f49f492b0ff0581aafa53493f0d7f15efbb8b0
4
+ data.tar.gz: 1cd847b097a929db83a36932d959b2b8d0d94273b408231f06f47c6ae6c6e13d
5
5
  SHA512:
6
- metadata.gz: e53a838ca0fa1a12c87413deaee61100f4bf100bdda43a6f8fc7450b87b5bbdc81ae79cc7c44b8592d0d27c340674ecfbc34ab338223c78b5cc2962f00c3993a
7
- data.tar.gz: 33401a4e2df9ae38bfc7618dddd4512a4eab11c9e460adcc87b0014528b8f8e83013f19b947f172f6758cd7ef1bbad29e971011d91d26a4c4c6499d061a1e319
6
+ metadata.gz: 501df84e547ff6ace6e5b987f8f8723f349767647b9fdb532a949b6c8fe65b72502b349309948f7a8a92d09c9091c89b5f05745d288d363893c6fe5647930f4a
7
+ data.tar.gz: 168647168f6a62fdc1410d63994de32706710eff8017a91bedd31ce961ac6d2379d9494671d0d6154d1ff7a113140ec21b477eb809215bbed9b90e4b84366177
@@ -0,0 +1,7 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ open-pull-requests-limit: 10
@@ -0,0 +1,28 @@
1
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
2
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
3
+
4
+ name: Ruby
5
+
6
+ on:
7
+ push:
8
+ pull_request:
9
+ schedule:
10
+ - cron: "0 4 * * *"
11
+
12
+ jobs:
13
+ test:
14
+
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ ruby-version: ['2.6', '2.7', '3.0']
19
+
20
+ steps:
21
+ - uses: actions/checkout@v2
22
+ - name: Set up Ruby
23
+ uses: ruby/setup-ruby@v1
24
+ with:
25
+ ruby-version: ${{ matrix.ruby-version }}
26
+ bundler-cache: true
27
+ - name: Run tests
28
+ run: bundle exec rake ci
data/.rubocop.yml ADDED
@@ -0,0 +1,33 @@
1
+ require:
2
+ - rubocop-rake
3
+ - rubocop-rspec # for generated projects
4
+
5
+ AllCops:
6
+ Exclude:
7
+ - 'test/tmp/*/sample/Gemfile'
8
+ - 'test/fixtures/**/*'
9
+ - 'vendor/bundle/**/*'
10
+ NewCops: enable
11
+ TargetRubyVersion: 2.6
12
+
13
+ Metrics/BlockLength:
14
+ IgnoredMethods:
15
+ - run_hoboken
16
+
17
+ Layout/SpaceAroundEqualsInParameterDefault:
18
+ EnforcedStyle: no_space
19
+
20
+ Metrics/ClassLength:
21
+ Max: 150
22
+
23
+ Metrics/MethodLength:
24
+ Max: 15
25
+
26
+ Layout/LineLength:
27
+ Max: 90
28
+
29
+ Style/BlockDelimiters:
30
+ EnforcedStyle: braces_for_chaining
31
+
32
+ Style/YodaCondition:
33
+ EnforcedStyle: require_for_equality_operators_only
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.7.3
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in hoboken.gemspec
data/IDEAS.md ADDED
@@ -0,0 +1,57 @@
1
+ # Project Ideas
2
+
3
+ ## New Directory Structure
4
+
5
+ General idea is similar to Hexagonal or Ports and Adapters architecture. Web
6
+ and DB concerns depend on the application core, not the other way around.
7
+
8
+ /web -- depends on --> /db
9
+ /web -- depends on --> /lib
10
+ /db -- depends on --> /lib
11
+ /lib -- depends on --> nothing from from /web or /db
12
+
13
+ ```
14
+ Gemfile
15
+ Gemfile.lock
16
+ README.md
17
+ Rakefile
18
+ config.ru
19
+ app.rb
20
+ db.rb
21
+ /config
22
+ db.rb
23
+ environment.rb
24
+ puma.rb
25
+ /db
26
+ /mappers
27
+ some_mapper.rb
28
+ /migrate
29
+ migration_001.rb
30
+ sequel_mapper.rb
31
+ /lib
32
+ <project_name>.rb
33
+ /<project_name>
34
+ ... files
35
+ /helpers
36
+ some_helper.rb
37
+ /public
38
+ /css
39
+ styles.css
40
+ /img
41
+ favicon.png
42
+ hoboken.png
43
+ sinatra.png
44
+ /js
45
+ app.js
46
+ /views
47
+ index.erb
48
+ layout.erb
49
+ /test
50
+ test_helper.rb
51
+ /<project_name>
52
+ /db
53
+ some_mapper_test.rb
54
+ /support
55
+ rack_test_assertions.rb
56
+ app_test.rb
57
+ ```
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013-2014 Bob Nadler
1
+ Copyright (c) 2013-2021 Bob Nadler
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # Hoboken
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/hoboken.png)](http://badge.fury.io/rb/hoboken)
4
- [![Dependency Status](https://gemnasium.com/bnadlerjr/hoboken.png)](https://gemnasium.com/bnadlerjr/hoboken)
5
- [![Build Status](https://travis-ci.org/bnadlerjr/hoboken.png)](https://travis-ci.org/bnadlerjr/hoboken)
4
+ ![Build Status](https://github.com/bnadlerjr/hoboken/actions/workflows/ruby.yml/badge.svg)
5
+ [![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=bnadlerjr/hoboken)](https://dependabot.com)
6
6
 
7
- Generate Sinatra project templates.
7
+ Sinatra project generator and templates.
8
8
 
9
9
  ## Installation
10
10
 
11
- $ gem install hoboken --pre
11
+ $ gem install hoboken
12
12
 
13
13
  ## Usage
14
14
 
@@ -27,12 +27,14 @@ To see a list of options for the generate command:
27
27
  hoboken generate [APP_NAME]
28
28
 
29
29
  Options:
30
- [--ruby-version=RUBY_VERSION] # Ruby version for Gemfile
31
- # Default: 2.0.0
32
- [--tiny] # Generate views inline; do not create /public folder
33
- [--type=TYPE] # Architecture type (classic or modular)
34
- # Default: classic
35
- [--git] # Create a Git repository and make initial commit
30
+ [--ruby-version=RUBY_VERSION] # Ruby version for Gemfile
31
+ [--tiny], [--no-tiny] # Generate views inline; do not create /public folder
32
+ [--type=TYPE] # Architecture type (classic or modular)
33
+ # Default: classic
34
+ [--git], [--no-git] # Create a Git repository and make initial commit
35
+ [--api-only], [--no-api-only] # API only, no views, public folder, etc.
36
+ [--test-framework=TEST_FRAMEWORK] # Testing framework; can be either test-unit or rspec
37
+ # Default: test-unit
36
38
 
37
39
  Generate a new Sinatra app
38
40
 
@@ -40,13 +42,20 @@ To see a list of options for the generate command:
40
42
 
41
43
  Additional generators are available for existing projects generated using Hoboken:
42
44
 
45
+ $ hoboken add:github_action # Github action that runs CI task
43
46
  $ hoboken add:heroku # Heroku deployment support
44
47
  $ hoboken add:i18n # Internationalization support using sinatra-r18n
45
48
  $ hoboken add:metrics # Add metrics (flog, flay, simplecov)
46
49
  $ hoboken add:omniauth # OmniAuth authentication (allows you to select a provider)
50
+ $ hoboken add:rubocop # Basic Rubocop configuration and Rake task.
47
51
  $ hoboken add:sequel # Database access via Sequel gem
48
52
  $ hoboken add:sprockets # Rack-based asset packaging system
49
53
  $ hoboken add:travis # Basic Travis-CI YAML config
54
+ $ hoboken add:twbs # Twitter Bootstrap (requires Sprockets add-on)
55
+
56
+ ### Documentation
57
+
58
+ Visit the project [website](http://bobnadler.com/hoboken).
50
59
 
51
60
  ## Contributing
52
61
 
@@ -55,3 +64,5 @@ Additional generators are available for existing projects generated using Hoboke
55
64
  3. Commit your changes (`git commit -am 'Add some feature'`)
56
65
  4. Push to the branch (`git push origin my-new-feature`)
57
66
  5. Create new Pull Request
67
+
68
+ If your contribution requires a change to the documentation, please also make a pull request to the [documentation project](https://github.com/bnadlerjr/hoboken-docs).
data/Rakefile CHANGED
@@ -1,10 +1,18 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ # frozen_string_literal: true
3
2
 
4
- task :default => "test:all"
3
+ require 'bundler/gem_tasks'
4
+ require 'rake/testtask'
5
+ require 'rubocop/rake_task'
6
+
7
+ RuboCop::RakeTask.new
8
+
9
+ task default: 'test:all'
10
+
11
+ desc 'Run CI checks'
12
+ task ci: ['test:all', 'rubocop']
5
13
 
6
14
  namespace :test do
7
- types = %w(unit integration)
15
+ types = %w[unit integration]
8
16
 
9
17
  types.each do |type|
10
18
  Rake::TestTask.new(type.to_sym) do |t|
@@ -13,6 +21,6 @@ namespace :test do
13
21
  end
14
22
  end
15
23
 
16
- desc "Run all tests"
17
- task :all => types.map { |s| "test:#{s}" }
24
+ desc 'Run all tests'
25
+ task all: types.map { |s| "test:#{s}" }
18
26
  end
data/bin/hoboken CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require File.join(File.dirname(__FILE__), "../lib/hoboken")
4
+ require File.join(File.dirname(__FILE__), '../lib/hoboken')
4
5
  Hoboken::CLI.start(ARGV)
data/hoboken.gemspec CHANGED
@@ -1,25 +1,62 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'hoboken/version'
1
+ # frozen_string_literal: true
2
+
3
+ require 'English'
4
+ require_relative 'lib/hoboken/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "hoboken"
7
+ spec.name = 'hoboken'
8
8
  spec.version = Hoboken::VERSION
9
- spec.authors = ["Bob Nadler"]
10
- spec.email = ["bnadlerjr@gmail.com"]
11
- spec.description = %q{Sinatra project generator.}
12
- spec.summary = %q{Sinatra project generator.}
13
- spec.homepage = "https://github.com/bnadlerjr/hoboken"
14
- spec.license = "MIT"
9
+ spec.authors = ['Bob Nadler']
10
+ spec.email = ['bnadlerjr@gmail.com']
11
+ spec.description = 'Sinatra project generator.'
12
+ spec.summary = 'Sinatra project generator.'
13
+ spec.homepage = 'https://github.com/bnadlerjr/hoboken'
14
+ spec.license = 'MIT'
15
+
16
+ spec.required_ruby_version = '>= 2.6'
15
17
 
16
- spec.files = `git ls-files`.split($/)
18
+ spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
17
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
21
+ spec.require_paths = ['lib']
22
+
23
+ spec.add_development_dependency 'bundler', '~> 2.2'
24
+ spec.add_development_dependency 'pry-byebug', '~> 3.9'
25
+ spec.add_development_dependency 'rake', '~> 13.0'
26
+ spec.add_development_dependency 'rubocop', '~> 1.12'
27
+ spec.add_development_dependency 'rubocop-rake', '~> 0.5'
28
+ spec.add_development_dependency 'test-unit', '~> 3.4'
29
+ spec.add_development_dependency 'warning', '~> 1.2'
20
30
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake", "~> 10.3.1"
31
+ # These dependencies are installed by the generated projects. Including them
32
+ # here so that:
33
+ #
34
+ # a) We can get Dependabot notifications for them
35
+ # b) We can run tests for generated projects
36
+ spec.add_development_dependency 'better_errors', '~> 2.9'
37
+ spec.add_development_dependency 'binding_of_caller', '~> 1.0'
38
+ spec.add_development_dependency 'bootstrap', '~> 5.0.0.beta3'
39
+ spec.add_development_dependency 'contest', '~> 0.1'
40
+ spec.add_development_dependency 'dotenv', '~> 2.7'
41
+ spec.add_development_dependency 'erubi', '~> 1.10'
42
+ spec.add_development_dependency 'omniauth-twitter', '~> 1.4'
43
+ spec.add_development_dependency 'puma', '~> 5.2'
44
+ spec.add_development_dependency 'rack_csrf', '~> 2.6'
45
+ spec.add_development_dependency 'racksh', '~> 1.0'
46
+ spec.add_development_dependency 'rack-test', '~> 1.1'
47
+ spec.add_development_dependency 'rb-fsevent', '~> 0.10'
48
+ spec.add_development_dependency 'rerun', '~> 0.13'
49
+ spec.add_development_dependency 'rspec', '~> 3.10'
50
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.2'
51
+ spec.add_development_dependency 'sassc', '~> 2.4'
52
+ spec.add_development_dependency 'sequel', '~> 5.43'
53
+ spec.add_development_dependency 'sinatra', '~> 2.1'
54
+ spec.add_development_dependency 'sinatra-contrib', '~> 2.1'
55
+ spec.add_development_dependency 'sinatra-flash', '~> 0.3'
56
+ spec.add_development_dependency 'sprockets', '~> 4.0'
57
+ spec.add_development_dependency 'sqlite3', '~> 1.4'
58
+ spec.add_development_dependency 'uglifier', '~> 4.2'
59
+ spec.add_development_dependency 'yui-compressor', '~> 0.12'
23
60
 
24
- spec.add_dependency "thor", "~> 0.19.1"
61
+ spec.add_dependency 'thor', '~> 1.1'
25
62
  end
data/lib/hoboken.rb CHANGED
@@ -1,11 +1,19 @@
1
- require "thor"
2
- require "thor/util"
3
- require "fileutils"
4
- require_relative "hoboken/version"
5
- require_relative "hoboken/generate"
6
- require_relative "hoboken/actions"
1
+ # frozen_string_literal: true
7
2
 
3
+ require 'date'
4
+ require 'thor'
5
+ require 'thor/util'
6
+ require 'fileutils'
7
+ require_relative 'hoboken/version'
8
+ require_relative 'hoboken/generate'
9
+ require_relative 'hoboken/actions'
10
+
11
+ # Generate Sinatra project templates.
12
+ #
8
13
  module Hoboken
14
+ # Custom `Thor::Group` that mixes in `Hoboken::Actions` so that they're
15
+ # available everywhere.
16
+ #
9
17
  class Group < Thor::Group
10
18
  include Thor::Actions
11
19
  include Hoboken::Actions
@@ -13,31 +21,110 @@ module Hoboken
13
21
  def self.source_root
14
22
  File.dirname(__FILE__)
15
23
  end
24
+
25
+ def classic?
26
+ File.read('app.rb').include?("require 'sinatra'")
27
+ end
28
+
29
+ def rspec?
30
+ Dir.exist?('spec')
31
+ end
16
32
  end
17
33
 
18
- require_relative "hoboken/add_ons/metrics"
19
- require_relative "hoboken/add_ons/internationalization"
20
- require_relative "hoboken/add_ons/heroku"
21
- require_relative "hoboken/add_ons/omniauth"
22
- require_relative "hoboken/add_ons/sequel"
23
- require_relative "hoboken/add_ons/sprockets"
24
- require_relative "hoboken/add_ons/travis"
34
+ require_relative 'hoboken/add_ons/github_action'
35
+ require_relative 'hoboken/add_ons/heroku'
36
+ require_relative 'hoboken/add_ons/internationalization'
37
+ require_relative 'hoboken/add_ons/metrics'
38
+ require_relative 'hoboken/add_ons/omniauth'
39
+ require_relative 'hoboken/add_ons/rubocop'
40
+ require_relative 'hoboken/add_ons/sequel'
41
+ require_relative 'hoboken/add_ons/sprockets'
42
+ require_relative 'hoboken/add_ons/travis'
43
+ require_relative 'hoboken/add_ons/twbs'
25
44
 
45
+ # Hoboken's command-line interface.
46
+ #
26
47
  class CLI < Thor
27
- desc "version", "Print version and quit"
48
+ desc 'version', 'Print version and quit'
28
49
  def version
29
50
  puts "Hoboken v#{Hoboken::VERSION}"
30
51
  end
31
52
 
32
- register(Generate, "generate", "generate [APP_NAME]", "Generate a new Sinatra app")
33
- tasks["generate"].options = Hoboken::Generate.class_options
53
+ register(Generate, 'generate', 'generate [APP_NAME]', 'Generate a new Sinatra app')
54
+ tasks['generate'].options = Hoboken::Generate.class_options
55
+
56
+ register(
57
+ AddOns::Heroku,
58
+ 'add:heroku',
59
+ 'add:heroku',
60
+ 'Heroku deployment support'
61
+ )
62
+
63
+ register(
64
+ AddOns::GithubAction,
65
+ 'add:github_action',
66
+ 'add:github_action',
67
+ 'Github action that runs CI task'
68
+ )
69
+
70
+ register(
71
+ AddOns::Internationalization,
72
+ 'add:i18n',
73
+ 'add:i18n',
74
+ 'Internationalization support using sinatra-r18n'
75
+ )
34
76
 
35
- register(AddOns::Metrics, "add:metrics", "add:metrics", "Add metrics (flog, flay, simplecov)")
36
- register(AddOns::Internationalization, "add:i18n", "add:i18n", "Internationalization support using sinatra-r18n")
37
- register(AddOns::Heroku, "add:heroku", "add:heroku", "Heroku deployment support")
38
- register(AddOns::OmniAuth, "add:omniauth", "add:omniauth", "OmniAuth authentication (allows you to select a provider)")
39
- register(AddOns::Sprockets, "add:sprockets", "add:sprockets", "Rack-based asset packaging system")
40
- register(AddOns::Sequel, "add:sequel", "add:sequel", "Database access via Sequel gem")
41
- register(AddOns::Travis, "add:travis", "add:travis", "Basic Travis-CI YAML config")
77
+ register(
78
+ AddOns::Metrics,
79
+ 'add:metrics',
80
+ 'add:metrics',
81
+ 'Add metrics (flog, flay, simplecov)'
82
+ )
83
+
84
+ register(
85
+ AddOns::OmniAuth,
86
+ 'add:omniauth',
87
+ 'add:omniauth',
88
+ 'OmniAuth authentication (allows you to select a provider)'
89
+ )
90
+
91
+ register(
92
+ AddOns::Rubocop,
93
+ 'add:rubocop',
94
+ 'add:rubocop',
95
+ 'Basic Rubocop configuration and Rake task.'
96
+ )
97
+
98
+ register(
99
+ AddOns::Sequel,
100
+ 'add:sequel',
101
+ 'add:sequel',
102
+ 'Database access via Sequel gem'
103
+ )
104
+
105
+ register(
106
+ AddOns::Sprockets,
107
+ 'add:sprockets',
108
+ 'add:sprockets',
109
+ 'Rack-based asset packaging system'
110
+ )
111
+
112
+ register(
113
+ AddOns::Travis,
114
+ 'add:travis',
115
+ 'add:travis',
116
+ 'Basic Travis-CI YAML config'
117
+ )
118
+
119
+ register(
120
+ AddOns::TwitterBootstrap,
121
+ 'add:twbs',
122
+ 'add:twbs',
123
+ 'Twitter Bootstrap (requires Sprockets add-on)'
124
+ )
125
+
126
+ def self.exit_on_failure?
127
+ true
128
+ end
42
129
  end
43
130
  end