Class: Stringex::Configuration::ActsAsUrl

Inherits:
Base
  • Object
show all
Defined in:
lib/stringex/configuration/acts_as_url.rb

Instance Attribute Summary

Attributes inherited from Base

#settings

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#adapter, configure, system_wide_customizations, unconfigure!, valid_configuration_details

Constructor Details

#initialize(options = {}) ⇒ ActsAsUrl

Returns a new instance of ActsAsUrl.



4
5
6
7
8
9
# 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

Class Method Details

.default_settingsObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 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

.settingsObject



22
23
24
# File 'lib/stringex/configuration/acts_as_url.rb', line 22

def self.settings
  @settings
end

Instance Method Details

#string_extensions_settingsObject



11
12
13
14
15
16
17
18
19
20
# 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