Sha256: dae2c504e312a958856cbc1541f703827c2b392114b1d397bf80d1fbf12ed1e4

Contents?: true

Size: 546 Bytes

Versions: 3

Compression:

Stored size: 546 Bytes

Contents

module Adapter
  module Asserts
    RequiredMethods = [:read, :write, :delete, :clear]

    def assert_valid_module(mod)
      assert_methods_defined(mod)
    end

    def assert_valid_adapter(name)
      raise Undefined.new(name) unless definitions.key?(name.to_sym)
    end

    def assert_methods_defined(mod)
      missing_methods = []
      RequiredMethods.each do |meth|
        missing_methods << meth unless mod.method_defined?(meth)
      end
      raise IncompleteAPI.new(missing_methods) unless missing_methods.empty?
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
adapter-0.5.2 lib/adapter/asserts.rb
adapter-0.5.1 lib/adapter/asserts.rb
adapter-0.5 lib/adapter/asserts.rb