mecha 0.5.0 → 0.5.1
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 +4 -4
- data/bin/mecha +1 -16
- data/lib/mecha.rb +29 -15
- data/lib/mecha/generators/app/app_builder.rb +22 -0
- data/lib/mecha/generators/app/app_generator.rb +24 -0
- data/lib/mecha/{templates → generators/app/templates}/Gemfile.erb +1 -2
- data/lib/mecha/{templates → generators/app/templates}/README.md.erb +0 -0
- data/lib/mecha/{templates → generators/app/templates}/config/databases/postgresql.yml.erb +0 -0
- data/lib/mecha/generators/app/templates/gitignore.erb +26 -0
- data/lib/mecha/generators/assets/assets_generator.rb +14 -0
- data/lib/mecha/generators/bitbucket_pipelines/bitbucket_pipelines_generator.rb +23 -0
- data/lib/mecha/{templates → generators/bitbucket_pipelines/templates}/bitbucket-pipelines.yml.erb +1 -1
- data/lib/mecha/{templates/config/databases/postgresql.ci.yml.erb → generators/bitbucket_pipelines/templates/config/databases/postgresql.bitbucket.yml.erb} +0 -1
- data/lib/mecha/generators/devise/devise_generator.rb +32 -0
- data/lib/mecha/generators/guard/guard_generator.rb +13 -0
- data/lib/mecha/{templates → generators/guard/templates}/Guardfile +0 -0
- data/lib/mecha/generators/rubocop/rubocop_generator.rb +13 -0
- data/lib/mecha/{templates → generators/rubocop/templates}/rubocop.yml +0 -0
- data/lib/mecha/generators/simplecov/simplecov_generator.rb +13 -0
- data/lib/mecha/{templates → generators/simplecov/templates}/simplecov +0 -0
- data/lib/mecha/version.rb +1 -1
- data/mecha.gemspec +4 -0
- metadata +75 -14
- data/lib/mecha/app_builder.rb +0 -106
- data/lib/mecha/generators/app_generator.rb +0 -14
- data/lib/mecha/support/string.rb +0 -17
- data/lib/mecha/templates/test_helper.rb +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48fd5d5af8a8c0c30a7f7e90dc81c4d61554a71b
|
4
|
+
data.tar.gz: 45781da71831e52200c9f835866d99d6337c4c94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d04f2fa03f42bc1723d42aa8e2957e0d2070e68e41049242982c8558086ab3611f00b0a1ab0489bf1fb01baecf9779bd3a17e9a3e097da661aa69c290291a52
|
7
|
+
data.tar.gz: b5a4d1ce808f3331260c10c035cd3637c7e10311e5eff0f4ed6d9589e14f43e9a24c2189cee01e968c7f6b955ce9d74ae0ea5dd61c68417dd6d3dea727990aba
|
data/bin/mecha
CHANGED
@@ -2,21 +2,6 @@
|
|
2
2
|
|
3
3
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
4
4
|
|
5
|
-
require 'slop'
|
6
5
|
require 'mecha'
|
7
6
|
|
8
|
-
Mecha.
|
9
|
-
o.bool '-d', '--devise', 'install and config Devise'
|
10
|
-
o.bool '-bp', '--bitbucket-pipelines', 'config Bitbucket Pipelines'
|
11
|
-
o.on '--version', 'print the gem version' do
|
12
|
-
puts Mecha::VERSION
|
13
|
-
exit
|
14
|
-
end
|
15
|
-
o.on '--help', 'list options' do
|
16
|
-
puts o
|
17
|
-
exit
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
Mecha.config_templates_path
|
22
|
-
Mecha::AppGenerator.start
|
7
|
+
Mecha.start
|
data/lib/mecha.rb
CHANGED
@@ -1,23 +1,37 @@
|
|
1
|
+
require 'slop'
|
2
|
+
|
1
3
|
require 'mecha/version'
|
2
|
-
require 'mecha/generators/app_generator'
|
3
|
-
require 'mecha/
|
4
|
-
require 'mecha/
|
4
|
+
require 'mecha/generators/app/app_generator'
|
5
|
+
require 'mecha/generators/assets/assets_generator'
|
6
|
+
require 'mecha/generators/guard/guard_generator'
|
7
|
+
require 'mecha/generators/rubocop/rubocop_generator'
|
8
|
+
require 'mecha/generators/simplecov/simplecov_generator'
|
9
|
+
require 'mecha/generators/bitbucket_pipelines/bitbucket_pipelines_generator'
|
10
|
+
require 'mecha/generators/devise/devise_generator'
|
5
11
|
|
6
12
|
module Mecha
|
7
|
-
@opts = nil
|
8
|
-
|
9
|
-
def self.opts=(opts)
|
10
|
-
@opts = opts
|
11
|
-
end
|
12
|
-
|
13
13
|
def self.opts
|
14
|
-
|
14
|
+
Slop.parse do |o|
|
15
|
+
o.bool '--devise', 'install and config Devise'
|
16
|
+
o.bool '--bitbucket-pipelines', 'config Bitbucket Pipelines'
|
17
|
+
o.on '--version', 'print the gem version' do
|
18
|
+
puts Mecha::VERSION
|
19
|
+
exit
|
20
|
+
end
|
21
|
+
o.on '--help', 'list options' do
|
22
|
+
puts o
|
23
|
+
exit
|
24
|
+
end
|
25
|
+
end
|
15
26
|
end
|
16
27
|
|
17
|
-
def self.
|
18
|
-
|
19
|
-
Mecha::
|
20
|
-
Mecha::
|
21
|
-
Mecha::
|
28
|
+
def self.start
|
29
|
+
Mecha::Generators::AppGenerator.start
|
30
|
+
Mecha::Generators::AssetsGenerator.start
|
31
|
+
Mecha::Generators::GuardGenerator.start
|
32
|
+
Mecha::Generators::RubocopGenerator.start
|
33
|
+
Mecha::Generators::SimplecovGenerator.start
|
34
|
+
Mecha::Generators::BitbucketPipelinesGenerator.start if Mecha.opts.bitbucket_pipelines?
|
35
|
+
Mecha::Generators::DeviseGenerator.start if Mecha.opts.devise?
|
22
36
|
end
|
23
37
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Mecha
|
2
|
+
module Generators
|
3
|
+
class AppBuilder < Rails::AppBuilder
|
4
|
+
def readme
|
5
|
+
template('README.md.erb', 'README.md')
|
6
|
+
end
|
7
|
+
|
8
|
+
def gemfile
|
9
|
+
template('Gemfile.erb', 'Gemfile')
|
10
|
+
end
|
11
|
+
|
12
|
+
def gitignore
|
13
|
+
template('gitignore.erb', '.gitignore')
|
14
|
+
end
|
15
|
+
|
16
|
+
def database_yml
|
17
|
+
template "config/databases/#{options[:database]}.yml.erb", 'config/database.example.yml'
|
18
|
+
template "config/databases/#{options[:database]}.yml.erb", 'config/database.yml'
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'rails/generators/rails/app/app_generator'
|
3
|
+
require 'mecha/generators/app/app_builder'
|
4
|
+
|
5
|
+
module Mecha
|
6
|
+
module Generators
|
7
|
+
class AppGenerator < Rails::Generators::AppGenerator
|
8
|
+
class_option :database, type: :string, default: 'postgresql'
|
9
|
+
class_option :skip_action_cable, type: :boolean, default: true
|
10
|
+
class_option :skip_coffee, type: :boolean, default: true
|
11
|
+
class_option :skip_turbolinks, type: :boolean, default: true
|
12
|
+
|
13
|
+
source_paths << Rails::Generators::AppGenerator.source_root
|
14
|
+
source_paths << File.join(File.dirname(__FILE__), 'templates')
|
15
|
+
source_root File.join(File.dirname(__FILE__), 'templates')
|
16
|
+
|
17
|
+
protected
|
18
|
+
|
19
|
+
def get_builder_class
|
20
|
+
Mecha::Generators::AppBuilder
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -11,9 +11,8 @@ gem 'rails', '<%= Mecha::RAILS_VERSION %>'
|
|
11
11
|
gem 'pg', '~> 0.18.4'
|
12
12
|
gem 'puma', '~> 3.8.0'
|
13
13
|
|
14
|
-
<%= "gem 'devise', '~> 4.2'\n" unless Mecha.opts.skip_devise? -%>
|
15
|
-
|
16
14
|
gem 'jquery-rails', '~> 4.3.1'
|
15
|
+
gem 'sass-rails'
|
17
16
|
gem 'uglifier', '~> 3.1.12'
|
18
17
|
|
19
18
|
group :development, :test do
|
File without changes
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
2
|
+
|
3
|
+
# Ignore bundler config.
|
4
|
+
/.bundle
|
5
|
+
|
6
|
+
<% if sqlite3? -%>
|
7
|
+
# Ignore the default SQLite database.
|
8
|
+
/db/*.sqlite3
|
9
|
+
/db/*.sqlite3-journal
|
10
|
+
|
11
|
+
<% end -%>
|
12
|
+
# Ignore all logfiles and tempfiles.
|
13
|
+
/log/*
|
14
|
+
/tmp/*
|
15
|
+
<% if keeps? -%>
|
16
|
+
!/log/.keep
|
17
|
+
!/tmp/.keep
|
18
|
+
<% end -%>
|
19
|
+
|
20
|
+
# Ignore Byebug command history file.
|
21
|
+
.byebug_history
|
22
|
+
|
23
|
+
.DS_Store
|
24
|
+
/.env
|
25
|
+
/config/database.yml
|
26
|
+
/coverage
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Mecha
|
4
|
+
module Generators
|
5
|
+
class AssetsGenerator < Rails::Generators::Base
|
6
|
+
hide!
|
7
|
+
|
8
|
+
def install_scss
|
9
|
+
create_file('app/assets/stylesheets/application.scss')
|
10
|
+
remove_file('app/assets/stylesheets/application.css')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Mecha
|
4
|
+
module Generators
|
5
|
+
class BitbucketPipelinesGenerator < Rails::Generators::Base
|
6
|
+
source_root File.join(File.dirname(__FILE__), 'templates')
|
7
|
+
|
8
|
+
class_option :database, type: 'string', default: 'postgresql', aliases: '-d'
|
9
|
+
|
10
|
+
def copy_bitbucket_pipelines
|
11
|
+
puts(options)
|
12
|
+
template("config/databases/#{options[:database]}.bitbucket.yml.erb", 'config/database.bitbucket.yml')
|
13
|
+
template('bitbucket-pipelines.yml.erb', 'bitbucket-pipelines.yml')
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def app_name
|
19
|
+
File.basename(destination_root).tr('\\', '').tr('. ', '_')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/mecha/{templates → generators/bitbucket_pipelines/templates}/bitbucket-pipelines.yml.erb
RENAMED
@@ -10,7 +10,7 @@ pipelines:
|
|
10
10
|
- /etc/init.d/postgresql start
|
11
11
|
- sudo -u postgres sh -c 'createuser <%= app_name.underscore %>_test & createdb <%= app_name.underscore %>_test'
|
12
12
|
- sudo -u postgres psql -c "ALTER USER <%= app_name.underscore %>_test PASSWORD '<%= app_name.underscore %>_test' CREATEDB SUPERUSER;"
|
13
|
-
- cp config/database.
|
13
|
+
- cp config/database.bitbucket.yml config/database.yml
|
14
14
|
- apt-get update -yqqq
|
15
15
|
- apt-get -qq -y --force-yes install apt-utils bzip2 nodejs-legacy npm
|
16
16
|
- npm install -g phantomjs-prebuilt
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'rails/generators/rails/app/app_generator'
|
3
|
+
require 'mecha/generators/app/app_builder'
|
4
|
+
|
5
|
+
module Mecha
|
6
|
+
module Generators
|
7
|
+
class DeviseGenerator < Rails::Generators::Base
|
8
|
+
source_root File.join(File.dirname(__FILE__), 'templates')
|
9
|
+
|
10
|
+
def generate_devise
|
11
|
+
gem('devise', '~> 4.2')
|
12
|
+
say_status(:run, 'bundle install')
|
13
|
+
|
14
|
+
generate('devise:install')
|
15
|
+
generate('devise User')
|
16
|
+
generate('devise:views')
|
17
|
+
end
|
18
|
+
|
19
|
+
def config_development_rb
|
20
|
+
environment("config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }", env: 'development')
|
21
|
+
end
|
22
|
+
|
23
|
+
def config_application_controller
|
24
|
+
inject_into_file(
|
25
|
+
'app/controllers/application_controller.rb',
|
26
|
+
"\n before_action :authenticate_user!",
|
27
|
+
before: "\nend"
|
28
|
+
)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Mecha
|
4
|
+
module Generators
|
5
|
+
class GuardGenerator < Rails::Generators::Base
|
6
|
+
source_root File.join(File.dirname(__FILE__), 'templates')
|
7
|
+
|
8
|
+
def copy_guardfile
|
9
|
+
copy_file('Guardfile', 'Guardfile')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Mecha
|
4
|
+
module Generators
|
5
|
+
class RubocopGenerator < Rails::Generators::Base
|
6
|
+
source_root File.join(File.dirname(__FILE__), 'templates')
|
7
|
+
|
8
|
+
def copy_rubocop
|
9
|
+
copy_file('rubocop.yml', '.rubocop.yml')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Mecha
|
4
|
+
module Generators
|
5
|
+
class SimplecovGenerator < Rails::Generators::Base
|
6
|
+
source_root File.join(File.dirname(__FILE__), 'templates')
|
7
|
+
|
8
|
+
def copy_simplecov
|
9
|
+
copy_file('simplecov', '.simplecov')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
File without changes
|
data/lib/mecha/version.rb
CHANGED
data/mecha.gemspec
CHANGED
@@ -33,4 +33,8 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_development_dependency 'bundler'
|
34
34
|
spec.add_development_dependency 'rake'
|
35
35
|
spec.add_development_dependency 'minitest'
|
36
|
+
spec.add_development_dependency 'minitest-reporters'
|
37
|
+
spec.add_development_dependency 'guard', '>=2.1.0'
|
38
|
+
spec.add_development_dependency 'guard-minitest'
|
39
|
+
spec.add_development_dependency 'pry', '>= 0.9.12'
|
36
40
|
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.5.
|
4
|
+
version: 0.5.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-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -80,6 +80,62 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: minitest-reporters
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: guard
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.1.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.1.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: guard-minitest
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: pry
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.9.12
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.9.12
|
83
139
|
description: Mecha is used by MLabs to bootstrap working apps with our defaults.
|
84
140
|
email:
|
85
141
|
- contact@magrathealabs.com
|
@@ -102,18 +158,23 @@ files:
|
|
102
158
|
- bin/rake
|
103
159
|
- bin/setup
|
104
160
|
- lib/mecha.rb
|
105
|
-
- lib/mecha/app_builder.rb
|
106
|
-
- lib/mecha/generators/app_generator.rb
|
107
|
-
- lib/mecha/
|
108
|
-
- lib/mecha/templates/
|
109
|
-
- lib/mecha/templates/
|
110
|
-
- lib/mecha/templates/
|
111
|
-
- lib/mecha/
|
112
|
-
- lib/mecha/
|
113
|
-
- lib/mecha/
|
114
|
-
- lib/mecha/templates/
|
115
|
-
- lib/mecha/
|
116
|
-
- lib/mecha/
|
161
|
+
- lib/mecha/generators/app/app_builder.rb
|
162
|
+
- lib/mecha/generators/app/app_generator.rb
|
163
|
+
- lib/mecha/generators/app/templates/Gemfile.erb
|
164
|
+
- lib/mecha/generators/app/templates/README.md.erb
|
165
|
+
- lib/mecha/generators/app/templates/config/databases/postgresql.yml.erb
|
166
|
+
- lib/mecha/generators/app/templates/gitignore.erb
|
167
|
+
- lib/mecha/generators/assets/assets_generator.rb
|
168
|
+
- lib/mecha/generators/bitbucket_pipelines/bitbucket_pipelines_generator.rb
|
169
|
+
- lib/mecha/generators/bitbucket_pipelines/templates/bitbucket-pipelines.yml.erb
|
170
|
+
- lib/mecha/generators/bitbucket_pipelines/templates/config/databases/postgresql.bitbucket.yml.erb
|
171
|
+
- lib/mecha/generators/devise/devise_generator.rb
|
172
|
+
- lib/mecha/generators/guard/guard_generator.rb
|
173
|
+
- lib/mecha/generators/guard/templates/Guardfile
|
174
|
+
- lib/mecha/generators/rubocop/rubocop_generator.rb
|
175
|
+
- lib/mecha/generators/rubocop/templates/rubocop.yml
|
176
|
+
- lib/mecha/generators/simplecov/simplecov_generator.rb
|
177
|
+
- lib/mecha/generators/simplecov/templates/simplecov
|
117
178
|
- lib/mecha/version.rb
|
118
179
|
- mecha.gemspec
|
119
180
|
homepage: https://github.com/magrathealabs/mecha
|
data/lib/mecha/app_builder.rb
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
module Mecha
|
2
|
-
class AppBuilder < Rails::AppBuilder
|
3
|
-
def config_application
|
4
|
-
inject_into_class('config/application.rb', 'Application') { inject_to_application_rb }
|
5
|
-
end
|
6
|
-
|
7
|
-
def config_bitbucket_pipelines
|
8
|
-
return unless Mecha.opts.bitbucket_pipelines?
|
9
|
-
say('Config Bitbucket Pipelines', :green)
|
10
|
-
template('bitbucket-pipelines.yml.erb', 'bitbucket-pipelines.yml')
|
11
|
-
end
|
12
|
-
|
13
|
-
def config_devise
|
14
|
-
return unless Mecha.opts.devise?
|
15
|
-
say('Installing devise from generator', :green)
|
16
|
-
system('rails generate devise:install')
|
17
|
-
inject_into_file(
|
18
|
-
'config/environments/development.rb',
|
19
|
-
"\n\n config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }",
|
20
|
-
before: "\nend"
|
21
|
-
)
|
22
|
-
system('rails generate devise User')
|
23
|
-
system('rails generate devise:views')
|
24
|
-
inject_into_file(
|
25
|
-
'app/controllers/application_controller.rb',
|
26
|
-
"\n before_action :authenticate_user!",
|
27
|
-
before: "\nend"
|
28
|
-
)
|
29
|
-
end
|
30
|
-
|
31
|
-
def config_guardfile
|
32
|
-
copy_file('Guardfile', 'Guardfile')
|
33
|
-
end
|
34
|
-
|
35
|
-
def config_rubocop
|
36
|
-
copy_file('rubocop.yml', '.rubocop.yml')
|
37
|
-
end
|
38
|
-
|
39
|
-
def config_test
|
40
|
-
copy_file('test_helper.rb', 'test/test_helper.rb', force: true)
|
41
|
-
empty_directory_with_keep_file('test/factories')
|
42
|
-
empty_directory_with_keep_file('test/support/pages')
|
43
|
-
end
|
44
|
-
|
45
|
-
def database_yml
|
46
|
-
template "config/databases/#{options[:database]}.yml.erb", 'config/database.example.yml'
|
47
|
-
template "config/databases/#{options[:database]}.yml.erb", 'config/database.yml'
|
48
|
-
template "config/databases/#{options[:database]}.ci.yml.erb", 'config/database.ci.yml'
|
49
|
-
end
|
50
|
-
|
51
|
-
def gemfile
|
52
|
-
template('Gemfile.erb', 'Gemfile')
|
53
|
-
end
|
54
|
-
|
55
|
-
def gitignore
|
56
|
-
super
|
57
|
-
@generator.append_file('.gitignore', append_to_gitignore)
|
58
|
-
end
|
59
|
-
|
60
|
-
def readme
|
61
|
-
template('README.md.erb', 'README.md')
|
62
|
-
end
|
63
|
-
|
64
|
-
def config_simplecov
|
65
|
-
copy_file('simplecov', '.simplecov')
|
66
|
-
end
|
67
|
-
|
68
|
-
def leftovers
|
69
|
-
config_application
|
70
|
-
config_bitbucket_pipelines
|
71
|
-
config_devise
|
72
|
-
config_guardfile
|
73
|
-
config_rubocop
|
74
|
-
config_simplecov
|
75
|
-
config_test
|
76
|
-
end
|
77
|
-
|
78
|
-
private
|
79
|
-
|
80
|
-
def inject_to_application_rb
|
81
|
-
<<-DOC
|
82
|
-
config.assets.initialize_on_precompile = false
|
83
|
-
config.autoload_paths += %W(\#{config.root}/lib \#{config.root}/app/uploaders \#{config.root}/services)
|
84
|
-
config.i18n.default_locale = :'pt-BR'
|
85
|
-
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
|
86
|
-
config.generators do |g|
|
87
|
-
g.view_specs false
|
88
|
-
g.routing_specs false
|
89
|
-
g.stylesheets false
|
90
|
-
g.javascripts false
|
91
|
-
g.helper false
|
92
|
-
end
|
93
|
-
DOC
|
94
|
-
end
|
95
|
-
|
96
|
-
def append_to_gitignore
|
97
|
-
<<-DOC.strip_heredoc
|
98
|
-
.DS_Store
|
99
|
-
/.byebug_history
|
100
|
-
/.env
|
101
|
-
/config/database.yml
|
102
|
-
/coverage
|
103
|
-
DOC
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'rails/generators'
|
2
|
-
require 'rails/generators/rails/app/app_generator'
|
3
|
-
|
4
|
-
module Mecha
|
5
|
-
class AppGenerator < Rails::Generators::AppGenerator
|
6
|
-
class_option :database, default: 'postgresql'
|
7
|
-
|
8
|
-
protected
|
9
|
-
|
10
|
-
def get_builder_class
|
11
|
-
Mecha::AppBuilder
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
data/lib/mecha/support/string.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
class String
|
2
|
-
# Underscore a string, replacing dashes and spaces using underscores.
|
3
|
-
#
|
4
|
-
# @example Convert a camel case String to snake case
|
5
|
-
# 'Snake - Case'.snakecase #=> 'snake_case'
|
6
|
-
#
|
7
|
-
# @return [String] the object converted to underscore format.
|
8
|
-
def underscore
|
9
|
-
gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
10
|
-
.tr('-', '_')
|
11
|
-
.gsub(/\s/, '_')
|
12
|
-
.gsub(/__+/, '_')
|
13
|
-
.downcase
|
14
|
-
end
|
15
|
-
|
16
|
-
alias snakecase underscore
|
17
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
ENV['RAILS_ENV'] ||= 'test'
|
2
|
-
|
3
|
-
require 'simplecov'
|
4
|
-
SimpleCov.start
|
5
|
-
|
6
|
-
require File.expand_path('../../config/environment', __FILE__)
|
7
|
-
require 'rails/test_help'
|
8
|
-
require 'capybara/rails'
|
9
|
-
require 'capybara/poltergeist'
|
10
|
-
|
11
|
-
Dir[Rails.root.join('test', 'support', '**', '*.rb')].each { |f| require f }
|
12
|
-
|
13
|
-
Capybara.javascript_driver = :poltergeist
|
14
|
-
|
15
|
-
module ActiveSupport
|
16
|
-
class TestCase
|
17
|
-
include FactoryGirl::Syntax::Methods
|
18
|
-
|
19
|
-
self.use_transactional_tests = false
|
20
|
-
|
21
|
-
setup do
|
22
|
-
DatabaseRewinder.clean_all
|
23
|
-
end
|
24
|
-
|
25
|
-
teardown do
|
26
|
-
DatabaseRewinder.clean
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
module ActionDispatch
|
32
|
-
class IntegrationTest
|
33
|
-
include Devise::Test::IntegrationHelpers
|
34
|
-
include Capybara::DSL
|
35
|
-
|
36
|
-
teardown do
|
37
|
-
Capybara.reset_sessions!
|
38
|
-
Capybara.use_default_driver
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|