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