Class: Middleman::Presentation::Cli::BuildPresentation

Inherits:
BaseGroup
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/middleman-presentation-core/cli/build_presentation.rb

Overview

This class provides an ‘build presentation’ command for the middleman CLI.

Instance Method Summary collapse

Methods included from Shared

#assets_loader, #bower_path, #enable_debug_mode, included, #open_in_editor

Instance Method Details

#add_licenseObject



79
80
81
82
83
# File 'lib/middleman-presentation-core/cli/build_presentation.rb', line 79

def add_license
  return if @license_file.blank?

  copy_file @license_file, File.join(@environment.build_directory, File.basename(@license_file))
end

#add_rackup_fileObject



63
64
65
# File 'lib/middleman-presentation-core/cli/build_presentation.rb', line 63

def add_rackup_file
  template 'rackup.config.erb', @rackup_config_file
end

#add_readmeObject



74
75
76
77
# File 'lib/middleman-presentation-core/cli/build_presentation.rb', line 74

def add_readme
  template_file = BuildReadmeTemplate.new
  template template_file.file, File.join(@environment.build_directory, "README#{template_file.proposed_extname}"), force: options[:force]
end

#add_server_executablesObject



67
68
69
70
71
72
# File 'lib/middleman-presentation-core/cli/build_presentation.rb', line 67

def add_server_executables
  return unless @add_static_servers

  pattern = File.expand_path('../../../../utils/server/*', __FILE__)
  Dir.glob(pattern).each { |f| FileUtils.cp f, @environment.build_path }
end

#add_to_source_pathObject



17
18
19
# File 'lib/middleman-presentation-core/cli/build_presentation.rb', line 17

def add_to_source_path
  source_paths << File.expand_path('../../../../templates', __FILE__)
end

#build_presentationObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/middleman-presentation-core/cli/build_presentation.rb', line 48

def build_presentation
  Middleman::Presentation.logger.info Middleman::Presentation.t(
    'views.presentation.build.headline',
    title: Middleman::Presentation.config.title
  )

  cmd = []
  cmd << 'middleman build'
  cmd << '--verbose' if options[:debug_mode]

  system cmd.join(' ')

  fail Thor::Error, Middleman::Presentation.t('errors.middleman_build_error', result: '') unless $CHILD_STATUS.exitstatus == 0
end

#cleanupObject



21
22
23
24
# File 'lib/middleman-presentation-core/cli/build_presentation.rb', line 21

def cleanup
  # before server.inst to prevent having duplicate files
  remove_dir 'build'
end

#extract_dataObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/middleman-presentation-core/cli/build_presentation.rb', line 30

def extract_data
  @images_directory      = @environment.images_directory
  @stylesheets_directory = @environment.stylesheets_directory
  @javascripts_directory = @environment.scripts_directory
  @fonts_directory       = @environment.fonts_directory
  @rackup_config_file    = File.join @environment.build_directory, 'config.ru'
  @readme_file           = File.join @environment.build_directory, 'README.md'

  @title                 = Middleman::Presentation.config.title
  @subtitle              = Middleman::Presentation.config.subtitle
  @author                = Middleman::Presentation.config.author
  @speaker               = Middleman::Presentation.config.speaker
  @date                  = Middleman::Presentation.config.date
  @license_file          = Dir.glob(File.join(@environment.root_path, 'LICENSE.*')).first

  @add_static_servers = options[:add_static_servers]
end

#initialize_generatorObject



13
14
15
# File 'lib/middleman-presentation-core/cli/build_presentation.rb', line 13

def initialize_generator
  enable_debug_mode
end

#make_middleman_environment_availableObject



26
27
28
# File 'lib/middleman-presentation-core/cli/build_presentation.rb', line 26

def make_middleman_environment_available
  @environment = MiddlemanEnvironment.new
end