Sha256: 65d5bbbcbd4929ecff7703e3ee7d1fbbb34a5c972383e56431f205efabc6d9e4

Contents?: true

Size: 537 Bytes

Versions: 2

Compression:

Stored size: 537 Bytes

Contents

module Exhibitor
  extend ActiveSupport::Concern
  attr_accessor :context

  def obj
    __getobj__
  end

  def exhibitor_for(obj)
    self.class.exhibitor_for(obj)
  end

  def contextualize(context)
    self.context = context
  end

  def contextualized?
    context.present?
  end

  module ClassMethods

    def exhibitor_for_super(method, klass = nil)
      define_method(method) do |*args|
        klass ||= self.class
        klass.new(super(*args))
      end
    end

    def exhibitor_for(obj)
      new(obj)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
exposant-0.1.2 lib/exposant/concerns/exhibitor.rb
exposant-0.1.1 lib/exposant/concerns/exhibitor.rb