Class: Volley::Dsl::Project

Inherits:
Object
  • Object
show all
Defined in:
lib/volley/dsl/project.rb

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Project

Returns a new instance of Project.



40
41
42
43
# File 'lib/volley/dsl/project.rb', line 40

def initialize(name)
  @name = name
  @plans = {}
end

Class Attribute Details

.projectsObject (readonly)

Returns the value of attribute projects.



6
7
8
# File 'lib/volley/dsl/project.rb', line 6

def projects
  @projects
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



38
39
40
# File 'lib/volley/dsl/project.rb', line 38

def name
  @name
end

#plansObject (readonly)

Returns the value of attribute plans.



37
38
39
# File 'lib/volley/dsl/project.rb', line 37

def plans
  @plans
end

Class Method Details

.configObject



23
24
25
# File 'lib/volley/dsl/project.rb', line 23

def config
  Volley.config
end

.exists?(name) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
30
# File 'lib/volley/dsl/project.rb', line 27

def exists?(name)
  n = name.to_sym
  @projects.keys.include?(n)
end

.get(name) ⇒ Object



19
20
21
# File 'lib/volley/dsl/project.rb', line 19

def get(name)
  @projects[name.to_sym]
end

.project(name, o = {}, &block) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/volley/dsl/project.rb', line 7

def project(name, o={}, &block)
  n = name.to_sym
  @projects ||= {}
  if @projects[n]
    raise "defining project #{name} more than once"
  else
    @projects[n] = new(n)
    @projects[n].instance_eval &block if block_given?
  end
  @projects[n]
end

.unloadObject



32
33
34
# File 'lib/volley/dsl/project.rb', line 32

def unload
  @projects = nil
end

Instance Method Details

#configObject



45
46
47
# File 'lib/volley/dsl/project.rb', line 45

def config
  Volley.config
end

#log(msg) ⇒ Object



49
50
51
# File 'lib/volley/dsl/project.rb', line 49

def log(msg)
  Volley::Log.info msg
end

#plan(name, o = {}, &block) ⇒ Object



53
54
55
56
57
58
59
60
61
62
# File 'lib/volley/dsl/project.rb', line 53

def plan(name, o={}, &block)
  n = name.to_sym
  options = {
      :project => self
  }.merge(o)
  if block_given?
    @plans[n] ||= Volley::Dsl::Plan.new(name, options, &block)
  end
  @plans[n]
end

#plan?(name) ⇒ Boolean

Returns:

  • (Boolean)


64
65
66
67
# File 'lib/volley/dsl/project.rb', line 64

def plan?(name)
  n = name.to_sym
  @plans.keys.include?(n)
end

#scm(name, o = {}, &block) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/volley/dsl/project.rb', line 69

def scm(name, o={}, &block)
  options = {
      :required => true,
  }.merge(o)
  n = name.to_s

  if n == "auto"
    n = autoscm
  end

  if n.nil? || n.blank?
    if options[:required]
      raise "could not automatically determine SCM"
    else
      return
    end
  end

  require "volley/scm/#{n}"
  klass = "Volley::Scm::#{n.camelize}".constantize
  @source = klass.new(options)
rescue => e
  raise "unable to load SCM provider: #{n} #{e.message}"
end

#sourceObject



94
95
96
# File 'lib/volley/dsl/project.rb', line 94

def source
  @source or raise Volley::ScmNotConfigured, "SCM not configured"
end