Class: Middleman::Presentation::Cli::CreatePresentation
- Inherits:
-
BaseGroup
- Object
- Thor::Group
- BaseGroup
- Middleman::Presentation::Cli::CreatePresentation
show all
- Includes:
- Thor::Actions
- Defined in:
- lib/middleman-presentation-core/cli/create_presentation.rb
Overview
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Shared
#assets_loader, #bower_path, #enable_debug_mode, included, #open_in_editor
Class Method Details
.exit_on_failure? ⇒ Boolean
9
10
11
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 9
def self.exit_on_failure?
true
end
|
Instance Method Details
#add_configuration_for_middleman_presentation ⇒ Object
222
223
224
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 222
def add_configuration_for_middleman_presentation
template 'config.rb.tt', File.join(middleman_environment.root_path, 'config.rb'), force: options[:force]
end
|
#add_patterns_to_gitignore ⇒ Object
226
227
228
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 226
def add_patterns_to_gitignore
template 'gitignore.tt', File.join(middleman_environment.root_path, '.gitignore'), force: options[:force]
end
|
#add_to_sources_path ⇒ Object
88
89
90
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 88
def add_to_sources_path
source_paths << File.expand_path('../../../../templates', __FILE__)
end
|
#create_application_asset_files ⇒ Object
284
285
286
287
288
289
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 284
def create_application_asset_files
assets_loader.load_for_asset_aggregators
template 'source/stylesheets/application.scss.tt', File.join(middleman_environment.sources_path, 'stylesheets', 'application.scss'), force: options[:force]
template 'source/javascripts/application.js.tt', File.join(middleman_environment.sources_path, 'javascripts', 'application.js'), force: options[:force]
end
|
#create_bower_configuration_files ⇒ Object
206
207
208
209
210
211
212
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 206
def create_bower_configuration_files
assets_loader.load_for_bower_update
@bower_directory = middleman_environment.bower_directory
template '.bowerrc.tt', File.join(middleman_environment.root_path, '.bowerrc'), force: options[:force]
template 'bower.json.tt', File.join(middleman_environment.root_path, 'bower.json'), force: options[:force]
end
|
#create_default_license_file_to_presentation ⇒ Object
251
252
253
254
255
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 251
def create_default_license_file_to_presentation
license_template = PresentationLicenseTemplate.new
template license_template.file, File.join(middleman_environment.root_path, "LICENSE#{license_template.proposed_extname}"), force: options[:force]
end
|
#create_default_slides ⇒ Object
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 235
def create_default_slides
return unless options[:create_predefined_slides]
PredefinedSlideTemplateDirectory.new(working_directory: middleman_environment.root_path).template_files.each do |file|
template(
file,
File.join(
middleman_environment.sources_path,
Middleman::Presentation.config.slides_directory,
File.basename(file, '.tt')
),
force: options[:force]
)
end
end
|
#create_directories ⇒ Object
172
173
174
175
176
177
178
179
180
181
182
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 172
def create_directories
[
:images_path,
:scripts_path,
:stylesheets_path,
:fonts_path
].each do |dir|
empty_directory middleman_environment.public_send(dir), force: options[:force]
end
end
|
#create_gemfile ⇒ Object
184
185
186
187
188
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 184
def create_gemfile
@rubygem_path = File.expand_path('../../../../../', __FILE__)
@library_version = Middleman::Presentation::VERSION
template 'Gemfile.tt', File.join(middleman_environment.root_path, 'Gemfile'), force: options[:force]
end
|
#create_helper_scripts ⇒ Object
257
258
259
260
261
262
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 257
def create_helper_scripts
%w(start bootstrap build export).each do |s|
copy_file File.join('script', s), File.join(middleman_environment.root_path, 'script', s), force: options[:force]
chmod File.join(middleman_environment.root_path, 'script', s), 0755, force: options[:force]
end
end
|
#create_local_config_file ⇒ Object
198
199
200
201
202
203
204
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 198
def create_local_config_file
create_file(
File.join(middleman_environment.root_path, '.middleman-presentation.local.yaml'),
Middleman::Presentation.config.to_yaml(keys: Middleman::Presentation.config.local_options, remove_blank: true),
force: options[:force]
)
end
|
#create_presentation_config_file ⇒ Object
190
191
192
193
194
195
196
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 190
def create_presentation_config_file
create_file(
File.join(middleman_environment.root_path, '.middleman-presentation.yaml'),
Middleman::Presentation.config.to_yaml(keys: Middleman::Presentation.config.exportable_options, remove_blank: true),
force: options[:force]
)
end
|
#create_presentation_layout ⇒ Object
230
231
232
233
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 230
def create_presentation_layout
template 'source/layout.erb', File.join(middleman_environment.sources_path, 'layout.erb'), force: options[:force]
copy_file 'source/index.html.erb', File.join(middleman_environment.sources_path, 'index.html.erb'), force: options[:force]
end
|
#create_rake_file ⇒ Object
214
215
216
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 214
def create_rake_file
template 'Rakefile', File.join(middleman_environment.root_path, 'Rakefile'), force: options[:force]
end
|
#create_root_directory ⇒ Object
168
169
170
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 168
def create_root_directory
empty_directory directory, force: options[:force]
end
|
#create_slides_ignore_file ⇒ Object
218
219
220
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 218
def create_slides_ignore_file
create_file File.join(middleman_environment.root_path, Middleman::Presentation.config.slides_ignore_file), "# empty\n", force: options[:force]
end
|
#expand_directory ⇒ Object
92
93
94
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 92
def expand_directory
@directory = File.expand_path(directory)
end
|
#initialize_generator ⇒ Object
84
85
86
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 84
def initialize_generator
enable_debug_mode
end
|
#initialize_git_directory ⇒ Object
291
292
293
294
295
296
297
298
299
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 291
def initialize_git_directory
return unless options[:initialize_git]
inside directory do
run 'git init'
run 'git add -A .'
run 'git commit -m Init'
end
end
|
#install_components ⇒ Object
264
265
266
267
268
269
270
271
272
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 264
def install_components
inside directory do
fail Thor::Error, Middleman::Presentation.t('errors.bower_command_not_found', path: ENV['PATH']) if options[:check_for_bower] && File.which('bower').blank?
system('bower update') || \
fail(Thor::Error, Middleman::Presentation.t('errors.bower_command_failed', result: '')) \
if options[:install_assets] == true
end
end
|
#install_gems ⇒ Object
274
275
276
277
278
279
280
281
282
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 274
def install_gems
inside directory do
Bundler.with_clean_env do
system('bundle install') || \
fail(Thor::Error, Middleman::Presentation.t('errors.bundle_command_failed', result: '')) \
if options[:install_assets] == true
end
end
end
|
#set_language ⇒ Object
96
97
98
99
100
101
|
# File 'lib/middleman-presentation-core/cli/create_presentation.rb', line 96
def set_language
@language = FeduxOrgStdlib::ShellLanguageDetector.new.detect(
allowed: Middleman::Presentation.locale_configurator.available_locales,
overwrite: options[:language]
).language_code
end
|
#set_variables_for_templates ⇒ Object