onotole 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/.rubocop.yml +44 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +11 -0
  6. data/Gemfile +3 -0
  7. data/Guardfile +60 -0
  8. data/LICENSE +19 -0
  9. data/README.md +288 -0
  10. data/Rakefile +8 -0
  11. data/bin/onotole +35 -0
  12. data/bin/rake +16 -0
  13. data/bin/rspec +16 -0
  14. data/bin/setup +13 -0
  15. data/lib/onotole.rb +6 -0
  16. data/lib/onotole/actions.rb +33 -0
  17. data/lib/onotole/adapters/heroku.rb +125 -0
  18. data/lib/onotole/add_user_gems/after_install_patch.rb +119 -0
  19. data/lib/onotole/add_user_gems/before_bundle_patch.rb +137 -0
  20. data/lib/onotole/add_user_gems/edit_menu_questions.rb +80 -0
  21. data/lib/onotole/add_user_gems/user_gems_menu_questions.rb +17 -0
  22. data/lib/onotole/app_builder.rb +678 -0
  23. data/lib/onotole/colors.rb +20 -0
  24. data/lib/onotole/generators/app_generator.rb +299 -0
  25. data/lib/onotole/version.rb +6 -0
  26. data/onotole.gemspec +33 -0
  27. data/spec/adapters/heroku_spec.rb +52 -0
  28. data/spec/fakes/bin/heroku +5 -0
  29. data/spec/fakes/bin/hub +5 -0
  30. data/spec/features/github_spec.rb +15 -0
  31. data/spec/features/heroku_spec.rb +93 -0
  32. data/spec/features/new_project_spec.rb +204 -0
  33. data/spec/spec_helper.rb +20 -0
  34. data/spec/support/fake_github.rb +21 -0
  35. data/spec/support/fake_heroku.rb +51 -0
  36. data/spec/support/onotole.rb +59 -0
  37. data/templates/Gemfile.erb +61 -0
  38. data/templates/Procfile +2 -0
  39. data/templates/README.md.erb +30 -0
  40. data/templates/_analytics.html.erb +7 -0
  41. data/templates/_flashes.html.erb +7 -0
  42. data/templates/_javascript.html.erb +12 -0
  43. data/templates/action_mailer.rb +5 -0
  44. data/templates/app.json.erb +39 -0
  45. data/templates/application.scss +1 -0
  46. data/templates/bin_deploy +12 -0
  47. data/templates/bin_setup +21 -0
  48. data/templates/bin_setup_review_app.erb +19 -0
  49. data/templates/browserslist +4 -0
  50. data/templates/bundler_audit.rake +12 -0
  51. data/templates/capybara_webkit.rb +3 -0
  52. data/templates/circle.yml.erb +6 -0
  53. data/templates/config_locales_en.yml.erb +19 -0
  54. data/templates/database_cleaner_rspec.rb +22 -0
  55. data/templates/dev.rake +12 -0
  56. data/templates/devise_rspec.rb +3 -0
  57. data/templates/disable_xml_params.rb +1 -0
  58. data/templates/dotfiles/.ctags +2 -0
  59. data/templates/dotfiles/.env +13 -0
  60. data/templates/dotfiles/.rspec +3 -0
  61. data/templates/errors.rb +34 -0
  62. data/templates/factories.rb +2 -0
  63. data/templates/factory_girl_rspec.rb +3 -0
  64. data/templates/flashes_helper.rb +5 -0
  65. data/templates/gitignore_file +18 -0
  66. data/templates/hound.yml +17 -0
  67. data/templates/i18n.rb +3 -0
  68. data/templates/json_encoding.rb +1 -0
  69. data/templates/newrelic.yml.erb +34 -0
  70. data/templates/onotole_layout.html.erb.erb +21 -0
  71. data/templates/postgresql_database.yml.erb +22 -0
  72. data/templates/puma.rb +28 -0
  73. data/templates/rails_helper.rb +22 -0
  74. data/templates/rubocop.yml +44 -0
  75. data/templates/secrets.yml +14 -0
  76. data/templates/shoulda_matchers_config_rspec.rb +6 -0
  77. data/templates/smtp.rb +9 -0
  78. data/templates/spec_helper.rb +23 -0
  79. data/templates/staging.rb +5 -0
  80. data/templates/tinymce.yml +6 -0
  81. metadata +172 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3a1e61a6ab9c88ec6180f44efc99b1b04d851c9c
