Sha256: 879e50b670889270a0412ad2a17b46aff67742c9d38e2a33a507b84b76142715

Contents?: true

Size: 1.39 KB

Versions: 13

Compression:

Stored size: 1.39 KB

Contents

# CLI Module
module Middleman::Cli
  # A thor task for creating new projects
  class Extension < Thor
    include Thor::Actions

    check_unknown_options!

    namespace :extension

    # Required path for the new project to be generated
    argument :name, type: :string

    # Template files are relative to this file
    # @return [String]
    def self.source_root
      File.join(File.dirname(__FILE__), '..', 'templates', 'extension')
    end

    desc 'extension [options]', 'Create Middleman extension scaffold NAME'

    # The extension task
    # @param [String] name
    def extension
      generate_gitignore!
      template 'Rakefile', File.join(name, 'Rakefile')
      template 'gemspec', File.join(name, "#{name}.gemspec")
      template 'Gemfile', File.join(name, 'Gemfile')
      template 'lib/middleman_extension.rb', File.join(name, 'lib', 'middleman_extension.rb')
      template 'lib/lib.rb', File.join(name, 'lib', "#{name}.rb")
      template 'features/support/env.rb', File.join(name, 'features', 'support', 'env.rb')
      empty_directory File.join(name, 'fixtures')
    end

    # Output a .gitignore file
    class_option :git, type: :boolean, default: true

    no_tasks {
      # Write a .gitignore file for project
      # @return [void]
      def generate_gitignore!
        return unless options[:git]
        copy_file 'gitignore', File.join(name, '.gitignore')
      end
    }
  end
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
middleman-core-3.3.12 lib/middleman-core/cli/extension.rb
middleman-core-3.3.11 lib/middleman-core/cli/extension.rb
middleman-core-3.3.10 lib/middleman-core/cli/extension.rb
middleman-core-3.3.9 lib/middleman-core/cli/extension.rb
middleman-core-3.3.8 lib/middleman-core/cli/extension.rb
middleman-core-3.3.7 lib/middleman-core/cli/extension.rb
middleman-core-3.3.6 lib/middleman-core/cli/extension.rb
middleman-core-3.3.5 lib/middleman-core/cli/extension.rb
middleman-core-cj-3.3.6 lib/middleman-core/cli/extension.rb
middleman-core-cj-3.3.5 lib/middleman-core/cli/extension.rb
middleman-core-cj-3.3.4 lib/middleman-core/cli/extension.rb
middleman-core-3.3.4 lib/middleman-core/cli/extension.rb
middleman-core-3.3.3 lib/middleman-core/cli/extension.rb