Class: Take::Project::Requirement::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/take/project/requirement/base.rb

Direct Known Subclasses

Header, Library, Program

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, data, project, &blk) ⇒ Base

Returns a new instance of Base.

Raises:

  • (ArgumentError)


14
15
16
17
18
19
20
21
22
# File 'lib/take/project/requirement/base.rb', line 14

def initialize(type, data, project, &blk)
  @type = type
  @data = data
  @block = blk
  @project = project

  raise ArgumentError, "Unexpected block for requirement " \
    "#{self.class}" unless expected_block?
end

Class Method Details

.default_action(&blk) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/take/project/requirement/base.rb', line 6

def self.default_action(&blk)
  if block_given?
    @_default_action = blk
  else
    @_default_action
  end
end

Instance Method Details

#default_actionObject



33
34
35
# File 'lib/take/project/requirement/base.rb', line 33

def default_action
  self.class.default_action
end

#expected_block?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/take/project/requirement/base.rb', line 29

def expected_block?
  true
end

#fills_requirement?Boolean

Returns:

  • (Boolean)


24
25
26
27
# File 'lib/take/project/requirement/base.rb', line 24

def fills_requirement?
  block = @block || default_action
  block.call(@data, @project)
end