Sha256: e09ccb0098c2133984bf261d0e6587939470b17c649d017c6342ddfa6a530df0

Contents?: true

Size: 805 Bytes

Versions: 5

Compression:

Stored size: 805 Bytes

Contents

module Take
  class Project
    module Requirement
      class Base

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

        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

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

        def expected_block?
          true
        end

        def default_action
          self.class.default_action
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
take-0.0.15 lib/take/project/requirement/base.rb
take-0.0.14 lib/take/project/requirement/base.rb
take-0.0.13 lib/take/project/requirement/base.rb
take-0.0.12 lib/take/project/requirement/base.rb
take-0.0.11 lib/take/project/requirement/base.rb