Sha256: 656c87baced05f16b59f06ad7ffe4b9ef6485314a36e01daafcd87ea39a7f7ef

Contents?: true

Size: 632 Bytes

Versions: 2

Compression:

Stored size: 632 Bytes

Contents

require 'seory'
require 'seory/condition/block'
require 'seory/condition/params'
require 'seory/condition/path'
require 'seory/condition/slug'

module Seory
  module Condition
    class SupposionFailed < Seory::Error; end
    extend self

    def [](condition)
      if condition.respond_to?(:match?)
        condition
      else
        suppose(condition)
      end
    end

    private

    def suppose(condition)
      condition_class = [Params, Slug].detect {|klass| klass.supposable?(condition) }
      raise SupposionFailed.new(condition.inspect) unless condition_class

      condition_class.new(condition)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
seory-0.2.0 lib/seory/condition.rb
seory-0.1.0 lib/seory/condition.rb