middleman/middleman-core/lib/middleman-core/contracts.rb

24 lines
502 B
Ruby
Raw Normal View History

require 'contracts'
require 'hamster'
2014-07-03 04:04:34 +02:00
module Contracts
class IsA
def self.[](val)
@lookup ||= {}
@lookup[val] ||= new(val)
2014-07-10 21:35:47 +02:00
end
2014-07-14 22:19:34 +02:00
def initialize(val)
@val = val
2014-07-14 22:19:34 +02:00
end
2014-06-29 00:07:43 +02:00
def valid?(val)
val.is_a? @val.constantize
2015-05-04 02:11:49 +02:00
end
2014-07-03 04:04:34 +02:00
end
2014-07-10 21:35:47 +02:00
VectorOf = ::Contracts::CollectionOf::Factory.new(::Hamster::Vector)
ResourceList = ::Contracts::ArrayOf[IsA['Middleman::Sitemap::Resource']]
2014-07-10 21:35:47 +02:00
PATH_MATCHER = Or[String, RespondTo[:match], RespondTo[:call], RespondTo[:to_s]]
end