4
+ data.tar.gz: 9894515fbe5a4c7cab9ce44ea5c3f62ff74a3e30
5
+ SHA512:
6
+ metadata.gz: ce97b89a935da5f7c326a104c9a41f82264178900190a47d74e8c043d1bd05760eced5f9fe29c519a587a5fb1a7ecf1ce70b5e583bb86d739f8597ee11971e9e
7
+ data.tar.gz: b9a39638afa81c470e741896d2dbc7caa6536ee8ad89399568c4207891c66884d6723784b437067cca28a43e500038d0f0a7c0cc88fca865eaebe3f613b156fe
@@ -0,0 +1,6 @@
1
+ *.gem
2
+ *.swp
3
+ Gemfile.lock
4
+ /.bundle
5
+ /tmp
6
+ /.idea
@@ -0,0 +1,44 @@
1
+ Style/AlignHash:
2
+ EnforcedHashRocketStyle: table
3
+ EnforcedColonStyle: table
4
+ AutoCorrect: true
5
+ Style/IndentationConsistency:
6
+ EnforcedStyle: rails
7
+ Style/StringLiterals:
8
+ ConsistentQuotesInMultiline: true
9
+ Metrics/ClassLength:
10
+ CountComments: false
11
+ Max: 500
12
+ Metrics/ModuleLength:
13
+ CountComments: false
14
+ Max: 500
15
+ Lint/EndAlignment:
16
+ AutoCorrect: true
17
+ Lint/DefEndAlignment:
18
+ AutoCorrect: true
19
+ Rails:
20
+ Enabled: true
21
+ Style/AutoResourceCleanup:
22
+ Description: 'Suggests the usage of an auto resource cleanup version of a method (if available).'
23
+ Enabled: true
24
+ Metrics/MethodLength:
25
+ CountComments: false # count full line comments?
26
+ Max: 40
27
+ Style/StringLiterals:
28
+ EnforcedStyle: single_quotes
29
+ Style/StringLiteralsInInterpolation:
30
+ EnforcedStyle: single_quotes
31
+ NumericLiterals:
32
+ Enabled: false
33
+ Metrics/LineLength:
34
+ Max: 160
35
+ Documentation:
36
+ Enabled: false
37
+ Lint/Debugger: # Easy deletion of all debugger breakpoints. false for debug
38
+ Enabled: true
39
+ AllCops:
40
+ Exclude:
41
+ - 'bin/**/*'
42
+ TargetRubyVersion: 2.3
43
+ Metrics/AbcSize:
44
+ Max: 25
@@ -0,0 +1 @@
1
+ 2.3.0
@@ -0,0 +1,11 @@
1
+ language: ruby
2
+ rvm: 2.3.0
3
+ cache: bundler
4
+ sudo: false
5
+ before_install:
6
+ - "echo '--colour' > ~/.rspec"
7
+ - git config --global user.name 'Travis CI'
8
+ - git config --global user.email 'travis-ci@example.com'
9
+ install: bundle install
10
+ notifications:
11
+ email: false
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,60 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features) \
6
+ # .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
7
+
8
+ ## Note: if you are using the `directories` clause above and you are not
9
+ ## watching the project directory ('.'), then you will want to move
10
+ ## the Guardfile to a watched dir and symlink it back, e.g.
11
+ #
12
+ # $ mkdir config
13
+ # $ mv Guardfile config/
14
+ # $ ln -s config/Guardfile .
15
+ #
16
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
+
18
+ guard 'livereload' do
19
+ extensions = {
20
+ css: :css,
21
+ scss: :css,
22
+ sass: :css,
23
+ js: :js,
24
+ coffee: :js,
25
+ html: :html,
26
+ png: :png,
27
+ gif: :gif,
28
+ jpg: :jpg,
29
+ jpeg: :jpeg,
30
+ # less: :less, # uncomment if you want LESS stylesheets done in browser
31
+ }
32
+
33
+ rails_view_exts = %w(erb haml slim)
34
+
35
+ # file types LiveReload may optimize refresh for
36
+ compiled_exts = extensions.values.uniq
37
+ watch(%r{public/.+\.(#{compiled_exts * '|'})})
38
+
39
+ extensions.each do |ext, type|
40
+ watch(%r{
41
+ (?:app|vendor)
42
+ (?:/assets/\w+/(?<path>[^.]+) # path+base without extension
43
+ (?<ext>\.#{ext})) # matching extension (must be first encountered)
44
+ (?:\.\w+|$) # other extensions
45
+ }x) do |m|
46
+ path = m[1]
47
+ "/assets/#{path}.#{type}"
48
+ end
49
+ end
50
+
51
+ # file needing a full reload of the page anyway
52
+ watch(%r{app/views/.+\.(#{rails_view_exts * '|'})$})
53
+ watch(%r{app/helpers/.+\.rb})
54
+ watch(%r{config/locales/.+\.yml})
55
+ end
56
+
57
+ guard :rubocop, all_on_start: true, cli: ['--auto-correct'] do
58
+ watch(/.+\.rb$/)
59
+ watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
60
+ end
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ The MIT License
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
@@ -0,0 +1,288 @@
1
+ # Onotole
2
+
3
+ New Rails project wizard. Onotole will help!
4
+
5
+ ![Onotole](http://sobesednik.ru/sites/default/files/styles/420x315/public/complex_images/images/vasserman-anatoliy1-rl_2.jpg?itok=c43MW8vK)
6
+
7
+ Read more [ENG](https://en.wikipedia.org/wiki/Anatoly_Wasserman) |
8
+ [RUS](https://ru.wikipedia.org/wiki/%D0%92%D0%B0%D1%81%D1%81%D0%B5%D1%80%D0%BC%D0%B0%D0%BD,_%D0%90%D0%BD%D0%B0%D1%82%D0%BE%D0%BB%D0%B8%D0%B9_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%BE%D0%B2%D0%B8%D1%87) | [RUS lurk](http://lurkmore.to/%D0%92%D0%B0%D1%81%D1%81%D0%B5%D1%80%D0%BC%D0%B0%D0%BD)
9
+
10
+ ## About
11
+
12
+ Fork from thoughtbot/suspenders(https://github.com/thoughtbot/suspenders)
13
+ Implemented function of user choice gems installation with all their settings,
14
+ so you can use fully working application with all needed installed and
15
+ configured from the box. Cut `Bitters` as default choice.
16
+
17
+ As default uses the latest Ruby version and Rails '~> 4.2.0'
18
+
19
+ This user gem pack are available for installation and some other goodies from
20
+ the box
21
+
22
+ * [Airbrake](https://github.com/airbrake/airbrake) for exception notification
23
+ * [bootstrap3](https://github.com/seyhunak/twitter-bootstrap-rails) Bootstrap
24
+ with asset pipeline support
25
+ * [bootstrap3_sass](https://github.com/twbs/bootstrap-sass) Bootstrap sass
26
+ * [bundler_audit](https://github.com/rubysec/bundler-audit) Patch-level
27
+ verification for Bundler
28
+ * [faker](https://github.com/stympy/faker) A library for generating fake data
29
+ such as names, addresses, and phone numbers.
30
+ * [guard](https://github.com/guard/guard) Guard is a command line tool to
31
+ easily handle events on file system modifications. http://guardgem.org
32
+ * [guard_rubocop](https://github.com/yujinakayama/guard-rubocop) Guard plugin
33
+ for RuboCop
34
+ * [slim](https://github.com/slim-template/slim) Slim is a template language
35
+ whose goal is reduce the syntax to the essential parts without becoming
36
+ cryptic. http://slim-lang.com
37
+ * [html2slim](https://github.com/slim-template/html2slim) HTML2SLIM utility,
38
+ installs with slim
39
+ * [haml](https://github.com/haml/haml) HTML Abstraction Markup Language - A
40
+ Markup Haiku http://haml.info
41
+ * [meta_request](https://github.com/dejan/rails_panel/tree/master/meta_request)
42
+ Supporting gem for Rails Panel (Google Chrome extension for Rails development).
43
+ * [rails_db](https://github.com/igorkasyanchuk/rails_db) Rails Database Viewer
44
+ and SQL Query Runner https://youtu.be/TYsRxXRFp1g
45
+ * [rubocop](https://github.com/bbatsov/rubocop) A Ruby static code analyzer,
46
+ based on the community Ruby style guide.
47
+ * [devise](https://github.com/plataformatec/devise) Flexible authentication
48
+ solution for Rails with Warden. http://blog.plataformatec.com.br/tag/devise/
49
+ * [devise-bootstrap-views](https://github.com/hisea/devise-bootstrap-views)
50
+ * [will_paginate](https://github.com/mislav/will_paginate) Pagination library
51
+ for Rails, Sinatra, Merb, DataMapper
52
+ * [will_paginate-bootstrap](https://github.com/bootstrap-ruby/will_paginate-bootstrap)
53
+ Integrates the Twitter Bootstrap pagination component with will_paginate
54
+ * [responders](https://github.com/plataformatec/responders) A set of responders
55
+ modules to dry up your Rails 4.2+ app.
56
+ * [hirb-unicode](https://github.com/miaout17/hirb-unicode) Unicode support
57
+ for hirb
58
+ * [dotenv-heroku](https://github.com/sideshowcoder/dotenv-heroku) Addition for
59
+ quick variables export to heroku
60
+ * [tinymce-rails](https://github.com/spohlenz/tinymce-rails)Integration of
61
+ TinyMCE with the Rails asset pipeline
62
+
63
+
64
+ ## Installation
65
+
66
+ First install the onotole gem add this in `Gemfile` and `bundle`
67
+
68
+ ```
69
+ group :development do
70
+ gem 'onotole'
71
+ end
72
+ ```
73
+
74
+ or
75
+
76
+ ```
77
+ gem install onotole
78
+ ```
79
+
80
+ Create gemset if you need it.
81
+
82
+ Then run:
83
+
84
+ onotole projectname [ -c ] [ * rails_genetator_flags ]
85
+
86
+ This will create a Rails app in `projectname` using the latest version of Rails.
87
+
88
+ onotole projectname -c
89
+
90
+ And command like this will add some magic
91
+
92
+ onotole app * github organization/project * heroku true
93
+
94
+ This will provide a dialog, where you can select needed gems, also you can add
95
+ it with gemname flag, after app_name, like `onotole projectname --slim`.
96
+ List of gems you always can get with `onotole --gems` command. Also,
97
+ `onotole --help` can be useful.
98
+
99
+ !!! Note, that databases with names `projectname`_development and `projectname`_test
100
+ will be dropped. For example, if your project calls `awesome`, databases
101
+ `awesome_development` and `awesome_test` will be dropped.
102
+
103
+ *NB: if you install custom gems, default user gem pack will not be installed.
104
+
105
+ ## Gemfile
106
+
107
+ To see the latest and greatest gems, look at Onotole'
108
+ [Gemfile](templates/Gemfile.erb), which will be appended to the default
109
+ generated projectname/Gemfile. This gem will be installed anyway.
110
+
111
+ It includes application gems like:
112
+
113
+ * [Autoprefixer Rails](https://github.com/ai/autoprefixer-rails) for CSS vendor prefixes
114
+ * [Delayed Job](https://github.com/collectiveidea/delayed_job) for background
115
+ processing
116
+ * [Flutie](https://github.com/thoughtbot/flutie) for `page_title` and `body_class` view
117
+ helpers
118
+ * [High Voltage](https://github.com/thoughtbot/high_voltage) for static pages
119
+ * [jQuery Rails](https://github.com/rails/jquery-rails) for jQuery
120
+ * [New Relic RPM](https://github.com/newrelic/rpm) for monitoring performance
121
+ * [Normalize](https://necolas.github.io/normalize.css/) for resetting browser styles
122
+ * [Postgres](https://github.com/ged/ruby-pg) for access to the Postgres database
123
+ * [Rack Canonical Host](https://github.com/tylerhunt/rack-canonical-host) to
124
+ ensure all requests are served from the same domain
125
+ * [Rack Timeout](https://github.com/heroku/rack-timeout) to abort requests that are
126
+ taking too long
127
+ * [Recipient Interceptor](https://github.com/croaky/recipient_interceptor) to
128
+ avoid accidentally sending emails to real people from staging
129
+ * [Simple Form](https://github.com/plataformatec/simple_form) for form markup
130
+ and style
131
+ * [Title](https://github.com/calebthompson/title) for storing titles in
132
+ translations
133
+ * [Puma](https://github.com/puma/puma) to serve HTTP requests
134
+
135
+ And development gems like:
136
+
137
+ * [Dotenv](https://github.com/bkeepers/dotenv) for loading environment variables
138
+ * [Pry Rails](https://github.com/rweng/pry-rails) for interactively exploring
139
+ objects
140
+ * [Hirb](https://github.com/cldwalker/hirb) for pretty tables view in the console
141
+ * [Awesome_print](https://github.com/michaeldv/awesome_print) Pretty print your
142
+ Ruby objects with style -- in full color and with proper indentation
143
+ * [ByeBug](https://github.com/deivid-rodriguez/byebug) for interactively
144
+ debugging behavior
145
+ * [Bullet](https://github.com/flyerhzm/bullet) for help to kill N+1 queries and
146
+ unused eager loading
147
+ * [Spring](https://github.com/rails/spring) for fast Rails actions via
148
+ pre-loading
149
+ * [Web Console](https://github.com/rails/web-console) for better debugging via
150
+ in-browser IRB consoles.
151
+ * [Quiet Assets](https://github.com/evrone/quiet_assets) for muting assets
152
+ pipeline log messages
153
+
154
+ And testing gems like:
155
+
156
+ * [Capybara](https://github.com/jnicklas/capybara) and
157
+ [Capybara Webkit](https://github.com/thoughtbot/capybara-webkit) for
158
+ integration testing
159
+ * [Factory Girl](https://github.com/thoughtbot/factory_girl) for test data
160
+ * [Formulaic](https://github.com/thoughtbot/formulaic) for integration testing
161
+ HTML forms
162
+ * [RSpec](https://github.com/rspec/rspec) for unit testing
163
+ * [RSpec Mocks](https://github.com/rspec/rspec-mocks) for stubbing and spying
164
+ * [Shoulda Matchers](https://github.com/thoughtbot/shoulda-matchers) for common
165
+ RSpec matchers
166
+ * [Timecop](https://github.com/ferndopolis/timecop-console) for testing time
167
+
168
+ ## Other goodies
169
+
170
+ Onotole also comes with:
171
+
172
+ * The [`./bin/setup`][setup] convention for new developer setup
173
+ * Rails' flashes set up and in application layout
174
+ * A few nice time formats set up for localization
175
+ * `Rack::Deflater` to [compress responses with Gzip][compress]
176
+ * A [low database connection pool limit][pool]
177
+ * [Safe binstubs][binstub]
178
+ * [t() and l() in specs without prefixing with I18n][i18n]
179
+ * An automatically-created `SECRET_KEY_BASE` environment variable in all
180
+ environments
181
+ * The analytics adapter [Segment][segment] (and therefore config for Google
182
+ Analytics, Intercom, Facebook Ads, Twitter Ads, etc.)
183
+
184
+
185
+ ## Heroku
186
+
187
+ You can optionally create Heroku staging and production apps:
188
+
189
+ onotole app * heroku true
190
+
191
+ This:
192
+
193
+ * Creates a staging and production Heroku app
194
+ * Sets them as `staging` and `production` Git remotes
195
+ * Configures staging with `RACK_ENV` and `RAILS_ENV` environment variables set
196
+ to `staging`
197
+ * Adds the [Rails Stdout Logging][logging-gem] gem
198
+ to configure the app to log to standard out,
199
+ which is how [Heroku's logging][heroku-logging] works.
200
+ * Creates a [Heroku Pipeline] for review apps
201
+
202
+ [logging-gem]: https://github.com/heroku/rails_stdout_logging
203
+ [heroku-logging]: https://devcenter.heroku.com/articles/logging#writing-to-your-log
204
+ [Heroku Pipeline]: https://devcenter.heroku.com/articles/pipelines
205
+
206
+ You can optionally specify alternate Heroku flags:
207
+
208
+ onotole app \
209
+ * heroku true \
210
+ * heroku-flags " * region eu * addons newrelic,sendgrid,ssl"
211
+
212
+ See all possible Heroku flags:
213
+
214
+ heroku help create
215
+
216
+ ## Git
217
+
218
+ This will initialize a new git repository for your Rails app. You can
219
+ bypass this with the ` * skip-git` option:
220
+
221
+ onotole app * skip-git true
222
+
223
+ ## GitHub
224
+
225
+ You can optionally create a GitHub repository for the suspended Rails app. It
226
+ requires that you have [Hub](https://github.com/github/hub) on your system:
227
+
228
+ curl http://hub.github.com/standalone -sLo ~/bin/hub && chmod +x ~/bin/hub
229
+ onotole app * github organization/project
230
+
231
+ This has the same effect as running:
232
+
233
+ hub create organization/project
234
+
235
+ ## Spring
236
+
237
+ Onotole uses [spring](https://github.com/rails/spring) by default.
238
+ It makes Rails applications load faster, but it might introduce confusing issues
239
+ around stale code not being refreshed.
240
+ If you think your application is running old code, run `spring stop`.
241
+ And if you'd rather not use spring, add `DISABLE_SPRING=1` to your login file.
242
+
243
+ ## Dependencies
244
+
245
+ Onotole requires the latest version of Ruby.
246
+
247
+ Some gems included in Onotole have native extensions. You should have GCC
248
+ installed on your machine before generating an app with Onotole.
249
+
250
+ Use [OS X GCC Installer](https://github.com/kennethreitz/osx-gcc-installer/) for
251
+ Snow Leopard (OS X 10.6).
252
+
253
+ Use [Command Line Tools for XCode](https://developer.apple.com/downloads/index.action)
254
+ for Lion (OS X 10.7) or Mountain Lion (OS X 10.8).
255
+
256
+ We use [Capybara Webkit](https://github.com/thoughtbot/capybara-webkit) for
257
+ full-stack JavaScript integration testing. It requires QT. Instructions for
258
+ installing QT are
259
+ [here](https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit).
260
+
261
+ PostgreSQL needs to be installed and running for the `db:create` rake task.
262
+
263
+ ## Contributing
264
+
265
+ If you want to get your gem in Onotole follow this steps
266
+
267
+ 1. Clone this repository
268
+ 2. If you need to add new question in menu add it in UserGemsMenu
269
+ 3. Add your gem with description in `EditMenuQuestions`.
270
+ 4. Add per `bundler` hooks in `BeforeBundlePatch`. Use function name with this
271
+ template `add_awesome_gem` where `awesome` is a gem name. Usually minimum is to
272
+ add gem into `Gemfile`.
273
+ 5. Add after install hooks in `AfterInstallPatch`. Name your function
274
+ `after_install_awesome`. Also, add it in query at `#post_init`. Other way it
275
+ will not run
276
+ 6. Update README.MD
277
+ 7. Make PR
278
+
279
+ Please, do not change version or gems for default install.
280
+ Appname `tmp` is preferred for develop. It already added to gitignore.
281
+
282
+ If you find some misprints fell free to fix them.
283
+
284
+ Thank you!
285
+
286
+ ## License
287
+
288
+ MIT Licence