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.



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

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) ⇒ Object



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

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

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

  record.permalinks = generator.permalinks
end

Instance Method Details

#generate(new_value) ⇒ Object



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

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

  deactivate_active_permalink
  assign_active_permalink
end


32
33
34
# File 'lib/active_permalink/generator.rb', line 32

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