onotole 1.0.0

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.
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