manveru / ramaze

Ramaze is a simple, light and modular open-source web application framework written in Ruby.

This URL has Read+Write access

ramaze / lib / ramaze / tool / create.rb
100644 49 lines (40 sloc) 1.423 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
# All files in this distribution are subject to the terms of the Ruby license.
 
require 'ramaze/tool/project_creator'
 
module Ramaze
  module Tool
 
    # Create is a simple class used to create new projects based on the proto
    # directory.
    #
    # It is primarly used for this command:
    #
    # ramaze --create project
    #
    # where project is the directory you want the content put into.
 
    class Create
 
      # Default options passed to Create::create
      # :proto is the directory to duplicate
      # :amend no files may be overwritten but missing files will be added
      # :force will overwrite existing files
      # :layout copy one subdirectory in +proto+
 
      DEFAULT = {
        :proto => File.join(ROOT, 'proto'),
        :amend => false,
        :force => false,
        :layout => '/',
      }
 
      # Using ProjectCreator to copy all files and directories from lib/proto
      # to another location.
      # +options+ are described in the DEFAULT constant and should be:
      # :force => (true|false|nil)
      # :amend => (true|false|nil)
      # :layout => (String|nil)
      # :proto => String
 
      def self.create(project, options = {})
        options = DEFAULT.merge(options)
        creator = ProjectCreator.new(project, options)
        creator.create
      end
    end
  end
end