Sha256: 1d2ab6aeb1dce11dbeca6b898e2140d7f0a1e57d6d76bec29550f5c500663df3

Contents?: true

Size: 1.07 KB

Versions: 2

Compression:

Stored size: 1.07 KB

Contents

module Spade::CLI
  class ProjectGenerator
    include Thor::Actions

    source_root File.expand_path('../../templates/project', __FILE__)

    attr_reader :name

    def initialize(thor, name, root)
      @thor, @name, @root = thor, name, root

      self.destination_root = root
    end

    def run
      empty_directory '.'
      FileUtils.cd(destination_root)

      template "LICENSE"
      template "README.md"
      template "project.json"

      empty_directory "lib"
      empty_directory "tests"

      inside "lib" do
        template "main.js"
      end

      inside "tests" do
        template "main-test.js"
      end
    end

  private

    def app_const
      name.gsub(/\W|-/, '_').squeeze('_').gsub(/(?:^|_)(.)/) { $1.upcase }
    end

    def current_year
      Time.now.year
    end

    def source_paths
      [File.expand_path('../../templates/project', __FILE__)] +
        @thor.source_paths
    end

    def respond_to?(*args)
      super || @thor.respond_to?(*args)
    end

    def method_missing(name, *args, &blk)
      @thor.send(name, *args, &blk)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
spade-0.0.8.1 lib/spade/cli/project_generator.rb
spade-0.0.7 lib/spade/cli/project_generator.rb