onotole 1.0.0 → 1.0.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 +4 -4
- data/.overcommit.yml +77 -0
- data/README.md +33 -15
- data/bin/install +2 -0
- data/bin/onotole +9 -1
- data/lib/onotole/add_user_gems/after_install_patch.rb +42 -42
- data/lib/onotole/add_user_gems/before_bundle_patch.rb +29 -0
- data/lib/onotole/add_user_gems/edit_menu_questions.rb +2 -0
- data/lib/onotole/add_user_gems/user_gems_menu_questions.rb +1 -0
- data/lib/onotole/app_builder.rb +14 -15
- data/lib/onotole/version.rb +1 -1
- data/templates/Gemfile.erb +3 -1
- data/templates/onotole_overcommit.yml +66 -0
- metadata +5 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f2d35567d2e83680c0ecb09bdfba6d8007f9e4fd
|
|
4
|
+
data.tar.gz: e67598e8e4dbd5ff6d38f71652b28b2dcfe75b75
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ebb7f5871c9ed6672ad5a8c28222b65c81a9c1e6609004489d1c14dc8d3f1fb6d115c2c416ceea1da1b809a0c882dc8562a37fa2bae2d9ec6e1af6f562745f8c
|
|
7
|
+
data.tar.gz: 123c47bcf58bea88492c2377ab2d4166fcaebab2500400856f25f86434961ed4a831bde3be6be2ad28ea2a3b23d6aea7bbfe805c92b2f1363bb496c7b44256d6
|
data/.overcommit.yml
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
CommitMsg:
|
|
2
|
+
ALL:
|
|
3
|
+
CapitalizedSubject:
|
|
4
|
+
enabled: true
|
|
5
|
+
description: 'Checking subject capitalization'
|
|
6
|
+
EmptyMessage:
|
|
7
|
+
enabled: true
|
|
8
|
+
description: 'Checking for empty commit message'
|
|
9
|
+
quiet: true
|
|
10
|
+
HardTabs:
|
|
11
|
+
enabled: true
|
|
12
|
+
description: 'Checking for hard tabs'
|
|
13
|
+
RussianNovel:
|
|
14
|
+
enabled: true
|
|
15
|
+
description: 'Checking length of commit message'
|
|
16
|
+
quiet: true
|
|
17
|
+
SingleLineSubject:
|
|
18
|
+
enabled: true
|
|
19
|
+
description: 'Checking subject line'
|
|
20
|
+
SpellCheck:
|
|
21
|
+
enabled: false
|
|
22
|
+
description: 'Checking for misspelled words'
|
|
23
|
+
required_executable: 'hunspell'
|
|
24
|
+
flags: ['-a']
|
|
25
|
+
TextWidth:
|
|
26
|
+
enabled: true
|
|
27
|
+
description: 'Checking text width'
|
|
28
|
+
max_subject_width: 60
|
|
29
|
+
max_body_width: 72
|
|
30
|
+
TrailingPeriod:
|
|
31
|
+
enabled: true
|
|
32
|
+
description: 'Checking for trailing periods in subject'
|
|
33
|
+
PreCommit:
|
|
34
|
+
ALL:
|
|
35
|
+
problem_on_unmodified_line: report
|
|
36
|
+
requires_files: true
|
|
37
|
+
required: false
|
|
38
|
+
quiet: false
|
|
39
|
+
AuthorEmail:
|
|
40
|
+
enabled: true
|
|
41
|
+
description: 'Checking author email'
|
|
42
|
+
requires_files: false
|
|
43
|
+
required: true
|
|
44
|
+
quiet: true
|
|
45
|
+
pattern: '^[^@]+@.*$'
|
|
46
|
+
AuthorName:
|
|
47
|
+
enabled: false
|
|
48
|
+
description: 'Checking for author name'
|
|
49
|
+
requires_files: false
|
|
50
|
+
required: true
|
|
51
|
+
quiet: true
|
|
52
|
+
BrokenSymlinks:
|
|
53
|
+
enabled: true
|
|
54
|
+
description: 'Checking for broken symlinks'
|
|
55
|
+
quiet: true
|
|
56
|
+
CaseConflicts:
|
|
57
|
+
enabled: true
|
|
58
|
+
description: 'Checking for case-insensitivity conflicts'
|
|
59
|
+
quiet: true
|
|
60
|
+
MergeConflicts:
|
|
61
|
+
enabled: true
|
|
62
|
+
description: 'Checking for merge conflicts'
|
|
63
|
+
quiet: true
|
|
64
|
+
required_executable: 'grep'
|
|
65
|
+
flags: ['-IHn', "^<<<<<<<[ \t]"]
|
|
66
|
+
RuboCop:
|
|
67
|
+
enabled: ture
|
|
68
|
+
description: 'Analyzing with RuboCop'
|
|
69
|
+
required_executable: 'rubocop'
|
|
70
|
+
flags: ['--format=emacs', '--force-exclusion', '--display-cop-names']
|
|
71
|
+
install_command: 'gem install rubocop'
|
|
72
|
+
include:
|
|
73
|
+
- '**/*.gemspec'
|
|
74
|
+
- '**/*.rake'
|
|
75
|
+
- '**/*.rb'
|
|
76
|
+
- '**/Gemfile'
|
|
77
|
+
- '**/Rakefile'
|
data/README.md
CHANGED
|
@@ -16,8 +16,11 @@ configured from the box. Cut `Bitters` as default choice.
|
|
|
16
16
|
|
|
17
17
|
As default uses the latest Ruby version and Rails '~> 4.2.0'
|
|
18
18
|
|
|
19
|
-
This user gem pack are available for installation
|
|
20
|
-
|
|
19
|
+
This user gem pack are available for custom installation (you will choose only
|
|
20
|
+
what you need) all of this will be available in customization menu with `-c`
|
|
21
|
+
flag usage (no default selected gems will be installed). Gems with `*` mark
|
|
22
|
+
will be installed as addition like default, if start `onotole` with out `-c`
|
|
23
|
+
flag.
|
|
21
24
|
|
|
22
25
|
* [Airbrake](https://github.com/airbrake/airbrake) for exception notification
|
|
23
26
|
* [bootstrap3](https://github.com/seyhunak/twitter-bootstrap-rails) Bootstrap
|
|
@@ -25,24 +28,24 @@ the box
|
|
|
25
28
|
* [bootstrap3_sass](https://github.com/twbs/bootstrap-sass) Bootstrap sass
|
|
26
29
|
* [bundler_audit](https://github.com/rubysec/bundler-audit) Patch-level
|
|
27
30
|
verification for Bundler
|
|
28
|
-
* [faker](https://github.com/stympy/faker) A library for generating fake data
|
|
31
|
+
* `*`[faker](https://github.com/stympy/faker) A library for generating fake data
|
|
29
32
|
such as names, addresses, and phone numbers.
|
|
30
|
-
* [guard](https://github.com/guard/guard) Guard is a command line tool to
|
|
33
|
+
* `*`[guard](https://github.com/guard/guard) Guard is a command line tool to
|
|
31
34
|
easily handle events on file system modifications. http://guardgem.org
|
|
32
35
|
* [guard_rubocop](https://github.com/yujinakayama/guard-rubocop) Guard plugin
|
|
33
36
|
for RuboCop
|
|
34
|
-
* [slim](https://github.com/slim-template/slim) Slim is a template language
|
|
37
|
+
* `*`[slim](https://github.com/slim-template/slim) Slim is a template language
|
|
35
38
|
whose goal is reduce the syntax to the essential parts without becoming
|
|
36
39
|
cryptic. http://slim-lang.com
|
|
37
40
|
* [html2slim](https://github.com/slim-template/html2slim) HTML2SLIM utility,
|
|
38
41
|
installs with slim
|
|
39
42
|
* [haml](https://github.com/haml/haml) HTML Abstraction Markup Language - A
|
|
40
43
|
Markup Haiku http://haml.info
|
|
41
|
-
* [meta_request](https://github.com/dejan/rails_panel/tree/master/meta_request)
|
|
44
|
+
* `*`[meta_request](https://github.com/dejan/rails_panel/tree/master/meta_request)
|
|
42
45
|
Supporting gem for Rails Panel (Google Chrome extension for Rails development).
|
|
43
46
|
* [rails_db](https://github.com/igorkasyanchuk/rails_db) Rails Database Viewer
|
|
44
47
|
and SQL Query Runner https://youtu.be/TYsRxXRFp1g
|
|
45
|
-
* [rubocop](https://github.com/bbatsov/rubocop) A Ruby static code analyzer,
|
|
48
|
+
* `*`[rubocop](https://github.com/bbatsov/rubocop) A Ruby static code analyzer,
|
|
46
49
|
based on the community Ruby style guide.
|
|
47
50
|
* [devise](https://github.com/plataformatec/devise) Flexible authentication
|
|
48
51
|
solution for Rails with Warden. http://blog.plataformatec.com.br/tag/devise/
|
|
@@ -51,15 +54,20 @@ the box
|
|
|
51
54
|
for Rails, Sinatra, Merb, DataMapper
|
|
52
55
|
* [will_paginate-bootstrap](https://github.com/bootstrap-ruby/will_paginate-bootstrap)
|
|
53
56
|
Integrates the Twitter Bootstrap pagination component with will_paginate
|
|
54
|
-
* [responders](https://github.com/plataformatec/responders) A set of responders
|
|
57
|
+
* `*`[responders](https://github.com/plataformatec/responders) A set of responders
|
|
55
58
|
modules to dry up your Rails 4.2+ app.
|
|
56
59
|
* [hirb-unicode](https://github.com/miaout17/hirb-unicode) Unicode support
|
|
57
60
|
for hirb
|
|
58
61
|
* [dotenv-heroku](https://github.com/sideshowcoder/dotenv-heroku) Addition for
|
|
59
62
|
quick variables export to heroku
|
|
60
|
-
* [tinymce-rails](https://github.com/spohlenz/tinymce-rails)Integration of
|
|
63
|
+
* [tinymce-rails](https://github.com/spohlenz/tinymce-rails) Integration of
|
|
61
64
|
TinyMCE with the Rails asset pipeline
|
|
65
|
+
* `*`[annotate](https://github.com/ctran/annotate_models) Annotate Rails classes
|
|
66
|
+
with schema and routes info
|
|
67
|
+
* `*`[overcommit](https://github.com/brigade/overcommit) A fully configurable
|
|
68
|
+
and extendable Git hook manager
|
|
62
69
|
|
|
70
|
+
Mandatory installation gem list you will find in `Gemfile` section
|
|
63
71
|
|
|
64
72
|
## Installation
|
|
65
73
|
|
|
@@ -67,7 +75,7 @@ First install the onotole gem add this in `Gemfile` and `bundle`
|
|
|
67
75
|
|
|
68
76
|
```
|
|
69
77
|
group :development do
|
|
70
|
-
gem 'onotole'
|
|
78
|
+
gem 'onotole', require: false
|
|
71
79
|
end
|
|
72
80
|
```
|
|
73
81
|
|
|
@@ -81,15 +89,15 @@ Create gemset if you need it.
|
|
|
81
89
|
|
|
82
90
|
Then run:
|
|
83
91
|
|
|
84
|
-
onotole projectname [ -c ] [ * rails_genetator_flags ]
|
|
92
|
+
`onotole projectname [ -c ] [ * rails_genetator_flags ]`
|
|
85
93
|
|
|
86
94
|
This will create a Rails app in `projectname` using the latest version of Rails.
|
|
87
95
|
|
|
88
|
-
onotole projectname -c
|
|
96
|
+
`onotole projectname -c`
|
|
89
97
|
|
|
90
98
|
And command like this will add some magic
|
|
91
99
|
|
|
92
|
-
onotole app * github organization/project * heroku true
|
|
100
|
+
`onotole app * github organization/project * heroku true`
|
|
93
101
|
|
|
94
102
|
This will provide a dialog, where you can select needed gems, also you can add
|
|
95
103
|
it with gemname flag, after app_name, like `onotole projectname --slim`.
|
|
@@ -150,6 +158,10 @@ And development gems like:
|
|
|
150
158
|
in-browser IRB consoles.
|
|
151
159
|
* [Quiet Assets](https://github.com/evrone/quiet_assets) for muting assets
|
|
152
160
|
pipeline log messages
|
|
161
|
+
* [Better_errors](https://github.com/charliesome/better_errors) Better error
|
|
162
|
+
page for Rack apps
|
|
163
|
+
* [Binding_of_caller](https://github.com/banister/binding_of_caller) Retrieve
|
|
164
|
+
the binding of a method's caller in MRI 1.9.2+
|
|
153
165
|
|
|
154
166
|
And testing gems like:
|
|
155
167
|
|
|
@@ -181,7 +193,6 @@ Onotole also comes with:
|
|
|
181
193
|
* The analytics adapter [Segment][segment] (and therefore config for Google
|
|
182
194
|
Analytics, Intercom, Facebook Ads, Twitter Ads, etc.)
|
|
183
195
|
|
|
184
|
-
|
|
185
196
|
## Heroku
|
|
186
197
|
|
|
187
198
|
You can optionally create Heroku staging and production apps:
|
|
@@ -220,7 +231,7 @@ bypass this with the ` * skip-git` option:
|
|
|
220
231
|
|
|
221
232
|
onotole app * skip-git true
|
|
222
233
|
|
|
223
|
-
## GitHub
|
|
234
|
+
## GitHub auto repository create
|
|
224
235
|
|
|
225
236
|
You can optionally create a GitHub repository for the suspended Rails app. It
|
|
226
237
|
requires that you have [Hub](https://github.com/github/hub) on your system:
|
|
@@ -283,6 +294,13 @@ If you find some misprints fell free to fix them.
|
|
|
283
294
|
|
|
284
295
|
Thank you!
|
|
285
296
|
|
|
297
|
+
## Direct GitHub gem installation
|
|
298
|
+
|
|
299
|
+
Gems, which have been installed from github, with 'github:' option in
|
|
300
|
+
`Gemfile.erb` will be automatically installed with `gem install` command. It made
|
|
301
|
+
for making available support fresh fixes. If you do not need it, use 'git:'
|
|
302
|
+
option with full gem trace.
|
|
303
|
+
|
|
286
304
|
## License
|
|
287
305
|
|
|
288
306
|
MIT Licence
|
data/bin/install
ADDED
data/bin/onotole
CHANGED
|
@@ -11,7 +11,15 @@ GEMPROCLIST = Onotole::AppBuilder.public_instance_methods.map(&:to_s)
|
|
|
11
11
|
.map { |a| a[4..-5].to_sym }
|
|
12
12
|
.sort
|
|
13
13
|
|
|
14
|
-
DEFAULT_GEMSET = [:slim,
|
|
14
|
+
DEFAULT_GEMSET = [:slim,
|
|
15
|
+
:faker,
|
|
16
|
+
:guard,
|
|
17
|
+
:rubocop,
|
|
18
|
+
:meta_request,
|
|
19
|
+
:clean_comments,
|
|
20
|
+
:responders,
|
|
21
|
+
:annotate,
|
|
22
|
+
:overcommit].freeze
|
|
15
23
|
|
|
16
24
|
if ['-v', '--version'].include? ARGV[0]
|
|
17
25
|
puts Onotole::VERSION
|
|
@@ -2,6 +2,8 @@ module Onotole
|
|
|
2
2
|
module AfterInstallPatch
|
|
3
3
|
def post_init
|
|
4
4
|
install_queue = [:responders,
|
|
5
|
+
:annotate,
|
|
6
|
+
:overcommit,
|
|
5
7
|
:guard,
|
|
6
8
|
:guard_rubocop,
|
|
7
9
|
:bootstrap3_sass,
|
|
@@ -11,51 +13,46 @@ module Onotole
|
|
|
11
13
|
:tinymce,
|
|
12
14
|
:rubocop,
|
|
13
15
|
:create_github_repo]
|
|
14
|
-
install_queue.each { |
|
|
16
|
+
install_queue.each { |g| send "after_install_#{g}" if user_choose? g }
|
|
15
17
|
delete_comments
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
def after_install_devise
|
|
19
|
-
generate
|
|
20
|
-
if AppBuilder.devise_model
|
|
21
|
-
generate
|
|
21
|
+
bundle_command 'exec rails generate devise:install'
|
|
22
|
+
if AppBuilder.devise_model
|
|
23
|
+
bundle_command "exec rails generate devise #{AppBuilder.devise_model.titleize}"
|
|
22
24
|
inject_into_file('app/controllers/application_controller.rb',
|
|
23
25
|
"\nbefore_action :authenticate_#{AppBuilder.devise_model.titleize}!",
|
|
24
26
|
after: 'before_action :configure_permitted_parameters, if: :devise_controller?')
|
|
25
27
|
end
|
|
26
28
|
if user_choose?(:bootstrap3)
|
|
27
|
-
generate
|
|
29
|
+
bundle_command 'exec rails generate devise:views:bootstrap_templates'
|
|
28
30
|
else
|
|
29
|
-
generate
|
|
31
|
+
bundle_command 'exec rails generate devise:views'
|
|
30
32
|
end
|
|
31
33
|
end
|
|
32
34
|
|
|
33
35
|
def after_install_rubocop
|
|
34
|
-
|
|
35
|
-
t = <<-TEXT
|
|
36
|
+
t = <<-TEXT
|
|
36
37
|
|
|
37
38
|
if ENV['RAILS_ENV'] == 'test' || ENV['RAILS_ENV'] == 'development'
|
|
38
39
|
require 'rubocop/rake_task'
|
|
39
40
|
RuboCop::RakeTask.new
|
|
40
41
|
end
|
|
41
42
|
TEXT
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
end
|
|
43
|
+
append_file 'Rakefile', t
|
|
44
|
+
bundle_command 'exec rubocop --auto-correct'
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def after_install_guard
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
'guard :puma, port: 3000 do', quiet_err = true
|
|
53
|
-
end
|
|
48
|
+
bundle_command 'exec guard init'
|
|
49
|
+
replace_in_file 'Guardfile',
|
|
50
|
+
"guard 'puma' do",
|
|
51
|
+
'guard :puma, port: 3000 do', quiet_err = true
|
|
54
52
|
end
|
|
55
53
|
|
|
56
54
|
def after_install_guard_rubocop
|
|
57
|
-
if user_choose?(:
|
|
58
|
-
|
|
55
|
+
if user_choose?(:guard) && user_choose?(:rubocop)
|
|
59
56
|
cover_def_by 'Guardfile', 'guard :rubocop do', 'group :red_green_refactor, halt_on_fail: true do'
|
|
60
57
|
cover_def_by 'Guardfile', 'guard :rspec, ', 'group :red_green_refactor, halt_on_fail: true do'
|
|
61
58
|
|
|
@@ -69,26 +66,22 @@ end
|
|
|
69
66
|
end
|
|
70
67
|
|
|
71
68
|
def after_install_bootstrap3_sass
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
after: '//= require jquery_ujs')
|
|
79
|
-
end
|
|
69
|
+
setup_stylesheets
|
|
70
|
+
AppBuilder.use_asset_pipelline = false
|
|
71
|
+
append_file(AppBuilder.app_file_scss,
|
|
72
|
+
"\n@import 'bootstrap-sprockets';\n@import 'bootstrap';")
|
|
73
|
+
inject_into_file(AppBuilder.js_file, "\n//= require bootstrap-sprockets",
|
|
74
|
+
after: '//= require jquery_ujs')
|
|
80
75
|
end
|
|
81
76
|
|
|
82
77
|
def after_install_bootstrap3
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
before: ' */')
|
|
91
|
-
end
|
|
78
|
+
AppBuilder.use_asset_pipelline = true
|
|
79
|
+
remove_file 'app/views/layouts/application.html.erb'
|
|
80
|
+
bundle_command 'exec rails generate bootstrap:install static'
|
|
81
|
+
bundle_command 'exec rails generate bootstrap:layout'
|
|
82
|
+
inject_into_file('app/assets/stylesheets/bootstrap_and_overrides.css',
|
|
83
|
+
" =require devise_bootstrap_views\n",
|
|
84
|
+
before: ' */')
|
|
92
85
|
end
|
|
93
86
|
|
|
94
87
|
def after_install_normalize
|
|
@@ -102,18 +95,25 @@ end
|
|
|
102
95
|
end
|
|
103
96
|
|
|
104
97
|
def after_install_tinymce
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
after: '//= require jquery_ujs')
|
|
108
|
-
end
|
|
98
|
+
inject_into_file(AppBuilder.js_file, "\n//= require tinymce-jquery",
|
|
99
|
+
after: '//= require jquery_ujs')
|
|
109
100
|
end
|
|
110
101
|
|
|
111
102
|
def after_install_responders
|
|
112
|
-
|
|
103
|
+
bundle_command 'exec rails generate responders:install'
|
|
113
104
|
end
|
|
114
105
|
|
|
115
106
|
def after_install_create_github_repo
|
|
116
|
-
create_github_repo(app_name)
|
|
107
|
+
create_github_repo(app_name)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def after_install_annotate
|
|
111
|
+
bundle_command 'exec rails generate annotate:install'
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def after_install_overcommit
|
|
115
|
+
bundle_command 'exec overcommit --install'
|
|
116
|
+
bundle_command 'exec overcommit --sign'
|
|
117
117
|
end
|
|
118
118
|
end
|
|
119
119
|
end
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
module Onotole
|
|
2
2
|
module BeforeBundlePatch
|
|
3
|
+
def setup_default_gems
|
|
4
|
+
add_to_user_choise(:normalize)
|
|
5
|
+
end
|
|
6
|
+
|
|
3
7
|
def add_user_gems
|
|
4
8
|
GEMPROCLIST.each do |g|
|
|
5
9
|
send "add_#{g}_gem" if user_choose? g.to_sym
|
|
@@ -133,5 +137,30 @@ module Onotole
|
|
|
133
137
|
inject_into_file('Gemfile', "\ngem 'tinymce-rails-langs'", after: '# user_choice')
|
|
134
138
|
copy_file 'tinymce.yml', 'config/tinymce.yml'
|
|
135
139
|
end
|
|
140
|
+
|
|
141
|
+
def add_annotate_gem
|
|
142
|
+
inject_into_file('Gemfile', "\n gem 'annotate'", after: 'group :development do')
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def add_overcommit_gem
|
|
146
|
+
inject_into_file('Gemfile', "\n gem 'overcommit'", after: 'group :development do')
|
|
147
|
+
copy_file 'onotole_overcommit.yml', '.overcommit.yml'
|
|
148
|
+
rubocop_overcommit = <<-OVER
|
|
149
|
+
RuboCop:
|
|
150
|
+
enabled: ture
|
|
151
|
+
description: 'Analyzing with RuboCop'
|
|
152
|
+
required_executable: 'rubocop'
|
|
153
|
+
flags: ['--format=emacs', '--force-exclusion', '--display-cop-names']
|
|
154
|
+
install_command: 'gem install rubocop'
|
|
155
|
+
include:
|
|
156
|
+
- '**/*.gemspec'
|
|
157
|
+
- '**/*.rake'
|
|
158
|
+
- '**/*.rb'
|
|
159
|
+
- '**/Gemfile'
|
|
160
|
+
- '**/Rakefile'
|
|
161
|
+
|
|
162
|
+
OVER
|
|
163
|
+
append_file '.overcommit.yml', rubocop_overcommit if user_choose?(:rubocop)
|
|
164
|
+
end
|
|
136
165
|
end
|
|
137
166
|
end
|
|
@@ -40,6 +40,8 @@ module Onotole
|
|
|
40
40
|
hirbunicode: 'Hirb unicode support',
|
|
41
41
|
dotenv_heroku: 'dotenv-heroku support',
|
|
42
42
|
tinymce: 'Integration of TinyMCE with the Rails asset pipeline',
|
|
43
|
+
annotate: 'Annotate Rails classes with schema and routes info',
|
|
44
|
+
overcommit: 'A fully configurable and extendable Git hook manager',
|
|
43
45
|
meta_request: "Rails meta panel in chrome console. Very usefull in AJAX debugging.\n#{' ' * 24}Link for chrome add-on in Gemfile.\n#{' ' * 24}Do not delete comments if you need this link"
|
|
44
46
|
}
|
|
45
47
|
multiple_choice('Write numbers of all preferred gems.', variants).each do |gem|
|
data/lib/onotole/app_builder.rb
CHANGED
|
@@ -223,15 +223,12 @@ end
|
|
|
223
223
|
end
|
|
224
224
|
|
|
225
225
|
def create_shared_flashes
|
|
226
|
-
copy_file '_flashes.html.erb',
|
|
227
|
-
|
|
228
|
-
copy_file 'flashes_helper.rb',
|
|
229
|
-
'app/helpers/flashes_helper.rb'
|
|
226
|
+
copy_file '_flashes.html.erb', 'app/views/application/_flashes.html.erb'
|
|
227
|
+
copy_file 'flashes_helper.rb', 'app/helpers/flashes_helper.rb'
|
|
230
228
|
end
|
|
231
229
|
|
|
232
230
|
def create_shared_javascripts
|
|
233
|
-
copy_file '_javascript.html.erb',
|
|
234
|
-
'app/views/application/_javascript.html.erb'
|
|
231
|
+
copy_file '_javascript.html.erb', 'app/views/application/_javascript.html.erb'
|
|
235
232
|
end
|
|
236
233
|
|
|
237
234
|
def create_application_layout
|
|
@@ -297,7 +294,7 @@ end
|
|
|
297
294
|
end
|
|
298
295
|
|
|
299
296
|
def configure_background_jobs_for_rspec
|
|
300
|
-
generate
|
|
297
|
+
bundle_command 'exec rails generate delayed_job:active_record'
|
|
301
298
|
end
|
|
302
299
|
|
|
303
300
|
def configure_action_mailer_in_specs
|
|
@@ -345,7 +342,7 @@ end
|
|
|
345
342
|
end
|
|
346
343
|
|
|
347
344
|
def generate_rspec
|
|
348
|
-
generate
|
|
345
|
+
bundle_command 'exec rails generate rspec:install'
|
|
349
346
|
end
|
|
350
347
|
|
|
351
348
|
def configure_puma
|
|
@@ -363,13 +360,13 @@ end
|
|
|
363
360
|
end
|
|
364
361
|
|
|
365
362
|
def install_refills
|
|
366
|
-
generate
|
|
363
|
+
bundle_command 'exec rails generate refills:import flashes'
|
|
367
364
|
run 'rm app/views/refills/_flashes.html.erb'
|
|
368
365
|
run 'rmdir app/views/refills'
|
|
369
366
|
end
|
|
370
367
|
|
|
371
368
|
def install_bitters
|
|
372
|
-
|
|
369
|
+
bundle_command 'exec bitters install --path app/assets/stylesheets'
|
|
373
370
|
end
|
|
374
371
|
|
|
375
372
|
def gitignore_files
|
|
@@ -451,7 +448,7 @@ you can deploy to staging and production with:
|
|
|
451
448
|
|
|
452
449
|
def setup_spring
|
|
453
450
|
bundle_command 'exec spring binstub --all'
|
|
454
|
-
|
|
451
|
+
bundle_command 'exec spring stop'
|
|
455
452
|
end
|
|
456
453
|
|
|
457
454
|
def copy_miscellaneous_files
|
|
@@ -543,8 +540,7 @@ end
|
|
|
543
540
|
def show_goodbye_message
|
|
544
541
|
say_color BOLDGREEN, "Congratulations! Onotole gives you: 'Intellect+= 1'"
|
|
545
542
|
say_color BOLDGREEN, "You can 'git push -u origin master' to your new repo
|
|
546
|
-
|
|
547
|
-
if user_choose? :create_github_repo
|
|
543
|
+
#{app_name} or check log for errors" if user_choose? :create_github_repo
|
|
548
544
|
say_color YELLOW, "Remember to run 'rails generate airbrake' with your API key." if user_choose? :airbrake
|
|
549
545
|
end
|
|
550
546
|
|
|
@@ -662,9 +658,12 @@ end
|
|
|
662
658
|
end
|
|
663
659
|
|
|
664
660
|
def install_from_github(gem_name)
|
|
661
|
+
# TODO: in case of bundler update `bundle show` do now work any more
|
|
662
|
+
return true
|
|
663
|
+
|
|
665
664
|
return nil unless gem_name
|
|
666
|
-
path = `bundle
|
|
667
|
-
run "cd #{path} && gem build #{gem_name}.gemspec && gem install
|
|
665
|
+
path = `cd #{Dir.pwd} && bundle show #{gem_name}`.chomp
|
|
666
|
+
run "cd #{path} && bundle exec gem build #{gem_name}.gemspec && bundle exec gem install *.gem"
|
|
668
667
|
end
|
|
669
668
|
|
|
670
669
|
def user_choose?(g)
|
data/lib/onotole/version.rb
CHANGED
data/templates/Gemfile.erb
CHANGED
|
@@ -19,6 +19,8 @@ gem "simple_form"
|
|
|
19
19
|
gem "title"
|
|
20
20
|
gem "uglifier"
|
|
21
21
|
gem "therubyracer"
|
|
22
|
+
gem 'rake', '~> 10.5.0'
|
|
23
|
+
gem "awesome_print", :require=>"ap"
|
|
22
24
|
# user_choice
|
|
23
25
|
|
|
24
26
|
group :development do
|
|
@@ -29,7 +31,6 @@ group :development do
|
|
|
29
31
|
end
|
|
30
32
|
|
|
31
33
|
group :development, :test do
|
|
32
|
-
gem "awesome_print", :require=>"ap"
|
|
33
34
|
gem "hirb"
|
|
34
35
|
gem "bullet"
|
|
35
36
|
gem "bundler-audit", require: false
|
|
@@ -41,6 +42,7 @@ group :development, :test do
|
|
|
41
42
|
gem 'pry-rescue'
|
|
42
43
|
gem 'pry-state'
|
|
43
44
|
gem 'better_errors'
|
|
45
|
+
gem 'binding_of_caller'
|
|
44
46
|
gem "rspec-rails", "~> 3.4.0"
|
|
45
47
|
gem 'fuubar'
|
|
46
48
|
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
CommitMsg:
|
|
2
|
+
ALL:
|
|
3
|
+
CapitalizedSubject:
|
|
4
|
+
enabled: true
|
|
5
|
+
description: 'Checking subject capitalization'
|
|
6
|
+
EmptyMessage:
|
|
7
|
+
enabled: true
|
|
8
|
+
description: 'Checking for empty commit message'
|
|
9
|
+
quiet: true
|
|
10
|
+
HardTabs:
|
|
11
|
+
enabled: true
|
|
12
|
+
description: 'Checking for hard tabs'
|
|
13
|
+
RussianNovel:
|
|
14
|
+
enabled: true
|
|
15
|
+
description: 'Checking length of commit message'
|
|
16
|
+
quiet: true
|
|
17
|
+
SingleLineSubject:
|
|
18
|
+
enabled: true
|
|
19
|
+
description: 'Checking subject line'
|
|
20
|
+
SpellCheck:
|
|
21
|
+
enabled: false
|
|
22
|
+
description: 'Checking for misspelled words'
|
|
23
|
+
required_executable: 'hunspell'
|
|
24
|
+
flags: ['-a']
|
|
25
|
+
TextWidth:
|
|
26
|
+
enabled: true
|
|
27
|
+
description: 'Checking text width'
|
|
28
|
+
max_subject_width: 60
|
|
29
|
+
max_body_width: 72
|
|
30
|
+
TrailingPeriod:
|
|
31
|
+
enabled: true
|
|
32
|
+
description: 'Checking for trailing periods in subject'
|
|
33
|
+
PreCommit:
|
|
34
|
+
ALL:
|
|
35
|
+
problem_on_unmodified_line: report
|
|
36
|
+
requires_files: true
|
|
37
|
+
required: false
|
|
38
|
+
quiet: false
|
|
39
|
+
AuthorEmail:
|
|
40
|
+
enabled: true
|
|
41
|
+
description: 'Checking author email'
|
|
42
|
+
requires_files: false
|
|
43
|
+
required: true
|
|
44
|
+
quiet: true
|
|
45
|
+
pattern: '^[^@]+@.*$'
|
|
46
|
+
AuthorName:
|
|
47
|
+
enabled: false
|
|
48
|
+
description: 'Checking for author name'
|
|
49
|
+
requires_files: false
|
|
50
|
+
required: true
|
|
51
|
+
quiet: true
|
|
52
|
+
BrokenSymlinks:
|
|
53
|
+
enabled: true
|
|
54
|
+
description: 'Checking for broken symlinks'
|
|
55
|
+
quiet: true
|
|
56
|
+
CaseConflicts:
|
|
57
|
+
enabled: true
|
|
58
|
+
description: 'Checking for case-insensitivity conflicts'
|
|
59
|
+
quiet: true
|
|
60
|
+
MergeConflicts:
|
|
61
|
+
enabled: true
|
|
62
|
+
description: 'Checking for merge conflicts'
|
|
63
|
+
quiet: true
|
|
64
|
+
required_executable: 'grep'
|
|
65
|
+
flags: ['-IHn', "^<<<<<<<[ \t]"]
|
|
66
|
+
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: onotole
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- kvokka
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2016-02-
|
|
12
|
+
date: 2016-02-10 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: bundler
|
|
@@ -65,6 +65,7 @@ extra_rdoc_files:
|
|
|
65
65
|
- LICENSE
|
|
66
66
|
files:
|
|
67
67
|
- ".gitignore"
|
|
68
|
+
- ".overcommit.yml"
|
|
68
69
|
- ".rubocop.yml"
|
|
69
70
|
- ".ruby-version"
|
|
70
71
|
- ".travis.yml"
|
|
@@ -73,6 +74,7 @@ files:
|
|
|
73
74
|
- LICENSE
|
|
74
75
|
- README.md
|
|
75
76
|
- Rakefile
|
|
77
|
+
- bin/install
|
|
76
78
|
- bin/onotole
|
|
77
79
|
- bin/rake
|
|
78
80
|
- bin/rspec
|
|
@@ -133,6 +135,7 @@ files:
|
|
|
133
135
|
- templates/json_encoding.rb
|
|
134
136
|
- templates/newrelic.yml.erb
|
|
135
137
|
- templates/onotole_layout.html.erb.erb
|
|
138
|
+
- templates/onotole_overcommit.yml
|
|
136
139
|
- templates/postgresql_database.yml.erb
|
|
137
140
|
- templates/puma.rb
|
|
138
141
|
- templates/rails_helper.rb
|