onotole 1.0.4 → 1.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e21d88ceffa09a3f4b68fb44c8a5957bfbc88e5d
4
- data.tar.gz: d51431339cdbcc01bf4a2aae22955b87c564beac
3
+ metadata.gz: 2c4e5ff618f59d204c81a9cb49cfe976f7fb72f8
4
+ data.tar.gz: 3496e8d1ecf92daf05e09cf6ca41e4956a29f350
5
5
  SHA512:
6
- metadata.gz: 3bad941ec893d3672ddab89027c6ea631ff0e886498a5ae33b546d8388b9c242fc94e226e10b6996a4871cfe8353d490e6fa59894ea67f8791e2e7dddb2fd59e
7
- data.tar.gz: 85735752d0db8659aa84f6133ef8798862ca73111d6f319972d0cfeecd1a8add6b6ddd54cc278754b27c5d6a60f754c22ef6b3700bd623ad1a8b11f4f68e90ad
6
+ metadata.gz: 743b9c67aa65f211fa5ff93321d605c0eceaa48286dac7ffff5ab118d75a7a55a8a54a8097120a947dd2e7696396cc27a6b14df89beb90b5322ab5c7b2f50d6f
7
+ data.tar.gz: 4672390c520bb254b4386ec33087f5f3690d99aae4784ee84784b521c724fcde3586e3e048d143e6fb414469c6b5422d9f88f4ca48a02c124fa5d01851af4948
data/.gitignore CHANGED
@@ -3,4 +3,5 @@
3
3
  Gemfile.lock
4
4
  /.bundle
5
5
  /tmp
6
- /.idea
6
+ /.idea
7
+ /vendor
data/.rubocop.yml CHANGED
@@ -39,6 +39,9 @@ Lint/Debugger: # Easy deletion of all debugger breakpoints. false for deb
39
39
  AllCops:
40
40
  Exclude:
41
41
  - 'bin/**/*'
42
+ - 'vendor/**/*'
43
+ - 'log/**/*'
44
+ - 'tmp/**/*'
42
45
  TargetRubyVersion: 2.3
43
46
  Metrics/AbcSize:
44
47
  Max: 30
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  source 'https://rubygems.org'
3
3
 
4
+ gem 'rubycritic', require: false, group: :development
5
+
4
6
  gemspec
data/README.md CHANGED
@@ -73,6 +73,8 @@ pack will not be installed with any gem option.
73
73
  provides an easy-to-use interface for managing your data
