module Take::Project::Requirement

Public Class Methods

convert(hash, project, &blk) click to toggle source
# File lib/take/project/requirement.rb, line 10
def self.convert(hash, project, &blk)
  if hash.size > 1
    raise ArgumentError, "Cannot use a block for a " \
      "multi-requirement!" if block_given?
  end

  requirements = []

  hash.each do |key, value|
    requirement_class = lookup(key)
    requirement = requirement_class.new(key, value, project,
      &blk)
    requirements << requirement
  end

  requirements
end
lookup(name) click to toggle source
# File lib/take/project/requirement.rb, line 28
def self.lookup(name)
  case name
  when :header
    Header
  when :library
    Library
  when :program
    Program
  when Class
    name
  else
    raise ArgumentError, "Unknown requirement #{name.inspect}!"
  end
end