Class: ActivePermalink::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/active_permalink/generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(record, options = {}) ⇒ Generator

Returns a new instance of Generator.



17
18
19
20
21
22
23
24
# File 'lib/active_permalink/generator.rb', line 17

def initialize(record, options = {})
  options[:locale] = options.fetch(:locale, I18n.locale).to_s

  @record  = record
  @options = options
  @field   = options[:field]
  @scope   = options.fetch(:scope, :global)
end

Class Method Details

.generate(record, value, locale = nil, raw: false) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/active_permalink/generator.rb', line 6

def generate(record, value, locale = nil, raw: false)
  return if value.nil? && !record.slug_should_generate?

  options   = record.permalink_options.merge(locale: locale, raw: raw)
  generator = Generator.new(record, options)
  generator.generate(value)

  record.permalinks = generator.permalinks
end

Instance Method Details

#generate(new_value) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/active_permalink/generator.rb', line 26

def generate(new_value)
  @new_value = new_value
  return unless changed?

  deactivate_active_permalink
  assign_active_permalink
end


34
35
36
# File 'lib/active_permalink/generator.rb', line 34

def permalinks
  @permalinks ||= @record.permalinks
end