Sha256: a47328e801d43c8cf040843e2f0796ff9e502c7246360adffa2037295b10e051

Contents?: true

Size: 506 Bytes

Versions: 1

Compression:

Stored size: 506 Bytes

Contents

module ExportTo
  class Presenter
    attr_accessor :model, :relation
    NoAttributeError = Class.new(NoMethodError)

    def initialize(model, relation=nil)
      self.model = model
      self.relation = relation
    end

    def relation?
      relation != nil
    end

    def method_missing(m, *args, &block)
      obj = relation.respond_to?(m) ? relation : model
      if block_given?
        obj.public_send(m, *args, &block)
      else
        obj.public_send(m, *args)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
export_to-0.1.0 lib/export_to/presenter.rb