class Stringex::Configuration::ActsAsUrl

Public Class Methods

new(options = {}) click to toggle source
Calls superclass method
# File lib/stringex/configuration/acts_as_url.rb, line 4
def initialize(options = {})
  if options[:scope]
    options[:scope_for_url] = options.delete(:scope)
  end
  super
end
settings() click to toggle source
# File lib/stringex/configuration/acts_as_url.rb, line 22
def self.settings
  @settings
end

Private Class Methods

default_settings() click to toggle source
# File lib/stringex/configuration/acts_as_url.rb, line 32
def self.default_settings
  @default_settings ||= {
    :allow_duplicates => false,
    :callback_method => :before_validation,
    :duplicate_count_separator => "-",
    :enforce_uniqueness_on_sti_base_class => false,
    :only_when_blank => false,
    :scope_for_url => nil,
    :sync_url => false,
    :url_attribute => "url",
    :blacklist => %w[new],
    :blacklist_policy => lambda { |instance, url|
      "#{url}-#{instance.class.to_s.downcase}"
    }
  }.merge(Stringex::Configuration::StringExtensions.new.default_settings)
end

Public Instance Methods

string_extensions_settings() click to toggle source
# File lib/stringex/configuration/acts_as_url.rb, line 11
def string_extensions_settings
  [
    :allow_slash,
    :exclude,
    :force_downcase,
    :limit,
    :replace_whitespace_with,
    :truncate_words
  ].inject(Hash.new){|m, x| m[x] = settings.send(x); m}
end

Private Instance Methods

default_settings() click to toggle source
# File lib/stringex/configuration/acts_as_url.rb, line 28
def default_settings
  self.class.default_settings
end