Sha256: 519171609b3e4b37f6779f4b51d03c3dacb500e25e6662b2c6bca7945b287d6c

Contents?: true

Size: 630 Bytes

Versions: 10

Compression:

Stored size: 630 Bytes

Contents

module Valise
  module ItemEnum
    include Enumerable

    class Enumerator
      include ItemEnum

      def initialize(list, &filter)
        @list = list
        @filter = proc(&filter)
      end

      def each
        @list.each do |item|
          next unless @filter[item]
          yield(item)
        end
      end
    end

    def writable
      Enumerator.new(self) do |item|
        item.writable?
      end
    end

    def absent
      Enumerator.new(self) do |item|
        not item.present?
      end
    end

    def present
      Enumerator.new(self) do |item|
        item.present?
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
valise-1.2.1 lib/valise/item-enum.rb
valise-1.2.0 lib/valise/item-enum.rb
valise-1.1.4 lib/valise/item-enum.rb
valise-1.1.3 lib/valise/item-enum.rb
valise-1.1.2 lib/valise/item-enum.rb
valise-1.1.1 lib/valise/item-enum.rb
valise-1.1.0 lib/valise/item-enum.rb
valise-1.0.0 lib/valise/item-enum.rb
valise-0.9.1 lib/valise/item-enum.rb
valise-0.9.0 lib/valise/item-enum.rb