Sha256: 7f76f4e380912bada560b0a2daf87fc3f0ea390aa564cbc8753bedcc7ded6ef2

Contents?: true

Size: 771 Bytes

Versions: 2

Compression:

Stored size: 771 Bytes

Contents

# encoding: utf-8

class Demo
  module Web

    class Presenter
      include AbstractType
      include Adamantium::Flat
      include Concord.new(:data)

      def method_missing(method, *args, &block)
        @data.send(method, *args, &block)
      end

      def respond_to?(method)
        super || @data.respond_to?(method)
      end

      class Collection < self

        def self.member(presenter = Undefined)
          return @member if presenter.equal?(Undefined)
          @member = presenter
        end

        alias_method :entries, :data

        protected :entries

        def each
          return to_enum unless block_given?
          entries.each { |entry| yield self.class.member.new(entry) }
          self
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
substation-0.0.11 spec/demo/web/presenter.rb
substation-0.0.10 spec/demo/web/presenter.rb