Sha256: 870e212f9a617651b98b3231a7a95e6214b130dd9157a4f901286bd1be9c4116

Contents?: true

Size: 1.46 KB

Versions: 2

Compression:

Stored size: 1.46 KB

Contents

module Couch::Generators
  class ApplicationGenerator < Base
    argument :app_path, :type => :string

    class_option :skip_git, :type => :boolean, :aliases => "-G", :default => false,
                            :desc => "Skip Git ignores and keeps"


    def create_root
      self.destination_root = File.expand_path(app_path, destination_root)
 
      empty_directory '.'
      FileUtils.cd(destination_root) if File.directory?(destination_root)
    end

    def create_root_files
      template "couchrc", ".couchrc"
      copy_file "README"
      copy_file "gitignore", ".gitignore" unless options[:skip_git]
      template "_id"
      copy_file "validate_doc_update.js"
      empty_directory_with_gitkeep "lists"
      empty_directory_with_gitkeep "shows"
      empty_directory_with_gitkeep "updates"
      empty_directory_with_gitkeep "views"
    end

    def create_attachments_files
      empty_directory "_attachments"
      inside "_attachments" do
        empty_directory_with_gitkeep "images"
        empty_directory_with_gitkeep "javascripts"
        directory "stylesheets"
        template "index.html"
      end
    end

    protected

    def app_name
      @app_name ||= File.basename(destination_root)
    end

    def app_title
      @app_title ||= app_name.humanize
    end

    def empty_directory_with_gitkeep(destination, config = {})
      empty_directory(destination, config)
      create_file("#{destination}/.gitkeep") unless options[:skip_git]
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
couch-0.0.2 lib/couch/generators/application/application_generator.rb
couch-0.0.1 lib/couch/generators/application/application_generator.rb