Parent

Stringex::ActsAsUrl::Adapter::Base

Attributes

base_url[RW]
callback_options[RW]
configuration[RW]
instance[RW]
klass[RW]
settings[RW]

Public Class Methods

ensure_loadable() click to toggle source
# File lib/stringex/acts_as_url/adapter/base.rb, line 46
def self.ensure_loadable
  raise "The #{self} adapter cannot be loaded" unless loadable?
  Stringex::ActsAsUrl::Adapter.add_loaded_adapter self
end
loadable?() click to toggle source
# File lib/stringex/acts_as_url/adapter/base.rb, line 51
def self.loadable?
  orm_class
rescue NameError
  false
end
new(configuration) click to toggle source
# File lib/stringex/acts_as_url/adapter/base.rb, line 7
def initialize(configuration)
  ensure_loadable
  self.configuration = configuration
  self.settings = configuration.settings
end

Public Instance Methods

create_callbacks!(klass) click to toggle source
# File lib/stringex/acts_as_url/adapter/base.rb, line 13
def create_callbacks!(klass)
  self.klass = klass
  self.callback_options = {}
  create_method_to_callback
  create_callback
end
ensure_unique_url!(instance) click to toggle source
# File lib/stringex/acts_as_url/adapter/base.rb, line 20
def ensure_unique_url!(instance)
  @url_owners = nil
  self.instance = instance

  handle_url!
  handle_blacklisted_url!
  handle_duplicate_url! unless settings.allow_duplicates
end
initialize_urls!(klass) click to toggle source
# File lib/stringex/acts_as_url/adapter/base.rb, line 29
def initialize_urls!(klass)
  self.klass = klass
  klass_previous_instances do |instance|
    ensure_unique_url_for! instance
  end
end
url_attribute(instance) click to toggle source
# File lib/stringex/acts_as_url/adapter/base.rb, line 36
def url_attribute(instance)
  # Retrieve from database record if there are errors on attribute_to_urlify
  if !is_new?(instance) && is_present?(instance.errors[settings.attribute_to_urlify])
    self.instance = instance
    read_attribute instance_from_db, settings.url_attribute
  else
    read_attribute instance, settings.url_attribute
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.