Sha256: 60d6df93feb22c52f42c98f4a4998017c0f222f0250b2827896b8b04a7a200aa

Contents?: true

Size: 1.4 KB

Versions: 2

Compression:

Stored size: 1.4 KB

Contents

# encoding: utf-8
module Middleman
  module Presentation
    module Cli
      # Bundle shared methods for all cli classes
      module Shared
        def self.included(base)
          base.extend ClassMethods
        end

        # Enable debug mode
        def enable_debug_mode
          Middleman::Presentation.enable_debug_mode if options[:debug_mode] == true
        end

        # Create bower directory
        def bower_path
          MiddlemanEnvironment.new.bower_path
        end

        # Create assets loader base on bower directory
        def assets_loader
          return @assets_loader if @assets_loader

          @assets_loader = Middleman::Presentation::AssetsLoader.new(bower_directory: bower_path)
        end

        def open_in_editor(paths)
          editor = []

          begin
            editor << Erubis::Eruby.new(options[:editor_command]).result(Middleman::Presentation.config.to_h)
          rescue NameError => e
            $stderr.puts Middleman::Presentation.t('errors.missing_data_attribute', message: e.message)
          end
          editor.concat paths

          Middleman::Presentation.logger.warn Middleman::Presentation.t('infos.open_slide_in_editor', editor: editor.first)
          system(editor.join(' '))
        end

        # The class methods
        module ClassMethods
          def self.exit_on_failure?
            true
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
middleman-presentation-core-0.16.0.beta lib/middleman-presentation-core/cli/shared.rb
middleman-presentation-core-0.16.0.alpha lib/middleman-presentation-core/cli/shared.rb