module Take class Project class Definition def initialize(project) @project = project @targets = {} @converts = [] @requirements = [] end def target(hash, &blk) ntarget = Target.new(hash, @project, &blk) @targets[ntarget.name] = ntarget end def targets @targets end def to_convert(*opts, &blk) Convert.new(*opts, &blk).tap { |c| @converts << c } end def requires(hash, &blk) Requirement.convert(hash, @project, &blk). tap { |r| @requirements.concat(r) } end end end end