Sha256: 20d5b883fa9a6c824c9805160dd6724fd6cdb3b2f9aca91d4f57a61d239a4f8d

Contents?: true

Size: 546 Bytes

Versions: 18

Compression:

Stored size: 546 Bytes

Contents

module PushType
  module Presentable
    extend ActiveSupport::Concern

    def presenter_class
      self.class.presenter_class
    end

    def present!(context = nil)
      presenter_class.new(self, context)
    end

    module ClassMethods

      def presenter_class_name
        "#{ self.name.demodulize }Presenter"
      end

      def presenter_class
        self.parent.const_get presenter_class_name
      rescue NameError
        self.parent.const_set presenter_class_name, Class.new(PushType::Presenter)
      end

    end

  end  
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
push_type_core-0.9.1 app/models/concerns/push_type/presentable.rb
push_type_core-0.9.0 app/models/concerns/push_type/presentable.rb
push_type_core-0.9.0.beta.4 app/models/concerns/push_type/presentable.rb
push_type_core-0.9.0.beta.3 app/models/concerns/push_type/presentable.rb
push_type_core-0.9.0.beta.2 app/models/concerns/push_type/presentable.rb
push_type_core-0.8.2 app/models/concerns/push_type/presentable.rb
push_type_core-0.8.1 app/models/concerns/push_type/presentable.rb
push_type_core-0.8.0 app/models/concerns/push_type/presentable.rb
push_type_core-0.8.0.beta.3 app/models/concerns/push_type/presentable.rb
push_type_core-0.8.0.beta.2 app/models/concerns/push_type/presentable.rb
push_type_core-0.8.0.beta.1 app/models/concerns/push_type/presentable.rb
push_type_core-0.7.0 app/models/concerns/push_type/presentable.rb
push_type_core-0.7.0.beta.1 app/models/concerns/push_type/presentable.rb
push_type_core-0.6.0 app/models/concerns/push_type/presentable.rb
push_type_core-0.6.0.beta.4 app/models/concerns/push_type/presentable.rb
push_type_core-0.6.0.beta.3 app/models/concerns/push_type/presentable.rb
push_type_core-0.6.0.beta.2 app/models/concerns/push_type/presentable.rb
push_type_core-0.6.0.beta.1 app/models/concerns/push_type/presentable.rb