74
74
  * [activeadmin](https://github.com/activeadmin/activeadmin) Rails framework for
75
75
  creating elegant backends for website administration.
76
+ * `*`[rubycritic](https://github.com/whitesmith/rubycritic) A Ruby code quality
77
+ reporter
76
78
 
77
79
 
78
80
  Mandatory installation gem list you will find in `Gemfile` section
@@ -89,23 +91,22 @@ First install the onotole gem add this in `Gemfile` and `bundle`
89
91
 
90
92
  or
91
93
 
92
- ```
93
- gem install onotole
94
- ```
94
+ gem install onotole
95
95
 
96
96
  Create gemset if you need it.
97
97
 
98
98
  Then run:
99
99
 
100
- `onotole projectname [ -c ] [ * rails_genetator_flags ]`
100
+ onotole projectname [ -c ] [ * rails_genetator_flags ]
101
+
101
102
 
102
103
  This will create a Rails app in `projectname` using the latest version of Rails.
103
104
 
104
- `onotole projectname -c`
105
+ onotole projectname -c
105
106
 
106
107
  And command like this will add some magic
107
108
 
108
- `onotole app * github organization/project * heroku true`
109
+ onotole app * github organization/project * heroku true
109
110
 
110
111
  This will provide a dialog, where you can select needed gems, also you can add
111
112
  it with gemname flag, after app_name, like `onotole projectname --slim`.
@@ -200,6 +201,7 @@ Onotole also comes with:
200
201
  environments
201
202
  * The analytics adapter [Segment][segment] (and therefore config for Google
202
203
  Analytics, Intercom, Facebook Ads, Twitter Ads, etc.)
204
+ * Check existing of app DB and ask about continuation if base persisted
203
205
 
204
206
  ## Heroku
205
207
 
@@ -278,6 +280,7 @@ installing QT are
278
280
  [here](https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit).
279
281
 
280
282
  PostgreSQL needs to be installed and running for the `db:create` rake task.
283
+ Also DB existing checking in `PostgreSQL` only.
281
284
 
282
285
  ## Contributing
283
286
 
data/bin/install CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/bin/sh
2
- gem build onotole.gemspec && gem install onotole
2
+ rm onotole-*.gem && gem build onotole.gemspec && gem install onotole
data/bin/onotole CHANGED
@@ -13,6 +13,7 @@ GEMPROCLIST = Onotole::AppBuilder.public_instance_methods.map(&:to_s)
13
13
 
14
14
  DEFAULT_GEMSET = [:slim,
15
15
  :faker,
16
+ :rubycritic,
16
17
  :guard,
17
18
  :rubocop,
18
19
  :meta_request,
@@ -2,7 +2,8 @@
2
2
  module Onotole
3
3
  module AfterInstallPatch
4
4
  def post_init
5
- install_queue = [:responders,
5
+ install_queue = [:devise,
6
+ :responders,
6
7
  :annotate,
7
8
  :overcommit,
8
9
  :activeadmin,
@@ -12,7 +13,6 @@ module Onotole
12
13
  :guard_rubocop,
13
14
  :bootstrap3_sass,
14
15
  :bootstrap3,
15
- :devise,
16
16
  :normalize,
17
17
  :tinymce,
18
18
  :rubocop,
@@ -22,7 +22,7 @@ module Onotole
22
22
  end
23
23
 
24
24
  def after_install_devise
25
- bundle_command 'exec rails generate devise:install'
25
+ rails_generator 'devise:install'
26
26
  if AppBuilder.devise_model
27
27
  rails_generator "devise #{AppBuilder.devise_model.titleize}"
28
28
  inject_into_file('app/controllers/application_controller.rb',
@@ -46,7 +46,7 @@ if ENV['RAILS_ENV'] == 'test' || ENV['RAILS_ENV'] == 'development'
46
46
  end
47
47
  TEXT
48
48
  append_file 'Rakefile', t
49
- bundle_command 'exec rubocop --auto-correct'
49
+ clean_by_rubocop
50
50
  end
51
51
 
52
52
  def after_install_guard
@@ -119,6 +119,7 @@ end
119
119
  def after_install_overcommit
120
120
  bundle_command 'exec overcommit --install'
121
121
  bundle_command 'exec overcommit --sign'
122
+ inject_into_file('bin/setup', "\novercommit --install\novercommit --sign", after: '# User addons installation')
122
123
  end
123
124
 
124
125
  def after_install_activeadmin
@@ -100,7 +100,7 @@ module Onotole
100
100
  # v.3.5 syntax. will be deprecated in 4.0
101
101
  def configure_permitted_parameters
102
102
  devise_parameter_sanitizer.for(:sign_in) do |user_params|
103
- user_params.permit(:email, :password)
103
+ user_params.permit(:email, :password, :remember_me)
104
104
  end
105
105
 
106
106
  devise_parameter_sanitizer.for(:sign_up) do |user_params|
@@ -166,7 +166,7 @@ module Onotole
166
166
  append_file '.overcommit.yml', rubocop_overcommit if user_choose?(:rubocop)
167
167
  end
168
168
 
169
- def add_ar_import_gem
169
+ def add_activerecord_import_gem
170
170
  inject_into_file('Gemfile', "\ngem 'activerecord-import'", after: '# user_choice')
171
171
  end
172
172
 
@@ -182,5 +182,10 @@ module Onotole
182
182
  inject_into_file('Gemfile', "\ngem 'rails_admin'", after: '# user_choice')
183
183
  puts
184
184
  end
185
+
186
+ def add_rubycritic_gem
187
+ inject_into_file('Gemfile', "\n gem 'rubycritic', :require => false",
188
+ after: 'group :development do')
189
+ end
185
190
  end
186
191
  end
@@ -41,6 +41,7 @@ module Onotole
41
41
  will_paginate: 'Easy pagination implement',
42
42
  faker: 'Gem for generate fake data in testing',
43
43
  rubocop: 'Code inspector and code formatting tool',
44
+ rubycritic: 'A Ruby code quality reporter',
44
45
  guard: 'Guard (with RSpec, livereload, rails, migrate, bundler)',
45
46
  guard_rubocop: 'Auto-declare code miss in guard',
46
47
  bundler_audit: 'Extra possibilities for gems version control',
@@ -195,7 +195,7 @@ end
195
195
  end
196
196
 
197
197
  def create_database
198
- bundle_command 'exec rake db:drop db:create db:migrate'
198
+ bundle_command 'exec rake db:drop db:create db:migrate db:seed'
199
199
  end
200
200
 
201
201
  def replace_gemfile
@@ -392,12 +392,12 @@ end
392
392
 
393
393
  def user_gems_from_args_or_default_set
394
394
  gems_flags = []
395
- options.each { |k, v| gems_flags.push k.to_sym if v == true }
395
+ options.each { |gem, usage| gems_flags.push(gem.to_sym) if usage }
396
396
  gems = GEMPROCLIST & gems_flags
397
397
  if gems.empty?
398
398
  AppBuilder.user_choice = DEFAULT_GEMSET
399
399
  else
400
- gems.each { |g| AppBuilder.user_choice << g }
400
+ gems.each { |gem| AppBuilder.user_choice << gem }
401
401
  end
402
402
  add_user_gems
403
403
  end
@@ -418,7 +418,7 @@ end
418
418
  end
419
419
 
420
420
  def prevent_double_usage
421
- if pgsql_db_exist?("#{app_name}_test") || pgsql_db_exist?("#{app_name}_development")
421
+ unless !pgsql_db_exist?("#{app_name}_development") || !pgsql_db_exist?("#{app_name}_test")
422
422
  say_color RED, " YOU HAVE EXISTING DB WITH #{app_name.upcase}!!!"
423
423
  say_color RED, " WRITE 'Y' TO CONTINUE WITH DELETION OF ALL DATA"
424
424
  say_color RED, ' ANY OTHER INPUT FOR EXIT'
@@ -31,9 +31,9 @@ module Onotole
31
31
  class_option :clean_comments, type: :boolean, aliases: '--clean_comments', default: false,
32
32
  desc: 'Clean up comments in config & routes files'
33
33
 
34
- GEMPROCLIST.each do |g|
35
- class_option g.to_sym, type: :boolean, aliases: "--#{g}", default: false,
36
- desc: "#{g.to_s.humanize} gem install"
34
+ GEMPROCLIST.each do |gem_name|
35
+ class_option gem_name.to_sym, type: :boolean, aliases: "--#{gem_name}",
36
+ default: false, desc: "#{gem_name.to_s.humanize} gem install"
37
37
  end
38
38
  super
39
39
  end
@@ -72,6 +72,7 @@ module Onotole
72
72
  invoke :create_github_repo
73
73
  invoke :setup_segment
74
74
  invoke :setup_spring
75
+ invoke :pre_commit_cleanup
75
76
  invoke :git_first_commit
76
77
  invoke :outro
77
78
  end
@@ -191,17 +192,15 @@ module Onotole
191
192
  # end
192
193
 
193
194
  def setup_git
194
- unless options[:skip_git]
195
- say 'Initializing git'
196
- invoke :init_git
197
- end
195
+ return if options[:skip_git]
196
+ say 'Initializing git'
197
+ invoke :init_git
198
198
  end
199
199
 
200
200
  def setup_gitignore
201
- unless options[:skip_git]
202
- say 'Replace .gitignore'
203
- invoke :setup_gitignore
204
- end
201
+ return if options[:skip_git]
202
+ say 'Replace .gitignore'
203
+ invoke :setup_gitignore
205
204
  end
206
205
 
207
206
  def git_first_commit
@@ -224,10 +223,10 @@ module Onotole
224
223
  end
225
224
 
226
225
  def create_github_repo
227
- if !options[:skip_git] && options[:github]
228
- say 'Creating Github repo'
229
- build :create_github_repo, options[:github]
230
- end
226
+ return if options[:skip_git]
227
+ return unless options[:github]
228
+ say 'Creating Github repo'
229
+ build :create_github_repo, options[:github]
231
230
  end
232
231
 
233
232
  def setup_segment
@@ -292,6 +291,10 @@ module Onotole
292
291
  build :prevent_double_usage
293
292
  end
294
293
 
294
+ def pre_commit_cleanup
295
+ build :clean_by_rubocop
296
+ end
297
+
295
298
  protected
296
299
 
297
300
  def get_builder_class
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+ module Onotole
3
+ module Git
4
+ def install_user_gems_from_github
5
+ File.readlines('Gemfile').each do |l|
6
+ possible_gem_name = l.match(%r{(?:github:\s+)(?:'|")\w+/(.*)(?:'|")}i)
7
+ install_from_github possible_gem_name[1] if possible_gem_name
8
+ end
9
+ end
10
+
11
+ def create_github_repo(repo_name)
12
+ system "hub create #{repo_name}"
13
+ end
14
+
15
+ def init_git
16
+ run 'git init'
17
+ end
18
+
19
+ def git_init_commit
20
+ return unless user_choose?(:gitcommit)
21
+ say 'Init commit'
22
+ run 'git add .'
23
+ run 'git commit -m "Init commit"'
24
+ end
25
+
26
+ def gitignore_files
27
+ remove_file '.gitignore'
28
+ copy_file 'gitignore_file', '.gitignore'
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+ module Onotole
3
+ module Helpers
4
+ def yes_no_question(gem_name, gem_description)
5
+ gem_name_color = "#{gem_name.capitalize}.\n"
6
+ variants = { none: 'No', gem_name.to_sym => gem_name_color }
7
+ choice "Use #{gem_name}? #{gem_description}", variants
8
+ end
9
+
10
+ def choice(selector, variants)
11
+ unless variants.keys[1..-1].map { |a| options[a] }.include? true
12
+ values = []
13
+ say "\n #{BOLDGREEN}#{selector}#{COLOR_OFF}"
14
+ variants.each_with_index do |variant, i|
15
+ values.push variant[0]
16
+ say "#{i.to_s.rjust(5)}. #{BOLDBLUE}#{variant[1]}#{COLOR_OFF}"
17
+ end
18
+ answer = ask_stylish('Enter choice:') until (0...variants.length)
19
+ .map(&:to_s).include? answer
20
+ numeric_answer = answer.to_i
21
+ numeric_answer == :none ? nil : numeric_answer
22
+ end
23
+ end
24
+
25
+ def multiple_choice(selector, variants)
26
+ values = []
27
+ result = []
28
+ answers = ''
29
+ say "\n #{BOLDGREEN}#{selector} Use space as separator#{COLOR_OFF}"
30
+ variants.each_with_index do |variant, i|
31
+ values.push variant[0]
32
+ say "#{i.to_s.rjust(5)}. #{BOLDBLUE}#{variant[0]
33
+ .to_s.ljust(20)}-#{COLOR_OFF} #{variant[1]}"
34
+ end
35
+ loop do
36
+ answers = ask_stylish('Enter choices:').split ' '
37
+ break if answers.any? && (answers - (0...variants.length)
38
+ .to_a.map(&:to_s)).empty?
39
+ end
40
+ answers.delete '0'
41
+ answers.uniq.each { |answer| result.push values[answer.to_i] }
42
+ result
43
+ end
44
+
45
+ def raise_on_missing_translations_in(environment)
46
+ config = 'config.action_view.raise_on_missing_translations = true'
47
+ uncomment_lines("config/environments/#{environment}.rb", config)
48
+ end
49
+
50
+ def heroku_adapter
51
+ @heroku_adapter ||= Adapters::Heroku.new(self)
52
+ end
53
+
54
+ def serve_static_files_line
55
+ "config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?\n"
56
+ end
57
+
58
+ def add_gems_from_args
59
+ ARGV.each do |gem_name|
60
+ next unless gem_name.slice(0, 2) == '--'
61
+ add_to_user_choise gem_name[2..-1].to_sym
62
+ end
63
+ end
64
+
65
+ def cleanup_comments(file_name)
66
+ accepted_content = File.readlines(file_name).reject do |line|
67
+ line =~ /^\s*#.*$/ || line =~ /^$\n/
68
+ end
69
+
70
+ File.open(file_name, 'w') do |file|
71
+ accepted_content.each { |line| file.puts line }
72
+ end
73
+ end
74
+
75
+ # does not recognize variable nesting, but now it does not matter
76
+ def cover_def_by(file_name, lookup_str, external_def)
77
+ expect_end = 0
78
+ found = false
79
+ accepted_content = ''
80
+ File.readlines(file_name).each do |line|
81
+ expect_end += 1 if found && line =~ /\sdo\s/
82
+ expect_end -= 1 if found && line =~ /(\s+end|^end)/
83
+ if line =~ Regexp.new(lookup_str)
84
+ accepted_content += "#{external_def}\n#{line}"
85
+ expect_end += 1
86
+ found = true
87
+ else
88
+ accepted_content += line
89
+ end
90
+ if found && expect_end == 0
91
+ accepted_content += "\nend"
92
+ found = false
93
+ end
94
+ end
95
+ File.open(file_name, 'w') { |file| file.puts accepted_content }
96
+ end
97
+
98
+ def install_from_github(_gem_name)
99
+ # TODO: in case of bundler update `bundle show` do now work any more
100
+ true
101
+
102
+ # return nil unless gem_name
103
+ # path = `cd #{Dir.pwd} && bundle show #{gem_name}`.chomp
104
+ # run "cd #{path} && bundle exec gem build #{gem_name}.gemspec && bundle exec gem install *.gem"
105
+ end
106
+
107
+ def user_choose?(gem)
108
+ AppBuilder.user_choice.include? gem
109
+ end
110
+
111
+ def add_to_user_choise(gem)
112
+ AppBuilder.user_choice.push gem
113
+ end
114
+
115
+ def rails_generator(command)
116
+ bundle_command "exec rails generate #{command} -f"
117
+ end
118
+
119
+ def pgsql_db_exist?(db_name)
120
+ system "psql -l | grep #{db_name}"
121
+ end
122
+
123
+ def clean_by_rubocop
124
+ bundle_command 'exec rubocop --auto-correct' if user_choose?(:rubocop)
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+ module Onotole
3
+ module Mail
4
+ def configure_action_mailer
5
+ action_mailer_host 'development', %("localhost:3000")
6
+ action_mailer_host 'test', %("www.example.com")
7
+ action_mailer_host 'production', %{ENV.fetch("APPLICATION_HOST")}
8
+ end
9
+
10
+ def configure_action_mailer_in_specs
11
+ copy_file 'action_mailer.rb', 'spec/support/action_mailer.rb'
12
+ end
13
+
14
+ def configure_smtp
15
+ copy_file 'smtp.rb', 'config/smtp.rb'
16
+
17
+ prepend_file 'config/environments/production.rb',
18
+ %{require Rails.root.join("config/smtp")\n}
19
+
20
+ config = <<-RUBY
21
+
22
+ config.action_mailer.delivery_method = :smtp
23
+ config.action_mailer.smtp_settings = SMTP_SETTINGS
24
+ RUBY
25
+
26
+ inject_into_file 'config/environments/production.rb', config,
27
+ after: 'config.action_mailer.raise_delivery_errors = false'
28
+ end
29
+
30
+ def set_test_delivery_method
31
+ inject_into_file(
32
+ 'config/environments/development.rb',
33
+ "\n config.action_mailer.delivery_method = :test",
34
+ after: 'config.action_mailer.raise_delivery_errors = true'
35
+ )
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+ module Onotole
3
+ module Tests
4
+ def generate_rspec
5
+ ['app/views/pages',
6
+ 'spec/lib',
7
+ 'spec/controllers',
8
+ 'spec/helpers',
9
+ 'spec/support/matchers',
10
+ 'spec/support/mixins',
11
+ 'spec/support/shared_examples'
12
+ ].each do |dir|
13
+ run "mkdir #{dir}"
14
+ run "touch #{dir}/.keep"
15
+ end
16
+ bundle_command 'exec rails generate rspec:install'
17
+ end
18
+
19
+ def configure_capybara_webkit
20
+ copy_file 'capybara_webkit.rb', 'spec/support/capybara_webkit.rb'
21
+ end
22
+
23
+ def configure_i18n_for_test_environment
24
+ copy_file 'i18n.rb', 'spec/support/i18n.rb'
25
+ end
26
+
27
+ def configure_rspec
28
+ remove_file 'spec/rails_helper.rb'
29
+ remove_file 'spec/spec_helper.rb'
30
+ copy_file 'rails_helper.rb', 'spec/rails_helper.rb'
31
+ copy_file 'spec_helper.rb', 'spec/spec_helper.rb'
32
+ end
33
+
34
+ def configure_generators
35
+ config = <<-RUBY
36
+
37
+ config.generators do |generate|
38
+ generate.helper false
39
+ generate.javascript_engine false
40
+ generate.request_specs false
41
+ generate.routing_specs false
42
+ generate.stylesheets false
43
+ generate.test_framework :rspec
44
+ generate.view_specs false
45
+ generate.fixture_replacement :factory_girl
46
+ end
47
+
48
+ RUBY
49
+
50
+ inject_into_class 'config/application.rb', 'Application', config
51
+ end
52
+
53
+ def enable_database_cleaner
54
+ copy_file 'database_cleaner_rspec.rb', 'spec/support/database_cleaner.rb'
55
+ end
56
+
57
+ def provide_shoulda_matchers_config
58
+ copy_file(
59
+ 'shoulda_matchers_config_rspec.rb',
60
+ 'spec/support/shoulda_matchers.rb'
61
+ )
62
+ end
63
+
64
+ def configure_spec_support_features
65
+ empty_directory_with_keep_file 'spec/features'
66
+ empty_directory_with_keep_file 'spec/support/features'
67
+ end
68
+
69
+ def set_up_factory_girl_for_rspec
70
+ copy_file 'factory_girl_rspec.rb', 'spec/support/factory_girl.rb'
71
+ end
72
+
73
+ def generate_factories_file
74
+ copy_file 'factories.rb', 'spec/factories.rb'
75
+ end
76
+
77
+ def raise_on_missing_assets_in_test
78
+ inject_into_file(
79
+ 'config/environments/test.rb',
80
+ "\n config.assets.raise_runtime_errors = true",
81
+ after: 'Rails.application.configure do'
82
+ )
83
+ end
84
+ end
85
+ end
@@ -2,5 +2,5 @@
2
2
  module Onotole
3
3
  RAILS_VERSION = '~> 4.2.0'
4
4
  RUBY_VERSION = IO.read("#{File.dirname(__FILE__)}/../../.ruby-version").strip
5
- VERSION = '1.0.4'
5
+ VERSION = '1.0.6'
6
6
  end
@@ -176,20 +176,23 @@ RSpec.describe 'Suspend a new project with default configuration' do
176
176
  end
177
177
  end
178
178
 
179
- it 'removes comments and extra newlines from config files' do
180
- config_files = [
181
- IO.read("#{project_path}/config/application.rb"),
182
- IO.read("#{project_path}/config/environment.rb"),
183
- IO.read("#{project_path}/config/environments/development.rb"),
184
- IO.read("#{project_path}/config/environments/production.rb"),
185
- IO.read("#{project_path}/config/environments/test.rb")
186
- ]
187
-
188
- config_files.each do |file|
189
- expect(file).not_to match(/.*\s#.*/)
190
- expect(file).not_to match(/^$\n/)
191
- end
192
- end
179
+ # TODO
180
+ # Not actual in current init config. I'll test it when I'll
181
+ # write tests for working with flags.
182
+ # it 'removes comments and extra newlines from config files' do
183
+ # config_files = [
184
+ # IO.read("#{project_path}/config/application.rb"),
185
+ # IO.read("#{project_path}/config/environment.rb"),
186
+ # IO.read("#{project_path}/config/environments/development.rb"),
187
+ # IO.read("#{project_path}/config/environments/production.rb"),
188
+ # IO.read("#{project_path}/config/environments/test.rb")
189
+ # ]
190
+
191
+ # config_files.each do |file|
192
+ # expect(file).not_to match(/.*\s#.*/)
193
+ # expect(file).not_to match(/^$\n/)
194
+ # end
195
+ # end
193
196
 
194
197
  it 'copies factories.rb' do
195
198
  expect(File).to exist("#{project_path}/spec/factories.rb")
@@ -11,6 +11,9 @@ module OnotoleTestHelpers
11
11
  end
12
12
 
13
13
  def run_onotole(arguments = nil)
14
+ # unless !pgsql_db_exist?("#{APP_NAME}_development") || !pgsql_db_exist?("#{APP_NAME}_test")
15
+ # allow(STDIN).to receive(:gets) { 'Y' }
16
+ # end
14
17
  Dir.chdir(tmp_path) do
15
18
  Bundler.with_clean_env do
16
19
  add_fakes_to_path
@@ -56,4 +59,8 @@ module OnotoleTestHelpers
56
59
  def root_path
57
60
  File.expand_path('../../../', __FILE__)
58
61
  end
62
+
63
+ def pgsql_db_exist?(db_name)
64
+ system "psql -l | grep #{db_name}"
65
+ end
59
66
  end
@@ -2,25 +2,31 @@
2
2
 
3
3
  ## Onotole helped!
4
4
 
5
- ## Getting Started
5
+ At first, I want to say thank you for using Onotole(https://github.com/kvokka/onotole)
6
+ Visit project page for news and updates
7
+
8
+ ### Getting Started
6
9
 
7
10
  After you have cloned this repo, run this setup script to set up your machine
8
11
  with the necessary dependencies to run and test this app:
9
12
 
10
- % ./bin/setup
11
-
12
- It assumes you have a machine equipped with Ruby, Postgres, etc. If not, set up
13
- your machine with [this script].
13
+ ./bin/setup
14
14
 
15
- [this script]: https://github.com/thoughtbot/laptop
15
+ It assumes you have a machine equipped with Bundler, Git, Ruby, Postgres, Bash
16
+ You will need to use the Ruby at least <%= Onotole::RUBY_VERSION %> and
17
+ Rails <%= Onotole::RAILS_VERSION%>
16
18
 
17
19
  After setting up, you can run the application using [Heroku Local]:
18
20
 
19
- % heroku local
21
+ heroku local
20
22
 
21
23
  [Heroku Local]: https://devcenter.heroku.com/articles/heroku-local
22
24
 
23
- ## Guidelines
25
+ rails server
26
+
27
+ It is also available, of course.
28
+
29
+ ### Guidelines
24
30
 
25
31
  Use the following guides for getting things done, programming well, and
26
32
  programming in style.
data/templates/bin_setup CHANGED
@@ -16,6 +16,8 @@ bin/rake dev:prime
16
16
  # Add binstubs to PATH via export PATH=".git/safe/../../bin:$PATH" in ~/.zshenv
17
17
  mkdir -p .git/safe
18
18
 
19
+ # User addons installation
20
+
19
21
  # Only if this isn't CI
20
22
  # if [ -z "$CI" ]; then
21
23
  # fi
@@ -40,6 +40,9 @@ Lint/Debugger: # Easy deletion of all debugger breakpoints. false for deb
40
40
  AllCops:
41
41
  Exclude:
42
42
  - 'bin/**/*'
43
+ - 'vendor/**/*'
44
+ - 'log/**/*'
45
+ - 'tmp/**/*'
43
46
  TargetRubyVersion: 2.3
44
47
  Metrics/AbcSize:
45
48
  Max: 25
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
4
+ version: 1.0.6
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-10 00:00:00.000000000 Z
12
+ date: 2016-02-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -90,6 +90,10 @@ files:
90
90
  - lib/onotole/app_builder.rb
91
91
  - lib/onotole/colors.rb
92
92
  - lib/onotole/generators/app_generator.rb
93
+ - lib/onotole/git.rb
94
+ - lib/onotole/helpers.rb
95
+ - lib/onotole/mail.rb
96
+ - lib/onotole/tests.rb
93
97
  - lib/onotole/version.rb
94
98
  - onotole.gemspec
95
99
  - spec/adapters/heroku_spec.rb