re-rails 0.1.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.
- checksums.yaml +7 -0
- data/.gitignore +4 -0
- data/CONTRIBUTING.md +38 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +133 -0
- data/LICENSE +21 -0
- data/README.md +181 -0
- data/Rakefile +13 -0
- data/bin/suspenders +18 -0
- data/lib/suspenders.rb +3 -0
- data/lib/suspenders/actions.rb +35 -0
- data/lib/suspenders/app_builder.rb +323 -0
- data/lib/suspenders/generators/app_generator.rb +199 -0
- data/lib/suspenders/version.rb +3 -0
- data/re-rails.gemspec +32 -0
- data/spec/fakes/bin/heroku +5 -0
- data/spec/fakes/bin/hub +5 -0
- data/spec/features/github_spec.rb +10 -0
- data/spec/features/heroku_spec.rb +12 -0
- data/spec/features/new_project_spec.rb +23 -0
- data/spec/spec_helper.rb +24 -0
- data/spec/support/fake_github.rb +21 -0
- data/spec/support/fake_heroku.rb +30 -0
- data/spec/support/suspenders.rb +50 -0
- data/templates/Gemfile_clean +49 -0
- data/templates/Procfile +2 -0
- data/templates/README.md.erb +25 -0
- data/templates/_flashes.html.erb +5 -0
- data/templates/_javascript.html.erb +10 -0
- data/templates/application.css.scss +8 -0
- data/templates/background_jobs_rspec.rb +19 -0
- data/templates/bin_setup +29 -0
- data/templates/config_locales_en.yml +11 -0
- data/templates/database_cleaner_rspec.rb +21 -0
- data/templates/disable_xml_params.rb +3 -0
- data/templates/errors.rb +28 -0
- data/templates/factories_spec.rb +13 -0
- data/templates/factories_spec_rake_task.rb +9 -0
- data/templates/factory_girl_syntax_rspec.rb +3 -0
- data/templates/postgresql_database.yml.erb +11 -0
- data/templates/rack_timeout.rb +1 -0
- data/templates/sample.env +3 -0
- data/templates/secret_token.rb +10 -0
- data/templates/smtp.rb +10 -0
- data/templates/spec_helper.rb +30 -0
- data/templates/staging.rb +3 -0
- data/templates/suspenders_gitignore +13 -0
- data/templates/suspenders_layout.html.erb.erb +15 -0
- data/templates/unicorn.rb +29 -0
- metadata +190 -0
@@ -0,0 +1,323 @@
|
|
1
|
+
module Suspenders
|
2
|
+
class AppBuilder < Rails::AppBuilder
|
3
|
+
include Suspenders::Actions
|
4
|
+
|
5
|
+
def readme
|
6
|
+
template 'README.md.erb', 'README.md'
|
7
|
+
end
|
8
|
+
|
9
|
+
def raise_on_delivery_errors
|
10
|
+
replace_in_file 'config/environments/development.rb',
|
11
|
+
'raise_delivery_errors = false', 'raise_delivery_errors = true'
|
12
|
+
end
|
13
|
+
|
14
|
+
def raise_on_unpermitted_parameters
|
15
|
+
action_on_unpermitted_parameters = <<-RUBY
|
16
|
+
|
17
|
+
# Raise an ActionController::UnpermittedParameters exception when
|
18
|
+
# a parameter is not explcitly permitted but is passed anyway.
|
19
|
+
config.action_controller.action_on_unpermitted_parameters = :raise
|
20
|
+
RUBY
|
21
|
+
inject_into_file(
|
22
|
+
"config/environments/development.rb",
|
23
|
+
action_on_unpermitted_parameters,
|
24
|
+
before: "\nend"
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
def setup_devise
|
29
|
+
run 'bundle exec rails g devise:install'
|
30
|
+
run 'bundle exec rails g devise:views'
|
31
|
+
end
|
32
|
+
|
33
|
+
def generate_cancan_ability_class
|
34
|
+
run 'bundle exec rails g cancan:ability'
|
35
|
+
end
|
36
|
+
|
37
|
+
def provide_setup_script
|
38
|
+
copy_file 'bin_setup', 'bin/setup'
|
39
|
+
run 'chmod a+x bin/setup'
|
40
|
+
end
|
41
|
+
|
42
|
+
def configure_generators
|
43
|
+
config = <<-RUBY
|
44
|
+
config.generators do |generate|
|
45
|
+
generate.helper false
|
46
|
+
generate.javascript_engine false
|
47
|
+
generate.request_specs false
|
48
|
+
generate.routing_specs false
|
49
|
+
generate.stylesheets false
|
50
|
+
generate.test_framework :rspec
|
51
|
+
generate.view_specs false
|
52
|
+
end
|
53
|
+
|
54
|
+
RUBY
|
55
|
+
|
56
|
+
inject_into_class 'config/application.rb', 'Application', config
|
57
|
+
end
|
58
|
+
|
59
|
+
def enable_factory_girl_syntax
|
60
|
+
copy_file 'factory_girl_syntax_rspec.rb', 'spec/support/factory_girl.rb'
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_factories_first
|
64
|
+
copy_file 'factories_spec.rb', 'spec/models/factories_spec.rb'
|
65
|
+
append_file 'Rakefile', factories_spec_rake_task
|
66
|
+
end
|
67
|
+
|
68
|
+
def configure_smtp
|
69
|
+
copy_file 'smtp.rb', 'config/initializers/smtp.rb'
|
70
|
+
|
71
|
+
prepend_file 'config/environments/production.rb',
|
72
|
+
"require Rails.root.join('config/initializers/smtp')\n"
|
73
|
+
|
74
|
+
config = <<-RUBY
|
75
|
+
|
76
|
+
config.action_mailer.delivery_method = :smtp
|
77
|
+
config.action_mailer.smtp_settings = SMTP_SETTINGS
|
78
|
+
RUBY
|
79
|
+
|
80
|
+
inject_into_file 'config/environments/production.rb', config,
|
81
|
+
:after => 'config.action_mailer.raise_delivery_errors = false'
|
82
|
+
end
|
83
|
+
|
84
|
+
def enable_rack_deflater
|
85
|
+
config = <<-RUBY
|
86
|
+
|
87
|
+
# Enable deflate / gzip compression of controller-generated responses
|
88
|
+
config.middleware.use Rack::Deflater
|
89
|
+
RUBY
|
90
|
+
|
91
|
+
inject_into_file 'config/environments/production.rb', config,
|
92
|
+
:after => "config.serve_static_assets = false\n"
|
93
|
+
end
|
94
|
+
|
95
|
+
def setup_staging_environment
|
96
|
+
staging_file = 'config/environments/staging.rb'
|
97
|
+
copy_file 'staging.rb', staging_file
|
98
|
+
|
99
|
+
config = <<-RUBY
|
100
|
+
|
101
|
+
#{app_name.classify}::Application.configure do
|
102
|
+
# ...
|
103
|
+
end
|
104
|
+
RUBY
|
105
|
+
|
106
|
+
append_file staging_file, config
|
107
|
+
end
|
108
|
+
|
109
|
+
def setup_secret_token
|
110
|
+
template 'secret_token.rb',
|
111
|
+
'config/initializers/secret_token.rb',
|
112
|
+
:force => true
|
113
|
+
end
|
114
|
+
|
115
|
+
def create_partials_directory
|
116
|
+
empty_directory 'app/views/application'
|
117
|
+
end
|
118
|
+
|
119
|
+
def create_shared_flashes
|
120
|
+
copy_file '_flashes.html.erb', 'app/views/application/_flashes.html.erb'
|
121
|
+
end
|
122
|
+
|
123
|
+
def create_shared_javascripts
|
124
|
+
copy_file '_javascript.html.erb', 'app/views/application/_javascript.html.erb'
|
125
|
+
end
|
126
|
+
|
127
|
+
def create_application_layout
|
128
|
+
template 'suspenders_layout.html.erb.erb',
|
129
|
+
'app/views/layouts/application.html.erb',
|
130
|
+
:force => true
|
131
|
+
end
|
132
|
+
|
133
|
+
def remove_turbolinks
|
134
|
+
replace_in_file 'app/assets/javascripts/application.js',
|
135
|
+
/\/\/= require turbolinks\n/,
|
136
|
+
''
|
137
|
+
end
|
138
|
+
|
139
|
+
def use_postgres_config_template
|
140
|
+
template 'postgresql_database.yml.erb', 'config/database.yml',
|
141
|
+
:force => true
|
142
|
+
end
|
143
|
+
|
144
|
+
def create_database
|
145
|
+
bundle_command 'exec rake db:create db:migrate'
|
146
|
+
end
|
147
|
+
|
148
|
+
def replace_gemfile
|
149
|
+
remove_file 'Gemfile'
|
150
|
+
copy_file 'Gemfile_clean', 'Gemfile'
|
151
|
+
end
|
152
|
+
|
153
|
+
def set_ruby_to_version_being_used
|
154
|
+
inject_into_file 'Gemfile', "\n\nruby '#{RUBY_VERSION}'",
|
155
|
+
after: /source 'https:\/\/rubygems.org'/
|
156
|
+
create_file '.ruby-version', "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}\n"
|
157
|
+
end
|
158
|
+
|
159
|
+
def enable_database_cleaner
|
160
|
+
copy_file 'database_cleaner_rspec.rb', 'spec/support/database_cleaner.rb'
|
161
|
+
end
|
162
|
+
|
163
|
+
def configure_spec_support_features
|
164
|
+
empty_directory_with_keep_file 'spec/features'
|
165
|
+
empty_directory_with_keep_file 'spec/support/features'
|
166
|
+
end
|
167
|
+
|
168
|
+
def configure_rspec
|
169
|
+
remove_file 'spec/spec_helper.rb'
|
170
|
+
copy_file 'spec_helper.rb', 'spec/spec_helper.rb'
|
171
|
+
end
|
172
|
+
|
173
|
+
def use_spring_binstubs
|
174
|
+
run 'bundle exec spring binstub --all'
|
175
|
+
end
|
176
|
+
def configure_background_jobs_for_rspec
|
177
|
+
copy_file 'background_jobs_rspec.rb', 'spec/support/background_jobs.rb'
|
178
|
+
run 'rails g delayed_job:active_record'
|
179
|
+
end
|
180
|
+
|
181
|
+
def configure_time_zone
|
182
|
+
config = <<-RUBY
|
183
|
+
config.active_record.default_timezone = :utc
|
184
|
+
|
185
|
+
RUBY
|
186
|
+
inject_into_class 'config/application.rb', 'Application', config
|
187
|
+
end
|
188
|
+
|
189
|
+
def configure_time_formats
|
190
|
+
remove_file 'config/locales/en.yml'
|
191
|
+
copy_file 'config_locales_en.yml', 'config/locales/en.yml'
|
192
|
+
end
|
193
|
+
|
194
|
+
def configure_rack_timeout
|
195
|
+
copy_file 'rack_timeout.rb', 'config/initializers/rack_timeout.rb'
|
196
|
+
end
|
197
|
+
|
198
|
+
def configure_action_mailer
|
199
|
+
action_mailer_host 'development', "#{app_name}.local"
|
200
|
+
action_mailer_host 'test', 'www.example.com'
|
201
|
+
action_mailer_host 'staging', "staging.#{app_name}.com"
|
202
|
+
action_mailer_host 'production', "#{app_name}.com"
|
203
|
+
end
|
204
|
+
|
205
|
+
def generate_rspec
|
206
|
+
generate 'rspec:install'
|
207
|
+
end
|
208
|
+
|
209
|
+
def configure_unicorn
|
210
|
+
copy_file 'unicorn.rb', 'config/unicorn.rb'
|
211
|
+
end
|
212
|
+
|
213
|
+
def setup_foreman
|
214
|
+
copy_file 'sample.env', '.sample.env'
|
215
|
+
copy_file 'Procfile', 'Procfile'
|
216
|
+
end
|
217
|
+
|
218
|
+
def setup_stylesheets
|
219
|
+
remove_file 'app/assets/stylesheets/application.css'
|
220
|
+
copy_file 'application.css.scss',
|
221
|
+
'app/assets/stylesheets/application.css.scss'
|
222
|
+
end
|
223
|
+
|
224
|
+
def gitignore_files
|
225
|
+
remove_file '.gitignore'
|
226
|
+
copy_file 'suspenders_gitignore', '.gitignore'
|
227
|
+
[
|
228
|
+
'app/views/pages',
|
229
|
+
'spec/lib',
|
230
|
+
'spec/controllers',
|
231
|
+
'spec/helpers',
|
232
|
+
'spec/support/matchers',
|
233
|
+
'spec/support/mixins',
|
234
|
+
'spec/support/shared_examples'
|
235
|
+
].each do |dir|
|
236
|
+
run "mkdir #{dir}"
|
237
|
+
run "touch #{dir}/.keep"
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
def init_git
|
242
|
+
run 'git init'
|
243
|
+
end
|
244
|
+
|
245
|
+
def create_heroku_apps
|
246
|
+
path_addition = override_path_for_tests
|
247
|
+
run "#{path_addition} heroku create #{app_name}-production --remote=production"
|
248
|
+
run "#{path_addition} heroku create #{app_name}-staging --remote=staging"
|
249
|
+
run "#{path_addition} heroku config:add RACK_ENV=staging RAILS_ENV=staging --remote=staging"
|
250
|
+
end
|
251
|
+
|
252
|
+
def set_heroku_remotes
|
253
|
+
remotes = <<-RUBY
|
254
|
+
|
255
|
+
# Set up staging and production git remotes
|
256
|
+
git remote add staging git@heroku.com:#{app_name}-staging.git
|
257
|
+
git remote add production git@heroku.com:#{app_name}-production.git
|
258
|
+
RUBY
|
259
|
+
|
260
|
+
append_file 'bin/setup', remotes
|
261
|
+
end
|
262
|
+
|
263
|
+
def set_heroku_rails_secrets
|
264
|
+
path_addition = override_path_for_tests
|
265
|
+
run "#{path_addition} heroku config:add SECRET_KEY_BASE=#{generate_secret} --remote=staging"
|
266
|
+
run "#{path_addition} heroku config:add SECRET_KEY_BASE=#{generate_secret} --remote=production"
|
267
|
+
end
|
268
|
+
|
269
|
+
def create_github_repo(repo_name)
|
270
|
+
path_addition = override_path_for_tests
|
271
|
+
run "#{path_addition} hub create #{repo_name}"
|
272
|
+
end
|
273
|
+
|
274
|
+
def copy_miscellaneous_files
|
275
|
+
copy_file 'errors.rb', 'config/initializers/errors.rb'
|
276
|
+
end
|
277
|
+
|
278
|
+
def customize_error_pages
|
279
|
+
meta_tags =<<-EOS
|
280
|
+
<meta charset='utf-8' />
|
281
|
+
<meta name='ROBOTS' content='NOODP' />
|
282
|
+
EOS
|
283
|
+
|
284
|
+
%w(500 404 422).each do |page|
|
285
|
+
inject_into_file "public/#{page}.html", meta_tags, :after => "<head>\n"
|
286
|
+
replace_in_file "public/#{page}.html", /<!--.+-->\n/, ''
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
def remove_routes_comment_lines
|
291
|
+
replace_in_file 'config/routes.rb',
|
292
|
+
/Application\.routes\.draw do.*end/m,
|
293
|
+
"Application.routes.draw do\nend"
|
294
|
+
end
|
295
|
+
|
296
|
+
def disable_xml_params
|
297
|
+
copy_file 'disable_xml_params.rb', 'config/initializers/disable_xml_params.rb'
|
298
|
+
end
|
299
|
+
|
300
|
+
def setup_default_rake_task
|
301
|
+
append_file 'Rakefile' do
|
302
|
+
"task(:default).clear\ntask :default => [:spec]\n"
|
303
|
+
end
|
304
|
+
end
|
305
|
+
|
306
|
+
private
|
307
|
+
|
308
|
+
def override_path_for_tests
|
309
|
+
if ENV['TESTING']
|
310
|
+
support_bin = File.expand_path(File.join('..', '..', 'spec', 'fakes', 'bin'))
|
311
|
+
"PATH=#{support_bin}:$PATH"
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
315
|
+
def factories_spec_rake_task
|
316
|
+
IO.read find_in_source_paths('factories_spec_rake_task.rb')
|
317
|
+
end
|
318
|
+
|
319
|
+
def generate_secret
|
320
|
+
SecureRandom.hex(64)
|
321
|
+
end
|
322
|
+
end
|
323
|
+
end
|
@@ -0,0 +1,199 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'rails/generators/rails/app/app_generator'
|
3
|
+
|
4
|
+
module Suspenders
|
5
|
+
class AppGenerator < Rails::Generators::AppGenerator
|
6
|
+
class_option :database, :type => :string, :aliases => '-d', :default => 'postgresql',
|
7
|
+
:desc => "Preconfigure for selected database (options: #{DATABASES.join('/')})"
|
8
|
+
|
9
|
+
class_option :heroku, :type => :boolean, :aliases => '-H', :default => false,
|
10
|
+
:desc => 'Create staging and production Heroku apps'
|
11
|
+
|
12
|
+
class_option :github, :type => :string, :aliases => '-G', :default => nil,
|
13
|
+
:desc => 'Create Github repository and add remote origin pointed to repo'
|
14
|
+
|
15
|
+
class_option :skip_test_unit, :type => :boolean, :aliases => '-T', :default => true,
|
16
|
+
:desc => 'Skip Test::Unit files'
|
17
|
+
|
18
|
+
def make_gemset
|
19
|
+
gemset_name = ask "Name your gemset"
|
20
|
+
run "rvm gemset use #{gemset_name} --create"
|
21
|
+
run "touch .ruby-gemset"
|
22
|
+
run "echo #{gemset_name} >> .ruby-gemset"
|
23
|
+
end
|
24
|
+
|
25
|
+
def finish_template
|
26
|
+
invoke :suspenders_customization
|
27
|
+
super
|
28
|
+
end
|
29
|
+
|
30
|
+
def suspenders_customization
|
31
|
+
invoke :customize_gemfile
|
32
|
+
invoke :setup_development_environment
|
33
|
+
invoke :setup_test_environment
|
34
|
+
invoke :setup_production_environment
|
35
|
+
invoke :setup_staging_environment
|
36
|
+
invoke :setup_secret_token
|
37
|
+
invoke :create_suspenders_views
|
38
|
+
invoke :setup_coffeescript
|
39
|
+
invoke :configure_app
|
40
|
+
invoke :setup_stylesheets
|
41
|
+
invoke :copy_miscellaneous_files
|
42
|
+
invoke :customize_error_pages
|
43
|
+
invoke :remove_routes_comment_lines
|
44
|
+
invoke :setup_git
|
45
|
+
invoke :setup_database
|
46
|
+
invoke :create_heroku_apps
|
47
|
+
invoke :create_github_repo
|
48
|
+
invoke :outro
|
49
|
+
end
|
50
|
+
|
51
|
+
def customize_gemfile
|
52
|
+
build :replace_gemfile
|
53
|
+
build :set_ruby_to_version_being_used
|
54
|
+
bundle_command 'install'
|
55
|
+
end
|
56
|
+
|
57
|
+
def setup_database
|
58
|
+
say 'Setting up database'
|
59
|
+
|
60
|
+
if 'postgresql' == options[:database]
|
61
|
+
build :use_postgres_config_template
|
62
|
+
end
|
63
|
+
|
64
|
+
build :create_database
|
65
|
+
end
|
66
|
+
|
67
|
+
def setup_development_environment
|
68
|
+
say 'Setting up the development environment'
|
69
|
+
build :raise_on_delivery_errors
|
70
|
+
build :raise_on_unpermitted_parameters
|
71
|
+
build :provide_setup_script
|
72
|
+
build :configure_generators
|
73
|
+
end
|
74
|
+
|
75
|
+
def setup_test_environment
|
76
|
+
say 'Setting up the test environment'
|
77
|
+
build :enable_factory_girl_syntax
|
78
|
+
build :test_factories_first
|
79
|
+
build :generate_rspec
|
80
|
+
build :configure_rspec
|
81
|
+
build :use_spring_binstubs
|
82
|
+
build :configure_background_jobs_for_rspec
|
83
|
+
build :enable_database_cleaner
|
84
|
+
build :configure_spec_support_features
|
85
|
+
end
|
86
|
+
|
87
|
+
def setup_production_environment
|
88
|
+
say 'Setting up the production environment'
|
89
|
+
build :configure_smtp
|
90
|
+
build :enable_rack_deflater
|
91
|
+
end
|
92
|
+
|
93
|
+
def setup_staging_environment
|
94
|
+
say 'Setting up the staging environment'
|
95
|
+
build :setup_staging_environment
|
96
|
+
end
|
97
|
+
|
98
|
+
def setup_secret_token
|
99
|
+
say 'Moving secret token out of version control'
|
100
|
+
build :setup_secret_token
|
101
|
+
end
|
102
|
+
|
103
|
+
def create_suspenders_views
|
104
|
+
say 'Creating suspenders views'
|
105
|
+
build :create_partials_directory
|
106
|
+
build :create_shared_flashes
|
107
|
+
build :create_shared_javascripts
|
108
|
+
build :create_application_layout
|
109
|
+
end
|
110
|
+
|
111
|
+
def setup_coffeescript
|
112
|
+
say 'Setting up CoffeeScript defaults'
|
113
|
+
build :remove_turbolinks
|
114
|
+
end
|
115
|
+
|
116
|
+
def configure_app
|
117
|
+
say 'Configuring app'
|
118
|
+
build :configure_action_mailer
|
119
|
+
build :configure_time_zone
|
120
|
+
build :configure_time_formats
|
121
|
+
build :configure_rack_timeout
|
122
|
+
build :setup_devise
|
123
|
+
build :generate_cancan_ability_class
|
124
|
+
build :disable_xml_params
|
125
|
+
build :setup_default_rake_task
|
126
|
+
build :configure_unicorn
|
127
|
+
build :setup_foreman
|
128
|
+
end
|
129
|
+
|
130
|
+
def setup_stylesheets
|
131
|
+
say 'Set up stylesheets'
|
132
|
+
build :setup_stylesheets
|
133
|
+
end
|
134
|
+
|
135
|
+
def setup_git
|
136
|
+
if !options[:skip_git]
|
137
|
+
say 'Initializing git'
|
138
|
+
invoke :setup_gitignore
|
139
|
+
invoke :init_git
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def create_heroku_apps
|
144
|
+
if options[:heroku]
|
145
|
+
say 'Creating Heroku apps'
|
146
|
+
build :create_heroku_apps
|
147
|
+
build :set_heroku_remotes
|
148
|
+
build :set_heroku_rails_secrets
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def create_github_repo
|
153
|
+
if !options[:skip_git] && options[:github]
|
154
|
+
say 'Creating Github repo'
|
155
|
+
build :create_github_repo, options[:github]
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def setup_gitignore
|
160
|
+
build :gitignore_files
|
161
|
+
end
|
162
|
+
|
163
|
+
def init_git
|
164
|
+
build :init_git
|
165
|
+
end
|
166
|
+
|
167
|
+
def copy_miscellaneous_files
|
168
|
+
say 'Copying miscellaneous support files'
|
169
|
+
build :copy_miscellaneous_files
|
170
|
+
end
|
171
|
+
|
172
|
+
def customize_error_pages
|
173
|
+
say 'Customizing the 500/404/422 pages'
|
174
|
+
build :customize_error_pages
|
175
|
+
end
|
176
|
+
|
177
|
+
def remove_routes_comment_lines
|
178
|
+
build :remove_routes_comment_lines
|
179
|
+
end
|
180
|
+
|
181
|
+
def outro
|
182
|
+
say 'Congratulations! Your app is now generated'
|
183
|
+
end
|
184
|
+
|
185
|
+
def run_bundle
|
186
|
+
# Let's not: We'll bundle manually at the right spot
|
187
|
+
end
|
188
|
+
|
189
|
+
protected
|
190
|
+
|
191
|
+
def get_builder_class
|
192
|
+
Suspenders::AppBuilder
|
193
|
+
end
|
194
|
+
|
195
|
+
def using_active_record?
|
196
|
+
!options[:skip_active_record]
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|