Sha256: fbff5a1d700cc9a6bf5c87bbe6fe92538aa5cd261696f3ee133f8631028d61d5

Contents?: true

Size: 961 Bytes

Versions: 4

Compression:

Stored size: 961 Bytes

Contents

# @private
class Skyline::ObjectRef < Skyline::RefObject	
  after_destroy :destroy_referable
  
	def respond_to?(m)
		return true if super
		if self.referable
			self.referable.respond_to?(m)
		else
			super
		end
	end
	
	def method_missing(m,*a)
		if self.referable && self.referable.respond_to?(m)
			self.referable.send(m,*a)
		else
			super
		end
	end			
	
	def blank?
	  self.referable.blank?
  end
  
  def present?
	  self.referable.present?
  end
  
  def external?
    self.referable.andand.respond_to?(:external?) ? self.referable.external? : false
  end
  
  def file?
    self.referable_type == "Skyline::MediaFile"
  end
  
  def clone
    returning super do |clone|
      clone.referable = self.referable.clone if self.referable.kind_of?(Skyline::ReferableUri)
    end
  end
  
  protected
  def destroy_referable
    self.referable.destroy if self.referable.kind_of?(Skyline::ReferableUri)
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
skylinecms-3.1.0 app/models/skyline/object_ref.rb
westarete-skylinecms-3.0.8.20100329 app/models/skyline/object_ref.rb
westarete-skylinecms-3.0.8.20100330 app/models/skyline/object_ref.rb
skylinecms-3.0.8 app/models/skyline/object_ref.rb