Module: Mongoid::Urls::ClassMethods

Defined in:
lib/mongoid/urls.rb

Overview

Methods avaiable at the model

Instance Method Summary collapse

Instance Method Details

#create_url_validations(options) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/mongoid/urls.rb', line 34

def create_url_validations(options)
  before_validation :create_urls
  reserve = Set.new(%w(new edit)) + (options[:reserved] || [])
  reserve << I18n.available_locales if Object.const_defined?('I18n')
  self.reserved_words = reserve.flatten
  validates :url, uniqueness: true, presence: true,
                  format: { with: /[a-z\d-]+/ }
end

#find_url(u) ⇒ Object Also known as: find_by_url



43
44
45
46
47
# File 'lib/mongoid/urls.rb', line 43

def find_url(u)
  find_by(url: u) || (!url_simple && find_by(urls: u))
rescue Mongoid::Errors::DocumentNotFound
  nil
end

#url(*args) ⇒ Object

The #url

url :title

:simple    ->   Only one url per instance
:reserve   ->   Defaults to %w( new edit ) + I18n.locales


25
26
27
28
29
30
31
32
# File 'lib/mongoid/urls.rb', line 25

def url(*args)
  options = args.extract_options!
  fail 'One #url per model!' if url_keys
  self.url_keys = args # .first.to_s
  self.url_simple = options[:simple]
  create_url_fields
  create_url_validations(options)
end