class Reactor::Link::TemporaryLink

Attributes

target[RW]
title[RW]
url[R]

Public Class Methods

new(anything) click to toggle source
# File lib/reactor/link/temporary_link.rb, line 11
def initialize(anything)
  link_data = {}

  case anything
  when Hash
    link_data = anything
  when Integer
    link_data[:url] = RailsConnector::AbstractObj.find(anything).path
  else
    link_data[:url] = anything
  end

  self.url    = link_data[:url] || link_data[:destination_object]
  if link_data[:search].present?
    self.url = "#{self.url}?#{link_data[:search]}"
  end
  if link_data[:fragment].present?
    self.url = "#{self.url}##{link_data[:fragment]}"
  end
  self.target = link_data[:target] if link_data.key?(:target)
  self.title  = link_data[:title] if link_data.key?(:title)
end

Public Instance Methods

destination_object() click to toggle source
# File lib/reactor/link/temporary_link.rb, line 44
def destination_object
  @destination_object ||= RailsConnector::AbstractObj.find_by_path(url)
end
external?() click to toggle source
# File lib/reactor/link/temporary_link.rb, line 8
def external? ; raise TypeError, "This link needs to be persisted to gain any meaningful information" ; end
id() click to toggle source
# File lib/reactor/link/temporary_link.rb, line 48
def id
  nil
end
internal?() click to toggle source
# File lib/reactor/link/temporary_link.rb, line 9
def internal? ; false ; end
url=(some_target) click to toggle source
# File lib/reactor/link/temporary_link.rb, line 34
def url=(some_target)
  @url = case some_target
  when RailsConnector::AbstractObj
    @destination_object = some_target
    some_target.path
  else
    some_target
  end
end