mecha 0.6.0 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +17 -2
- data/lib/mecha/generators/app/app_builder.rb +10 -12
- data/lib/mecha/generators/assets/assets_generator.rb +2 -4
- data/lib/mecha/generators/devise/devise_generator.rb +3 -3
- data/lib/mecha/generators/sentry/sentry_generator.rb +58 -0
- data/lib/mecha/generators/sentry/templates/rubocop.yml +47 -0
- data/lib/mecha/generators/simplecov/simplecov_generator.rb +6 -0
- data/lib/mecha/version.rb +1 -1
- data/lib/mecha.rb +4 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4bfaaf4d0c582b9c4cd4745fe762809bc8ba211
|
4
|
+
data.tar.gz: e4422a8542e9f4203479df2d5998b580ee102f85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ee898f6a81fd948fcd5923d853d5f33468cc1b3915450b2afafd8d7e1cc68fa723680fb8b775f03634f165fe6e9171f00a603a3baf7ec08aed7b8e4b09a043e
|
7
|
+
data.tar.gz: '072928907be9afdd4d0199cafd24a22c08c7a71dabaca0e336f9d030cd1ef47fb1a8a2cfdd6ccf6bcb9b0e37aa311c908fbf3343335f92f8bcbbd5836c2fbd96'
|
data/README.md
CHANGED
@@ -19,10 +19,25 @@ gem install mecha
|
|
19
19
|
## Usage
|
20
20
|
|
21
21
|
```bash
|
22
|
-
mecha <projectname>
|
22
|
+
mecha <projectname> --devise --bitbucket-pipelines --sentry
|
23
23
|
```
|
24
24
|
|
25
|
-
This will create a Rails app with name `<projectname>` and add all our defaults.
|
25
|
+
This will create a Rails app with name `<projectname>` and add all our defaults. It configures the app to use sass, remove turbolinks and coffescript, configure Guard, Rubocop and Simplecov. Also, installs Factory Girl, Faker, Timecop, Capibara, Poltergeist, Database Rewinder.
|
26
|
+
|
27
|
+
### Available Generators
|
28
|
+
|
29
|
+
**Devise**
|
30
|
+
|
31
|
+
`--devise` installs Devise, generates `User`, i18n files and the internatinalized views for english and brazillian portuguese.
|
32
|
+
|
33
|
+
**Bitbucket Pipelines**
|
34
|
+
|
35
|
+
`--bitbucket-pipelines` generates the `bitbucket-pipelines.yml` and a special database config for it.
|
36
|
+
|
37
|
+
**Sentry**
|
38
|
+
|
39
|
+
`--sentry` installs sentry and adds configs to `application.rb` and `application_controller.rb`. Remember to create an environment
|
40
|
+
variable with you dsn key. `ENV['DNS']`.
|
26
41
|
|
27
42
|
## Development
|
28
43
|
|
@@ -19,8 +19,8 @@ module Mecha
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def config_application
|
22
|
-
|
23
|
-
|
22
|
+
application(config_autoload_paths)
|
23
|
+
application(config_generators)
|
24
24
|
create_file('app/services/.keep')
|
25
25
|
create_file('app/uploaders/.keep')
|
26
26
|
end
|
@@ -32,20 +32,18 @@ module Mecha
|
|
32
32
|
private
|
33
33
|
|
34
34
|
def config_autoload_paths
|
35
|
-
|
36
|
-
config.autoload_paths += %W(\#{config.root}/lib \#{config.root}/app/uploaders \#{config.root}/services)
|
37
|
-
DOC
|
35
|
+
"config.autoload_paths += %W(\#{config.root}/lib \#{config.root}/app/uploaders \#{config.root}/services)"
|
38
36
|
end
|
39
37
|
|
40
38
|
def config_generators
|
41
39
|
<<-DOC
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
40
|
+
config.generators do |g|
|
41
|
+
g.view_specs false
|
42
|
+
g.routing_specs false
|
43
|
+
g.stylesheets false
|
44
|
+
g.javascripts false
|
45
|
+
g.helper false
|
46
|
+
end
|
49
47
|
DOC
|
50
48
|
end
|
51
49
|
end
|
@@ -11,15 +11,13 @@ module Mecha
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def config_application
|
14
|
-
|
14
|
+
application(config_assets_precompile)
|
15
15
|
end
|
16
16
|
|
17
17
|
private
|
18
18
|
|
19
19
|
def config_assets_precompile
|
20
|
-
|
21
|
-
config.assets.initialize_on_precompile = false
|
22
|
-
DOC
|
20
|
+
'config.assets.initialize_on_precompile = false'
|
23
21
|
end
|
24
22
|
end
|
25
23
|
end
|
@@ -15,7 +15,7 @@ module Mecha
|
|
15
15
|
|
16
16
|
stop_spring
|
17
17
|
|
18
|
-
generate('devise:install'
|
18
|
+
generate('devise:install')
|
19
19
|
end
|
20
20
|
|
21
21
|
def generate_devise_user
|
@@ -27,8 +27,8 @@ module Mecha
|
|
27
27
|
generate('devise:i18n:locale pt-BR')
|
28
28
|
|
29
29
|
empty_directory('config/locales/devise')
|
30
|
-
|
31
|
-
|
30
|
+
move_file('config/locales/devise.views.en.yml', 'config/locales/devise/views.en.yml')
|
31
|
+
move_file('config/locales/devise.views.pt-BR.yml', 'config/locales/devise/views.pt-BR.yml')
|
32
32
|
remove_file('config/locales/devise.en.yml')
|
33
33
|
end
|
34
34
|
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Mecha
|
4
|
+
module Generators
|
5
|
+
class SentryGenerator < Rails::Generators::Base
|
6
|
+
def add_gem
|
7
|
+
gem 'sentry-raven'
|
8
|
+
end
|
9
|
+
|
10
|
+
def config_application_rb
|
11
|
+
application(config_sentry)
|
12
|
+
application('config.filter_parameters << :password')
|
13
|
+
environment('config.action_dispatch.show_exceptions = false', env: 'production')
|
14
|
+
end
|
15
|
+
|
16
|
+
def config_application_controller
|
17
|
+
inject_into_file(
|
18
|
+
'app/controllers/application_controller.rb',
|
19
|
+
application_controller_set_raven_context,
|
20
|
+
before: "end"
|
21
|
+
)
|
22
|
+
|
23
|
+
inject_into_file(
|
24
|
+
'app/controllers/application_controller.rb',
|
25
|
+
application_controller_before_action,
|
26
|
+
after: 'class ApplicationController < ActionController::Base'
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def config_sentry
|
33
|
+
<<-DOC
|
34
|
+
Raven.configure do |config|
|
35
|
+
config.dsn = ENV['DNS'] || ''
|
36
|
+
config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s)
|
37
|
+
config.environments = ['staging', 'production']
|
38
|
+
end
|
39
|
+
DOC
|
40
|
+
end
|
41
|
+
|
42
|
+
def application_controller_before_action
|
43
|
+
"\n before_action :set_raven_context"
|
44
|
+
end
|
45
|
+
|
46
|
+
def application_controller_set_raven_context
|
47
|
+
<<-DOC
|
48
|
+
\n private
|
49
|
+
|
50
|
+
def set_raven_context
|
51
|
+
Raven.user_context(id: session[:current_user_id])
|
52
|
+
Raven.extra_context(params: params.to_unsafe_h, url: request.url)
|
53
|
+
end
|
54
|
+
DOC
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
Rails:
|
2
|
+
Enabled: true
|
3
|
+
|
4
|
+
AllCops:
|
5
|
+
Exclude:
|
6
|
+
- 'db/schema.rb'
|
7
|
+
- 'bin/**'
|
8
|
+
- 'vendor/**/*'
|
9
|
+
- 'tmp/**/*'
|
10
|
+
- 'Guardfile'
|
11
|
+
- 'config/**/*'
|
12
|
+
- 'lib/tasks/*.rake'
|
13
|
+
|
14
|
+
Documentation:
|
15
|
+
Enabled: false
|
16
|
+
|
17
|
+
Metrics/AbcSize:
|
18
|
+
Exclude:
|
19
|
+
- 'db/**/*'
|
20
|
+
|
21
|
+
Metrics/BlockLength:
|
22
|
+
Exclude:
|
23
|
+
- 'Rakefile'
|
24
|
+
- '**/*.rake'
|
25
|
+
- 'test/**/*'
|
26
|
+
|
27
|
+
Metrics/ClassLength:
|
28
|
+
Exclude:
|
29
|
+
- 'test/**/*'
|
30
|
+
|
31
|
+
Metrics/BlockLength:
|
32
|
+
Exclude:
|
33
|
+
- 'db/migrate/**'
|
34
|
+
- 'test/**/*'
|
35
|
+
|
36
|
+
Metrics/LineLength:
|
37
|
+
Max: 120
|
38
|
+
|
39
|
+
Metrics/MethodLength:
|
40
|
+
Exclude:
|
41
|
+
- 'db/migrate/**'
|
42
|
+
- 'test/**/*'
|
43
|
+
|
44
|
+
Style/ClassAndModuleChildren:
|
45
|
+
EnforcedStyle: nested
|
46
|
+
Exclude:
|
47
|
+
- 'test/test_helper.rb'
|
@@ -5,6 +5,12 @@ module Mecha
|
|
5
5
|
class SimplecovGenerator < Rails::Generators::Base
|
6
6
|
source_root File.join(File.dirname(__FILE__), 'templates')
|
7
7
|
|
8
|
+
def add_gem
|
9
|
+
gem_group :test do
|
10
|
+
gem 'simplecov', require: false
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
8
14
|
def copy_simplecov
|
9
15
|
copy_file('simplecov', '.simplecov')
|
10
16
|
end
|
data/lib/mecha/version.rb
CHANGED
data/lib/mecha.rb
CHANGED
@@ -10,12 +10,14 @@ require 'mecha/generators/i18n/i18n_generator'
|
|
10
10
|
require 'mecha/generators/tests/tests_generator'
|
11
11
|
require 'mecha/generators/bitbucket_pipelines/bitbucket_pipelines_generator'
|
12
12
|
require 'mecha/generators/devise/devise_generator'
|
13
|
+
require 'mecha/generators/sentry/sentry_generator'
|
13
14
|
|
14
15
|
module Mecha
|
15
16
|
def self.opts
|
16
17
|
Slop.parse do |o|
|
17
|
-
o.bool '--devise', 'install and config Devise'
|
18
18
|
o.bool '--bitbucket-pipelines', 'config Bitbucket Pipelines'
|
19
|
+
o.bool '--devise', 'install and config Devise'
|
20
|
+
o.bool '--sentry', 'install and config Sentry'
|
19
21
|
o.on '--version', 'print the gem version' do
|
20
22
|
puts Mecha::VERSION
|
21
23
|
exit
|
@@ -37,5 +39,6 @@ module Mecha
|
|
37
39
|
Mecha::Generators::TestsGenerator.start
|
38
40
|
Mecha::Generators::BitbucketPipelinesGenerator.start if Mecha.opts.bitbucket_pipelines?
|
39
41
|
Mecha::Generators::DeviseGenerator.start if Mecha.opts.devise?
|
42
|
+
Mecha::Generators::SentryGenerator.start if Mecha.opts.sentry?
|
40
43
|
end
|
41
44
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mecha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Magrathea Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -178,6 +178,8 @@ files:
|
|
178
178
|
- lib/mecha/generators/i18n/templates/config/locales/pt-BR.yml
|
179
179
|
- lib/mecha/generators/rubocop/rubocop_generator.rb
|
180
180
|
- lib/mecha/generators/rubocop/templates/rubocop.yml
|
181
|
+
- lib/mecha/generators/sentry/sentry_generator.rb
|
182
|
+
- lib/mecha/generators/sentry/templates/rubocop.yml
|
181
183
|
- lib/mecha/generators/simplecov/simplecov_generator.rb
|
182
184
|
- lib/mecha/generators/simplecov/templates/simplecov
|
183
185
|
- lib/mecha/generators/tests/templates/test/factories/.keep
|