Sha256: 120688a2c5ca6b618e5ac27d6bb4dd3b14618158663b050470de89c080548400
Contents?: true
Size: 1.06 KB
Versions: 2
Compression:
Stored size: 1.06 KB
Contents
module Draper class DecoratedEnumerableProxy include Enumerable def initialize(collection, klass, options = {}) @wrapped_collection, @klass, @options = collection, klass, options end def each(&block) @wrapped_collection.each { |member| block.call(@klass.decorate(member, @options)) } end def to_ary @wrapped_collection.map { |member| @klass.decorate(member, @options) } end def method_missing (method, *args, &block) @wrapped_collection.send(method, *args, &block) end def respond_to?(method) super || @wrapped_collection.respond_to?(method) end def kind_of?(klass) super || @wrapped_collection.kind_of?(klass) end alias :is_a? :kind_of? def ==(other) @wrapped_collection == other end def [](index) @klass.new(@wrapped_collection[index], @options) end def to_s "#<DecoratedEnumerableProxy of #{@klass} for #{@wrapped_collection.inspect}>" end def source @wrapped_collection end alias_method :to_source, :source end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
draper-0.11.1 | lib/draper/decorated_enumerable_proxy.rb |
draper-0.11.0 | lib/draper/decorated_enumerable_proxy.rb |