Sha256: 7d2ab8d0fa3a56f474dcb6e2f2e26bc47fe7fa7f5b43cf575b55cb811a73afe4
Contents?: true
Size: 1.39 KB
Versions: 8
Compression:
Stored size: 1.39 KB
Contents
# Copyright 2013 Petr Chalupa <git+algebrick@pitr.ch> # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. module Algebrick module Matchers # wraps any object having #=== method into matcher class Wrapper < Abstract def self.call(something) new something end attr_reader :something def initialize(something) super() @something = matchable! something end def children find_children [@something] end def to_s assign_to_s + "Wrapper.(#{@something})" end def ==(other) other.kind_of? self.class and self.something == other.something end protected def matching?(other) @something === other end end # allow to convert any object to matcher if it has #=== method class ::Object def to_m Wrapper.new(self) end end end end
Version data entries
8 entries across 8 versions & 1 rubygems