Sha256: 0e7954fe61a047f858d0f079364f52ec76b224a2fdfa8264372fe1118c4ba2e0
Contents?: true
Size: 1.66 KB
Versions: 2
Compression:
Stored size: 1.66 KB
Contents
# encoding: utf-8 module Attestor module Validations # The collection of validations used by class instances # # @api private class Validators include Enumerable # @!scope class # @!method new(items = []) # Creates an immutable collection with optional list of items # # @param [Array<Attestor::Validators::Validator>] items # # @return [Attestor::Validators] # @private def initialize(items = []) @items = items freeze end # Iterates through the collection # # @yield the block # @yieldparam [Attestor::Validators::Validator] item # items from the collection # # @return [Enumerator] def each block_given? ? @items.each { |item| yield(item) } : to_enum end # Returns validators updated by new item # # @param [#to_sym] name # @param [Hash] options # @option options [Array<#to_sym>] :except # @option options [Array<#to_sym>] :only # @option options [Symbol, nil] :policy # # @return [Attestor::Validators] def add(name, options = {}) item = Validator.new(name, options) return self if include? item self.class.new(@items + [item]) end # Returns validators used in given context # # @param [#to_sym] context # # @return [Attestor::Validators] def set(context) validators = select { |item| item.used_in_context? context } self.class.new(validators) end private attr_reader :items end # class Validators end # module Validations end # module Attestor
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
attestor-0.2.0 | lib/attestor/validations/validators.rb |
attestor-0.1.0 | lib/attestor/validations/validators.rb |