armadura 0.1.1 → 0.1.2

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
  SHA1:
3
- metadata.gz: 65cbc914ed68d3efd03437d9934498e3c51ce70f
4
- data.tar.gz: 671cbd980007d1f3aa2c0a078f5a6bb16bbcee65
3
+ metadata.gz: ec32599e8aaa9bdd3a835869b60b40ee068db547
4
+ data.tar.gz: 4d9ec3f339229d330465d65891b6adc68760b0ad
5
5
  SHA512:
6
- metadata.gz: 57dc7c254fda9ae0abfe37fd39a35bed51ca3aa51a37068718fab3ad433e2c17f19edc2b46af02571660a67d9f3a4e69c1b593092db26eddcb61d3b23dccf4e2
7
- data.tar.gz: 47850fe255187ddf1074985090ff530698654041829833a3d60b0dce8d6c479144d7800007d4a73be15cd08abe43d349ab91c83d66f44cf65af3b4fdf667ed7a
6
+ metadata.gz: 13307c4ccee9bfeb2941758e42b882c453a96c5d98a2dbc600bdec76639df599220434f8ac6051392e3706e8938bd3250b9ac458d5bcbb0234ab795e005eec39
7
+ data.tar.gz: 0a63e28b2ccd8fdd870f6a03e5a61a69c1751598db80e25ff694be322291a4b1558b41f91fcaadecf929e61df8a931a3dc083846bbbe26dfb41fd34a8203d28f
@@ -0,0 +1,17 @@
1
+ # History of releases
2
+
3
+ ## 0.1.2 (Nov 30, 2016)
4
+
5
+ * Upgrade Bourbon to 5.0.0.beta.7.
6
+ * Generated apps now include Bower and Teaspoon.
7
+ * Fix generated Procfile so that Sidekiq is run instead of Delayed Job.
8
+ * Add config files for Rubocop and ESLint so that Ruby and JavaScript files are
9
+ automatically parsed.
10
+
11
+ ## 0.1.1 (Sept, 19, 2016)
12
+
13
+ * Fix generated Gemfile so that it includes `armadura`.
14
+
15
+ ## 0.1.0 (Sept, 19, 2016)
16
+
17
+ First public release of Armadura.
data/README.md CHANGED
@@ -198,14 +198,6 @@ PostgreSQL needs to be installed and running for the `db:create` rake task.
198
198
  If you have problems, please create a
