Sha256: 98c4f7e8ddd502272a74b69e76f39efe31c345c53c6fab518b3f8f476795de44

Contents?: true

Size: 649 Bytes

Versions: 1

Compression:

Stored size: 649 Bytes

Contents

module Yema
  class Rule
    include Equalizer.new(:attribute_name)

    attr_reader :attribute_name

    def initialize(attribute_name, options={})
      assert_required_options(options)
      @attribute_name = attribute_name
    end

    def self.required_options
      []
    end

    def validate(resource)
      Validator.new(self, resource)
    end

    def errors(resource)
      validate(resource).errors
    end

    private

    def assert_required_options(options)
      shortage = self.class.required_options - options.keys
      raise InvalidOptionError, "Missing options: #{shortage.inspect}" unless shortage.empty?
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
yema-0.0.1 lib/yema/rule.rb