Method: Libertine::Project#initialize

Defined in:
lib/libertine/project.rb

#initialize(name, dir = nil, &block) ⇒ Project

Returns a new instance of Project.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/libertine/project.rb', line 14

def initialize name, dir = nil, &block
  @authors  = []
  @dir      = dir || "."
  @emails   = []
  @excludes = []
  @homepage = "http://github.com/#{ENV['USER']}/#{name}"
  @includes = %w(.manifest)
  @name     = name
  @ruby     = ">= 1.8.7"
  @scm      = Libertine::SCM::Git.new @dir

  if readme = glob("README*").first
    grafs = File.read(readme).delete("\r").split(/\n\n+/).reject do |t|
      /\A\s/ =~ t || /^[#-=]/ =~ t
    end

    @description = grafs.first.gsub /\n\s*/, " "
    @summary     = @description.split(".\s").first + "."
  end

  instance_eval(&block) if block_given?
  tasks!
end