199
199
  [GitHub Issue](https://github.com/mcmire/armadura/issues).
200
200
 
201
- ## Contributing
202
-
203
- See [CONTRIBUTING.md](CONTRIBUTING.md).
204
-
205
- Thank you, [contributors]!
206
-
207
- [contributors]: https://github.com/thoughtbot/armadura/graphs/contributors
208
-
209
201
  ## License
210
202
 
211
203
  Armadura is copyright © 2016 Elliot Winkler.
@@ -5,7 +5,7 @@ require 'date'
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.required_ruby_version = ">= #{Armadura::RUBY_VERSION}"
8
- s.authors = ['Elliot Winkler <elliot.winkler@gmail.com>']
8
+ s.authors = ['Elliot Winkler (elliot.winkler@gmail.com)']
9
9
  s.date = Date.today.strftime('%Y-%m-%d')
10
10
  s.description = "Armadura generates Rails projects, preconfigured with sensible defaults."
11
11
  s.summary = "Armadura generates Rails projects, preconfigured with sensible defaults."
@@ -93,7 +93,7 @@ module Armadura
93
93
  end
94
94
 
95
95
  def provide_setup_script
96
- template "bin_setup", "bin/setup", force: true
96
+ template "bin_setup.erb", "bin/setup", force: true
97
97
  run "chmod a+x bin/setup"
98
98
  end
99
99
 
@@ -266,6 +266,10 @@ config.public_file_server.headers = {
266
266
  copy_file "spec_helper.rb", "spec/spec_helper.rb"
267
267
  end
268
268
 
269
+ def remove_test_directory
270
+ remove_file "test"
271
+ end
272
+
269
273
  def configure_ci
270
274
  template "circle.yml.erb", "circle.yml"
271
275
  end
@@ -360,19 +364,6 @@ Rack::Timeout.timeout = (ENV["RACK_TIMEOUT"] || 10).to_i
360
364
 
361
365
  def create_deploy_script
362
366
  copy_file "bin_deploy", "bin/deploy"
363
-
364
- instructions = <<-MARKDOWN
365
-
366
- ## Deploying
367
-
368
- If you have previously run the `./bin/setup` script,
369
- you can deploy to staging and production with:
370
-
371
- $ ./bin/deploy staging
372
- $ ./bin/deploy production
373
- MARKDOWN
374
-
375
- append_file "README.md", instructions
376
367
  run "chmod a+x bin/deploy"
377
368
  end
378
369
 
@@ -469,6 +460,15 @@ end
469
460
  end
470
461
  end
471
462
 
463
+ def add_bower
464
+ run "bin/rails g bower:install"
465
+ template "bower.json.erb", "bower.json", force: true
466
+ end
467
+
468
+ def add_teaspoon
469
+ run "bin/rails g teaspoon:install"
470
+ end
471
+
472
472
  private
473
473
 
474
474
  def raise_on_missing_translations_in(environment)
@@ -102,6 +102,7 @@ module Armadura
102
102
  build :configure_i18n_for_test_environment
103
103
  build :configure_action_mailer_in_specs
104
104
  build :configure_capybara_webkit
105
+ build :remove_test_directory
105
106
  end
106
107
 
107
108
  def setup_production_environment
@@ -137,6 +138,8 @@ module Armadura
137
138
  build :replace_default_puma_configuration
138
139
  build :set_up_forego
139
140
  build :setup_rack_mini_profiler
141
+ build :add_bower
142
+ build :add_teaspoon
140
143
  end
141
144
 
142
145
  def setup_git
@@ -7,7 +7,7 @@ module Armadura
7
7
  File.dirname(__FILE__))
8
8
 
9
9
  def add_stylesheet_gems
10
- gem "bourbon", "5.0.0.beta.6"
10
+ gem "bourbon", "5.0.0.beta.7"
11
11
  gem "neat", "~> 1.8.0"
12
12
  gem "refills", group: [:development, :test]
13
13
  Bundler.with_clean_env { run "bundle install" }
@@ -4,5 +4,5 @@ module Armadura
4
4
  read("#{File.dirname(__FILE__)}/../../.ruby-version").
5
5
  strip.
6
6
  freeze
7
- VERSION = "0.1.1".freeze
7
+ VERSION = "0.1.2".freeze
8
8
  end
@@ -0,0 +1,23 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "Bower" do
4
+ before(:all) do
5
+ drop_dummy_database
6
+ remove_project_directory
7
+ run_armadura
8
+ setup_app_dependencies
9
+ end
10
+
11
+ it "adds the Bower gem to the Gemfile" do
12
+ gemfile = IO.read("#{project_path}/Gemfile")
13
+ expect(gemfile).to include "bower"
14
+ end
15
+
16
+ it "adds a bower.json file to the project" do
17
+ expect(File.exist?("#{project_path}/bower.json")).to be true
18
+ end
19
+
20
+ it "adds a .bowerrc file to the project" do
21
+ expect(File.exist?("#{project_path}/.bowerrc")).to be true
22
+ end
23
+ end
@@ -38,8 +38,8 @@ RSpec.describe "Heroku" do
38
38
 
39
39
  readme = IO.read("#{project_path}/README.md")
40
40
 
41
- expect(readme).to include("./bin/deploy staging")
42
- expect(readme).to include("./bin/deploy production")
41
+ expect(readme).to include("bin/deploy staging")
42
+ expect(readme).to include("bin/deploy production")
43
43
 
44
44
  circle_yml_path = "#{project_path}/circle.yml"
45
45
  circle_yml = IO.read(circle_yml_path)
@@ -271,6 +271,10 @@ RSpec.describe "Suspend a new project with default configuration" do
271
271
  expect(app_js).not_to match(/turbolinks/)
272
272
  end
273
273
 
274
+ it "removes the test directory" do
275
+ expect(File.exist?("#{project_path}/test")).to be false
276
+ end
277
+
274
278
  def development_config
275
279
  @_development_config ||=
276
280
  read_project_file %w(config environments development.rb)
@@ -0,0 +1,19 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe "Teaspoon" do
4
+ before(:all) do
5
+ drop_dummy_database
6
+ remove_project_directory
7
+ run_armadura
8
+ setup_app_dependencies
9
+ end
10
+
11
+ it "adds the Teaspoon gem to the Gemfile" do
12
+ gemfile = IO.read("#{project_path}/Gemfile")
13
+ expect(gemfile).to include "teaspoon"
14
+ end
15
+
16
+ it "creates spec/javascripts" do
17
+ expect(File.exist?("#{project_path}/spec/javascripts")).to be true
18
+ end
19
+ end
@@ -4,6 +4,7 @@ ruby "<%= Armadura::RUBY_VERSION %>"
4
4
 
5
5
  gem "armadura"
6
6
  gem "autoprefixer-rails"
7
+ gem "bower"
7
8
  gem "flutie"
8
9
  gem "jquery-rails"
9
10
  gem "normalize-rails", "~> 3.0.0"
@@ -38,6 +39,7 @@ group :development, :test do
38
39
  gem "pry-byebug"
39
40
  gem "pry-rails"
40
41
  gem "rspec-rails", "~> 3.5.0.beta4"
42
+ gem "teaspoon-jasmine"
41
43
  end
42
44
 
43
45
  group :development, :staging do
@@ -1,2 +1,2 @@
1
1
  web: bundle exec puma -p $PORT -C ./config/puma.rb
2
- worker: bundle exec rake jobs:work
2
+ worker: bundle exec sidekiq
@@ -1,28 +1,82 @@
1
- # <%= app_name.humanize %>
1
+ # <%= app_name.gsub("-", "_").titleize %>
2
2
 
3
- ## Getting Started
3
+ [YOU SHOULD FILL ME IN: What does this app do?]
4
4
 
5
- After you have cloned this repo, run this setup script to set up your machine
6
- with the necessary dependencies to run and test this app:
5
+ ## Quick links
7
6
 
8
- % ./bin/setup
7
+ * **Staging:** [FILL ME IN]
8
+ * **Production:** [FILL ME IN]
9
+ * **Trello:** [FILL ME IN]
10
+ * **GitHub:** [FILL ME IN]
11
+ * ...
9
12
 
10
- It assumes you have a machine equipped with Ruby, Postgres, etc. If not, set up
11
- your machine with [this script].
13
+ ## Architecture
12
14
 
13
- [this script]: https://github.com/thoughtbot/laptop
15
+ * **Backend:** Ruby on Rails 4, PostgreSQL, Redis (for background jobs)
16
+ * **Frontend:** ES2015 (transpiled using [Babel] to ES5)
14
17
 
15
- After setting up, you can run the application using [Heroku Local]:
18
+ [Babel]: http://babeljs.io
16
19
 
17
- % heroku local
20
+ ## Getting started
21
+
22
+ After you've cloned this repo, run the following script to install backend and
23
+ frontend dependencies and set up the database:
24
+
25
+ bin/setup
26
+
27
+ This assumes that you have Ruby, PostgreSQL, and Redis installed on your
28
+ computer. If you don't, then you'll be given the appropriate instructions to
29
+ install these dependencies first.
30
+
31
+ To run the app, use [Heroku Local]:
32
+
33
+ heroku local
18
34
 
19
35
  [Heroku Local]: https://devcenter.heroku.com/articles/heroku-local
20
36
 
21
- ## Guidelines
37
+ ## Development workflow
38
+
39
+ * The mainline branch is `master`.
40
+ * Create a card for a feature or bugfix on Trello.
41
+ * Cut feature or bugfix branches off of `master`.
42
+ * Write tests.
43
+ * Create pull requests on GitHub and get others to review your work.
44
+ * Rebase and squash your commits if needed to prevent cluttering up the history
45
+ with needless commits.
46
+ * Merge those branches into `master` using `--ff-only` to prevent merge commits
47
+ from being created.
48
+ * Deploy changes to staging so that the client can try out those changes in a
49
+ live environment.
50
+ * Move cards on Trello to the appropriate columns as you are working.
51
+
52
+ ## Testing
53
+
54
+ [RSpec] is used to write tests for Ruby code.
55
+
56
+ You can run the test suite for the project by saying:
57
+
58
+ bundle exec rake
59
+
60
+ [RSpec]: http://rspec.info
61
+
62
+ ## Style
63
+
64
+ Ruby and JavaScript code follows a consistent style, enforced by [Rubocop] and
65
+ [ESLint]. Configure your editor to run code you write against these tools.
66
+ Configuration is kept in [`.rubocop.yml`](.rubocop.yml) and
67
+ [`.eslintrc.yml`](.eslintrc.yml).
68
+
69
+ [Rubocop]: https://github.com/bbatsov/rubocop
70
+ [ESLint]: http://eslint.org/
71
+
72
+ ## Deployment
73
+
74
+ There are two versions of the app, staging and production, and they are hosted
75
+ on [Heroku].
76
+
77
+ To deploy staging, choose one of:
22
78
 
23
- Use the following guides for getting things done, programming well, and
24
- programming in style.
79
+ bin/deploy staging
80
+ bin/deploy production
25
81
 
26
- * [Protocol](http://github.com/thoughtbot/guides/blob/master/protocol)
27
- * [Best Practices](http://github.com/thoughtbot/guides/blob/master/best-practices)
28
- * [Style](http://github.com/thoughtbot/guides/blob/master/style)
82
+ [Heroku]: http://heroku.com
@@ -5,6 +5,7 @@
5
5
  *.swp
6
6
  /.bundle
7
7
  /.env.local
8
+ /bower_components
8
9
  /coverage/*
9
10
  /db/*.sqlite3
10
11
  /log/*
@@ -0,0 +1,76 @@
1
+ #!/bin/bash
2
+
3
+ # Set up the application.
4
+ # Run this script immediately after cloning the codebase.
5
+
6
+ # Exit if any command fails
7
+ set -e
8
+
9
+ echo "=== Ensuring current Ruby version is installed ==="
10
+ if [[ ! "$(ruby -v)" =~ "<%= Armadura::RUBY_VERSION %>" ]]; then
11
+ if which rbenv &>/dev/null; then
12
+ rbenv install <%= Armadura::RUBY_VERSION %>
13
+ else
14
+ echo "You don't have Ruby <%= Armadura::RUBY_VERSION %> installed."
15
+ echo "Use a Ruby version manager such as rbenv or RVM to install it,"
16
+ echo " then re-run this script when you're done."
17
+ exit 1
18
+ fi
19
+ fi
20
+
21
+ echo "=== Ensuring Postgres is installed ==="
22
+ if ! which pg_config &>/dev/null; then
23
+ brew install postgresql
24
+ brew services install postgresql
25
+ fi
26
+
27
+ echo "=== Ensuring Redis is installed ==="
28
+ if ! which redis-cli &>/dev/null; then
29
+ brew install redis
30
+ brew services install redis
31
+ fi
32
+
33
+ echo "=== Ensuring Node is installed ==="
34
+ if ! which node &>/dev/null; then
35
+ brew install nodejs
36
+ fi
37
+
38
+ echo "=== Ensuring Heroku is installed ==="
39
+ if ! which heroku &>/dev/null; then
40
+ brew install heroku-toolbelt
41
+ fi
42
+
43
+ echo "=== Ensuring Bower is installed ==="
44
+ if ! which bower &>/dev/null; then
45
+ npm install -g bower
46
+ fi
47
+
48
+ echo "=== Ensuring Rubocop is installed ==="
49
+ if ! which rubocop &>/dev/null; then
50
+ gem install rubocop
51
+ fi
52
+
53
+ echo "=== Ensuring ESLint is installed ==="
54
+ if ! which eslint &>/dev/null; then
55
+ npm install -g eslint
56
+ fi
57
+
58
+ echo "=== Installing Ruby dependencies ==="
59
+ gem install bundler --conservative
60
+ bundle check || bundle install
61
+
62
+ echo "=== Installing JavaScript dependencies ==="
63
+ bower install
64
+
65
+ echo "=== Setting up database ==="
66
+ bin/rake dev:prime
67
+
68
+ echo "=== Adding binstubs to PATH ==="
69
+ mkdir -p .git/safe
70
+
71
+ if [[ -z "$CI" ]]; then
72
+ if [[ ! -f .env.local ]]; then
73
+ echo "=== Copying .env to .env.local ==="
74
+ cp .env .env.local
75
+ fi
76
+ fi
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "<%= app_name %>",
3
+ "version": "0.0.0",
4
+ "main": "",
5
+ "private": true,
6
+ "dependencies": {
7
+ }
8
+ }
@@ -0,0 +1,49 @@
1
+ ---
2
+ env:
3
+ browser: true
4
+ es6: true
5
+ jquery: true
6
+ extends: "eslint:recommended"
7
+ rules:
8
+ array-bracket-spacing: error
9
+ array-callback-return: error
10
+ block-scoped-var: error
11
+ block-spacing: error
12
+ brace-style: error
13
+ camelcase: error
14
+ comma-dangle: ["error", "always-multiline"]
15
+ comma-style: error
16
+ complexity: error
17
+ curly: error
18
+ default-case: error
19
+ eol-last: error
20
+ eqeqeq: ["error", "smart"]
21
+ func-call-spacing: error
22
+ indent: ["error", 2]
23
+ max-len: error
24
+ no-caller: error
25
+ no-catch-shadow: error
26
+ no-lonely-if: error
27
+ no-loop-func: error
28
+ no-magic-numbers: error
29
+ no-multiple-empty-lines: error
30
+ no-param-reassign: error
31
+ no-redeclare: error
32
+ no-shadow: error
33
+ no-ternary: error
34
+ no-trailing-spaces: error
35
+ no-unneeded-ternary: error
36
+ no-unused-expressions: error
37
+ no-var: error
38
+ no-with: error
39
+ one-var: ["error", "never"]
40
+ prefer-const: error
41
+ prefer-rest-arguments: error
42
+ prefer-spread: error
43
+ prefer-template: error
44
+ quotes: error
45
+ semi: ["error", "never"]
46
+ space-before-blocks: error
47
+ vars-on-top: error
48
+ wrap-iife: error
49
+ yoda: error
@@ -0,0 +1,632 @@
1
+ AllCops:
2
+ Exclude:
3
+ - db/schema.rb
4
+
5
+ Style/AccessorMethodName:
6
+ Description: Check the naming of accessor methods for get_/set_.
7
+ Enabled: false
8
+
9
+ Style/Alias:
10
+ Description: 'Use alias_method instead of alias.'
11
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#alias-method'
12
+ Enabled: false
13
+
14
+ Style/ArrayJoin:
15
+ Description: 'Use Array#join instead of Array#*.'
16
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#array-join'
17
+ Enabled: false
18
+
19
+ Style/AsciiComments:
20
+ Description: 'Use only ascii symbols in comments.'
21
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-comments'
22
+ Enabled: false
23
+
24
+ Style/AsciiIdentifiers:
25
+ Description: 'Use only ascii symbols in identifiers.'
26
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#english-identifiers'
27
+ Enabled: false
28
+
29
+ Style/Attr:
30
+ Description: 'Checks for uses of Module#attr.'
31
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr'
32
+ Enabled: false
33
+
34
+ Metrics/BlockNesting:
35
+ Description: 'Avoid excessive block nesting'
36
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#three-is-the-number-thou-shalt-count'
37
+ Enabled: false
38
+
39
+ Style/CaseEquality:
40
+ Description: 'Avoid explicit use of the case equality operator(===).'
41
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-case-equality'
42
+ Enabled: false
43
+
44
+ Style/CharacterLiteral:
45
+ Description: 'Checks for uses of character literals.'
46
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
47
+ Enabled: false
48
+
49
+ Style/ClassAndModuleChildren:
50
+ Description: 'Checks style of children classes and modules.'
51
+ Enabled: true
52
+ EnforcedStyle: nested
53
+
54
+ Metrics/ClassLength:
55
+ Description: 'Avoid classes longer than 100 lines of code.'
56
+ Enabled: false
57
+
58
+ Metrics/ModuleLength:
59
+ Description: 'Avoid modules longer than 100 lines of code.'
60
+ Enabled: false
61
+
62
+ Style/ClassVars:
63
+ Description: 'Avoid the use of class variables.'
64
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-class-vars'
65
+ Enabled: false
66
+
67
+ Style/CollectionMethods:
68
+ Enabled: true
69
+ PreferredMethods:
70
+ find: detect
71
+ inject: reduce
72
+ collect: map
73
+ find_all: select
74
+
75
+ Style/ColonMethodCall:
76
+ Description: 'Do not use :: for method call.'
77
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#double-colons'
78
+ Enabled: false
79
+
80
+ Style/CommentAnnotation:
81
+ Description: >-
82
+ Checks formatting of special comments
83
+ (TODO, FIXME, OPTIMIZE, HACK, REVIEW).
84
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#annotate-keywords'
85
+ Enabled: false
86
+
87
+ Metrics/AbcSize:
88
+ Description: >-
89
+ A calculated magnitude based on number of assignments,
90
+ branches, and conditions.
91
+ Enabled: false
92
+
93
+ Metrics/CyclomaticComplexity:
94
+ Description: >-
95
+ A complexity metric that is strongly correlated to the number
96
+ of test cases needed to validate a method.
97
+ Enabled: false
98
+
99
+ Rails/Delegate:
100
+ Description: 'Prefer delegate method for delegations.'
101
+ Enabled: false
102
+
103
+ Style/DeprecatedHashMethods:
104
+ Description: 'Checks for use of deprecated Hash methods.'
105
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#hash-key'
106
+ Enabled: false
107
+
108
+ Style/Documentation:
109
+ Description: 'Document classes and non-namespace modules.'
110
+ Enabled: false
111
+
112
+ Style/DotPosition:
113
+ Description: 'Checks the position of the dot in multi-line method calls.'
114
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains'
115
+ EnforcedStyle: trailing
116
+
117
+ Style/DoubleNegation:
118
+ Description: 'Checks for uses of double negation (!!).'
119
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-bang-bang'
120
+ Enabled: false
121
+
122
+ Style/EachWithObject:
123
+ Description: 'Prefer `each_with_object` over `inject` or `reduce`.'
124
+ Enabled: false
125
+
126
+ Style/EmptyLiteral:
127
+ Description: 'Prefer literals to Array.new/Hash.new/String.new.'
128
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#literal-array-hash'
129
+ Enabled: false
130
+
131
+ # Checks whether the source file has a utf-8 encoding comment or not
132
+ # AutoCorrectEncodingComment must match the regex
133
+ # /#.*coding\s?[:=]\s?(?:UTF|utf)-8/
134
+ Style/Encoding:
135
+ Enabled: false
136
+
137
+ Style/EvenOdd:
138
+ Description: 'Favor the use of Fixnum#even? && Fixnum#odd?'
139
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
140
+ Enabled: false
141
+
142
+ Style/ExtraSpacing:
143
+ Description: 'Do not use unnecessary spacing.'
144
+ Enabled: true
145
+
146
+ Style/FileName:
147
+ Description: 'Use snake_case for source file names.'
148
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#snake-case-files'
149
+ Enabled: false
150
+
151
+ Style/FrozenStringLiteralComment:
152
+ Description: >-
153
+ Add the frozen_string_literal comment to the top of files
154
+ to help transition from Ruby 2.3.0 to Ruby 3.0.
155
+ Enabled: false
156
+
157
+ Style/FlipFlop:
158
+ Description: 'Checks for flip flops'
159
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-flip-flops'
160
+ Enabled: false
161
+
162
+ Style/FormatString:
163
+ Description: 'Enforce the use of Kernel#sprintf, Kernel#format or String#%.'
164
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#sprintf'
165
+ Enabled: false
166
+
167
+ Style/GlobalVars:
168
+ Description: 'Do not introduce global variables.'
169
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#instance-vars'
170
+ Reference: 'http://www.zenspider.com/Languages/Ruby/QuickRef.html'
171
+ Enabled: false
172
+
173
+ Style/GuardClause:
174
+ Description: 'Check for conditionals that can be replaced with guard clauses'
175
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
176
+ Enabled: false
177
+
178
+ Style/IfUnlessModifier:
179
+ Description: >-
180
+ Favor modifier if/unless usage when you have a
181
+ single-line body.
182
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier'
183
+ Enabled: false
184
+
185
+ Style/IfWithSemicolon:
186
+ Description: 'Do not use if x; .... Use the ternary operator instead.'
187
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-semicolon-ifs'
188
+ Enabled: false
189
+
190
+ Style/InlineComment:
191
+ Description: 'Avoid inline comments.'
192
+ Enabled: false
193
+
194
+ Style/Lambda:
195
+ Description: 'Use the new lambda literal syntax for single-line blocks.'
196
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
197
+ Enabled: false
198
+
199
+ Style/LambdaCall:
200
+ Description: 'Use lambda.call(...) instead of lambda.(...).'
201
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc-call'
202
+ Enabled: false
203
+
204
+ Style/LineEndConcatenation:
205
+ Description: >-
206
+ Use \ instead of + or << to concatenate two string literals at
207
+ line end.
208
+ Enabled: false
209
+
210
+ Metrics/LineLength:
211
+ Description: 'Limit lines to 80 characters.'
212
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#80-character-limits'
213
+ Max: 80
214
+
215
+ Metrics/MethodLength:
216
+ Description: 'Avoid methods longer than 10 lines of code.'
217
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#short-methods'
218
+ Enabled: false
219
+
220
+ Style/ModuleFunction:
221
+ Description: 'Checks for usage of `extend self` in modules.'
222
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#module-function'
223
+ Enabled: false
224
+
225
+ Style/MultilineOperationIndentation:
226
+ Description: >-
227
+ Checks indentation of binary operations that span more than
228
+ one line.
229
+ Enabled: true
230
+ EnforcedStyle: indented
231
+
232
+ Style/MultilineBlockChain:
233
+ Description: 'Avoid multi-line chains of blocks.'
234
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#single-line-blocks'
235
+ Enabled: false
236
+
237
+ Style/MultilineMethodCallIndentation:
238
+ Description: >-
239
+ Checks indentation of method calls with the dot operator
240
+ that span more than one line.
241
+ Enabled: true
242
+ EnforcedStyle: indented
243
+
244
+ Style/NegatedIf:
245
+ Description: >-
246
+ Favor unless over if for negative conditions
247
+ (or control flow or).
248
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#unless-for-negatives'
249
+ Enabled: false
250
+
251
+ Style/NegatedWhile:
252
+ Description: 'Favor until over while for negative conditions.'
253
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#until-for-negatives'
254
+ Enabled: false
255
+
256
+ Style/Next:
257
+ Description: 'Use `next` to skip iteration instead of a condition at the end.'
258
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals'
259
+ Enabled: false
260
+
261
+ Style/NilComparison:
262
+ Description: 'Prefer x.nil? to x == nil.'
263
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#predicate-methods'
264
+ Enabled: false
265
+
266
+ Style/Not:
267
+ Description: 'Use ! instead of not.'
268
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bang-not-not'
269
+ Enabled: false
270
+
271
+ Style/NumericLiterals:
272
+ Description: >-
273
+ Add underscores to large numeric literals to improve their
274
+ readability.
275
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
276
+ Enabled: false
277
+
278
+ Style/OneLineConditional:
279
+ Description: >-
280
+ Favor the ternary operator(?:) over
281
+ if/then/else/end constructs.
282
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#ternary-operator'
283
+ Enabled: false
284
+
285
+ Style/OpMethod:
286
+ Description: 'When defining binary operators, name the argument other.'
287
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#other-arg'
288
+ Enabled: false
289
+
290
+ Metrics/ParameterLists:
291
+ Description: 'Avoid parameter lists longer than three or four parameters.'
292
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#too-many-params'
293
+ Enabled: false
294
+
295
+ Style/PercentLiteralDelimiters:
296
+ Description: 'Use `%`-literal delimiters consistently'
297
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-literal-braces'
298
+ Enabled: false
299
+
300
+ Style/PerlBackrefs:
301
+ Description: 'Avoid Perl-style regex back references.'
302
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers'
303
+ Enabled: false
304
+
305
+ Style/PredicateName:
306
+ Description: 'Check the names of predicate methods.'
307
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark'
308
+ NamePrefixBlacklist:
309
+ - is_
310
+ Exclude:
311
+ - spec/**/*
312
+
313
+ Style/Proc:
314
+ Description: 'Use proc instead of Proc.new.'
315
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#proc'
316
+ Enabled: false
317
+
318
+ Style/RaiseArgs:
319
+ Description: 'Checks the arguments passed to raise/fail.'
320
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#exception-class-messages'
321
+ Enabled: false
322
+
323
+ Style/RegexpLiteral:
324
+ Description: 'Use / or %r around regular expressions.'
325
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-r'
326
+ Enabled: false
327
+
328
+ Style/SelfAssignment:
329
+ Description: >-
330
+ Checks for places where self-assignment shorthand should have
331
+ been used.
332
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#self-assignment'
333
+ Enabled: false
334
+
335
+ Style/SingleLineBlockParams:
336
+ Description: 'Enforces the names of some block params.'
337
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#reduce-blocks'
338
+ Enabled: false
339
+
340
+ Style/SingleLineMethods:
341
+ Description: 'Avoid single-line methods.'
342
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-single-line-methods'
343
+ Enabled: false
344
+
345
+ Style/SignalException:
346
+ Description: 'Checks for proper usage of fail and raise.'
347
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#fail-method'
348
+ Enabled: false
349
+
350
+ Style/SpecialGlobalVars:
351
+ Description: 'Avoid Perl-style global variables.'
352
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms'
353
+ Enabled: false
354
+
355
+ Style/StringLiterals:
356
+ Description: 'Checks if uses of quotes match the configured preference.'
357
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
358
+ EnforcedStyle: double_quotes
359
+ Enabled: true
360
+
361
+ Style/TrailingCommaInArguments:
362
+ Description: 'Checks for trailing comma in argument lists.'
363
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
364
+ EnforcedStyleForMultiline: comma
365
+ SupportedStyles:
366
+ - comma
367
+ - consistent_comma
368
+ - no_comma
369
+ Enabled: true
370
+
371
+ Style/TrailingCommaInLiteral:
372
+ Description: 'Checks for trailing comma in array and hash literals.'
373
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
374
+ EnforcedStyleForMultiline: comma
375
+ SupportedStyles:
376
+ - comma
377
+ - consistent_comma
378
+ - no_comma
379
+ Enabled: true
380
+
381
+ Style/TrivialAccessors:
382
+ Description: 'Prefer attr_* methods to trivial readers/writers.'
383
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#attr_family'
384
+ Enabled: false
385
+
386
+ Style/VariableInterpolation:
387
+ Description: >-
388
+ Don't interpolate global, instance and class variables
389
+ directly in strings.
390
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#curlies-interpolate'
391
+ Enabled: false
392
+
393
+ Style/WhenThen:
394
+ Description: 'Use when x then ... for one-line cases.'
395
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#one-line-cases'
396
+ Enabled: false
397
+
398
+ Style/WhileUntilModifier:
399
+ Description: >-
400
+ Favor modifier while/until usage when you have a
401
+ single-line body.
402
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#while-as-a-modifier'
403
+ Enabled: false
404
+
405
+ Style/WordArray:
406
+ Description: 'Use %w or %W for arrays of words.'
407
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
408
+ Enabled: false
409
+
410
+ # Lint
411
+
412
+ Lint/AmbiguousOperator:
413
+ Description: >-
414
+ Checks for ambiguous operators in the first argument of a
415
+ method invocation without parentheses.
416
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-as-args'
417
+ Enabled: false
418
+
419
+ Lint/AmbiguousRegexpLiteral:
420
+ Description: >-
421
+ Checks for ambiguous regexp literals in the first argument of
422
+ a method invocation without parenthesis.
423
+ Enabled: false
424
+
425
+ Lint/AssignmentInCondition:
426
+ Description: "Don't use assignment in conditions."
427
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition'
428
+ Enabled: false
429
+
430
+ Lint/CircularArgumentReference:
431
+ Description: "Don't refer to the keyword argument in the default value."
432
+ Enabled: false
433
+
434
+ Lint/ConditionPosition:
435
+ Description: >-
436
+ Checks for condition placed in a confusing position relative to
437
+ the keyword.
438
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#same-line-condition'
439
+ Enabled: false
440
+
441
+ Lint/DeprecatedClassMethods:
442
+ Description: 'Check for deprecated class method calls.'
443
+ Enabled: false
444
+
445
+ Lint/DuplicatedKey:
446
+ Description: 'Check for duplicate keys in hash literals.'
447
+ Enabled: false
448
+
449
+ Lint/EachWithObjectArgument:
450
+ Description: 'Check for immutable argument given to each_with_object.'
451
+ Enabled: false
452
+
453
+ Lint/ElseLayout:
454
+ Description: 'Check for odd code arrangement in an else block.'
455
+ Enabled: false
456
+
457
+ Lint/FormatParameterMismatch:
458
+ Description: 'The number of parameters to format/sprint must match the fields.'
459
+ Enabled: false
460
+
461
+ Lint/HandleExceptions:
462
+ Description: "Don't suppress exception."
463
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions'
464
+ Enabled: false
465
+
466
+ Lint/InvalidCharacterLiteral:
467
+ Description: >-
468
+ Checks for invalid character literals with a non-escaped
469
+ whitespace character.
470
+ Enabled: false
471
+
472
+ Style/InitialIndentation:
473
+ Description: >-
474
+ Checks the indentation of the first non-blank non-comment line in a file.
475
+ Enabled: false
476
+
477
+ Lint/LiteralInCondition:
478
+ Description: 'Checks of literals used in conditions.'
479
+ Enabled: false
480
+
481
+ Lint/LiteralInInterpolation:
482
+ Description: 'Checks for literals used in interpolation.'
483
+ Enabled: false
484
+
485
+ Lint/Loop:
486
+ Description: >-
487
+ Use Kernel#loop with break rather than begin/end/until or
488
+ begin/end/while for post-loop tests.
489
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#loop-with-break'
490
+ Enabled: false
491
+
492
+ Lint/NestedMethodDefinition:
493
+ Description: 'Do not use nested method definitions.'
494
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-nested-methods'
495
+ Enabled: false
496
+
497
+ Lint/NonLocalExitFromIterator:
498
+ Description: 'Do not use return in iterator to cause non-local exit.'
499
+ Enabled: false
500
+
501
+ Lint/ParenthesesAsGroupedExpression:
502
+ Description: >-
503
+ Checks for method calls with a space before the opening
504
+ parenthesis.
505
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#parens-no-spaces'
506
+ Enabled: false
507
+
508
+ Lint/RequireParentheses:
509
+ Description: >-
510
+ Use parentheses in the method call to avoid confusion
511
+ about precedence.
512
+ Enabled: false
513
+
514
+ Lint/UnderscorePrefixedVariableName:
515
+ Description: 'Do not use prefix `_` for a variable that is used.'
516
+ Enabled: false
517
+
518
+ Lint/UnneededDisable:
519
+ Description: >-
520
+ Checks for rubocop:disable comments that can be removed.
521
+ Note: this cop is not disabled when disabling all cops.
522
+ It must be explicitly disabled.
523
+ Enabled: false
524
+
525
+ Lint/Void:
526
+ Description: 'Possible use of operator/literal/variable in void context.'
527
+ Enabled: false
528
+
529
+ # Performance
530
+
531
+ Performance/CaseWhenSplat:
532
+ Description: >-
533
+ Place `when` conditions that use splat at the end
534
+ of the list of `when` branches.
535
+ Enabled: false
536
+
537
+ Performance/Count:
538
+ Description: >-
539
+ Use `count` instead of `select...size`, `reject...size`,
540
+ `select...count`, `reject...count`, `select...length`,
541
+ and `reject...length`.
542
+ Enabled: false
543
+
544
+ Performance/Detect:
545
+ Description: >-
546
+ Use `detect` instead of `select.first`, `find_all.first`,
547
+ `select.last`, and `find_all.last`.
548
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerabledetect-vs-enumerableselectfirst-code'
549
+ Enabled: false
550
+
551
+ Performance/FlatMap:
552
+ Description: >-
553
+ Use `Enumerable#flat_map`
554
+ instead of `Enumerable#map...Array#flatten(1)`
555
+ or `Enumberable#collect..Array#flatten(1)`
556
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablemaparrayflatten-vs-enumerableflat_map-code'
557
+ Enabled: false
558
+
559
+ Performance/ReverseEach:
560
+ Description: 'Use `reverse_each` instead of `reverse.each`.'
561
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#enumerablereverseeach-vs-enumerablereverse_each-code'
562
+ Enabled: false
563
+
564
+ Performance/Sample:
565
+ Description: >-
566
+ Use `sample` instead of `shuffle.first`,
567
+ `shuffle.last`, and `shuffle[Fixnum]`.
568
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arrayshufflefirst-vs-arraysample-code'
569
+ Enabled: false
570
+
571
+ Performance/Size:
572
+ Description: >-
573
+ Use `size` instead of `count` for counting
574
+ the number of elements in `Array` and `Hash`.
575
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#arraycount-vs-arraysize-code'
576
+ Enabled: false
577
+
578
+ Performance/StringReplacement:
579
+ Description: >-
580
+ Use `tr` instead of `gsub` when you are replacing the same
581
+ number of characters. Use `delete` instead of `gsub` when
582
+ you are deleting characters.
583
+ Reference: 'https://github.com/JuanitoFatas/fast-ruby#stringgsub-vs-stringtr-code'
584
+ Enabled: false
585
+
586
+ # Rails
587
+
588
+ Rails/ActionFilter:
589
+ Description: 'Enforces consistent use of action filter methods.'
590
+ Enabled: false
591
+
592
+ Rails/Date:
593
+ Description: >-
594
+ Checks the correct usage of date aware methods,
595
+ such as Date.today, Date.current etc.
596
+ Enabled: false
597
+
598
+ Rails/FindBy:
599
+ Description: 'Prefer find_by over where.first.'
600
+ Enabled: false
601
+
602
+ Rails/FindEach:
603
+ Description: 'Prefer all.find_each over all.find.'
604
+ Enabled: false
605
+
606
+ Rails/HasAndBelongsToMany:
607
+ Description: 'Prefer has_many :through to has_and_belongs_to_many.'
608
+ Enabled: false
609
+
610
+ Rails/Output:
611
+ Description: 'Checks for calls to puts, print, etc.'
612
+ Enabled: false
613
+
614
+ Rails/ReadWriteAttribute:
615
+ Description: >-
616
+ Checks for read_attribute(:attr) and
617
+ write_attribute(:attr, val).
618
+ Enabled: false
619
+
620
+ Rails/ScopeArgs:
621
+ Description: 'Checks the arguments of ActiveRecord scopes.'
622
+ Enabled: false
623
+
624
+ Rails/TimeZone:
625
+ Description: 'Checks the correct usage of time zone aware methods.'
626
+ StyleGuide: 'https://github.com/bbatsov/rails-style-guide#time'
627
+ Reference: 'http://danilenko.org/2012/7/6/rails_timezones'
628
+ Enabled: false
629
+
630
+ Rails/Validation:
631
+ Description: 'Use validates :attribute, hash of validations.'
632
+ Enabled: false
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: armadura
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
- - Elliot Winkler <elliot.winkler@gmail.com>
7
+ - Elliot Winkler (elliot.winkler@gmail.com)
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-19 00:00:00.000000000 Z
11
+ date: 2016-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bitters
@@ -79,6 +79,7 @@ files:
79
79
  - ".ruby-version"
80
80
  - ".travis.yml"
81
81
  - Gemfile
82
+ - HISTORY.md
82
83
  - LICENSE
83
84
  - README.md
84
85
  - Rakefile
@@ -99,11 +100,13 @@ files:
99
100
  - spec/adapters/heroku_spec.rb
100
101
  - spec/fakes/bin/heroku
101
102
  - spec/fakes/bin/hub
103
+ - spec/features/bower_spec.rb
102
104
  - spec/features/cli_help_spec.rb
103
105
  - spec/features/github_spec.rb
104
106
  - spec/features/heroku_spec.rb
105
107
  - spec/features/new_project_spec.rb
106
108
  - spec/features/sidekiq_spec.rb
109
+ - spec/features/teaspoon_spec.rb
107
110
  - spec/spec_helper.rb
108
111
  - spec/support/armadura.rb
109
112
  - spec/support/fake_github.rb
@@ -121,8 +124,9 @@ files:
121
124
  - templates/armadura_gitignore
122
125
  - templates/armadura_layout.html.erb.erb
123
126
  - templates/bin_deploy
124
- - templates/bin_setup
127
+ - templates/bin_setup.erb
125
128
  - templates/bin_setup_review_app.erb
129
+ - templates/bower.json.erb
126
130
  - templates/browserslist
127
131
  - templates/bundler_audit.rake
128
132
  - templates/capybara_webkit.rb
@@ -132,6 +136,8 @@ files:
132
136
  - templates/dev.rake
133
137
  - templates/dotfiles/.ctags
134
138
  - templates/dotfiles/.env
139
+ - templates/dotfiles/.eslintrc.yml
140
+ - templates/dotfiles/.rubocop.yml
135
141
  - templates/errors.rb
136
142
  - templates/factories.rb
137
143
  - templates/factory_girl_rspec.rb
@@ -177,11 +183,13 @@ test_files:
177
183
  - spec/adapters/heroku_spec.rb
178
184
  - spec/fakes/bin/heroku
179
185
  - spec/fakes/bin/hub
186
+ - spec/features/bower_spec.rb
180
187
  - spec/features/cli_help_spec.rb
181
188
  - spec/features/github_spec.rb
182
189
  - spec/features/heroku_spec.rb
183
190
  - spec/features/new_project_spec.rb
184
191
  - spec/features/sidekiq_spec.rb
192
+ - spec/features/teaspoon_spec.rb
185
193
  - spec/spec_helper.rb
186
194
  - spec/support/armadura.rb
187
195
  - spec/support/fake_github.rb
@@ -1,22 +0,0 @@
1
- #!/bin/sh
2
-
3
- # Set up Rails app. Run this script immediately after cloning the codebase.
4
- # https://github.com/thoughtbot/guides/tree/master/protocol
5
-
6
- # Exit if any subcommand fails
7
- set -e
8
-
9
- # Set up Ruby dependencies via Bundler
10
- gem install bundler --conservative
11
- bundle check || bundle install
12
-
13
- # Set up database and add any development seed data
14
- bin/rake dev:prime
15
-
16
- # Add binstubs to PATH via export PATH=".git/safe/../../bin:$PATH" in ~/.zshenv
17
- mkdir -p .git/safe
18
-
19
- # Only if this isn't CI
20
- if [ -z "$CI" ]; then
21
- cp .env .env.local
22
- fi