Class: BusinessCatalyst::CSV::SEOFriendlyUrlTransformer

Inherits:
Transformer
  • Object
show all
Defined in:
lib/business_catalyst/csv/transformers/seo_friendly_url_transformer.rb

Instance Attribute Summary

Attributes inherited from Transformer

#input

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Transformer

transform

Constructor Details

#initialize(input) ⇒ SEOFriendlyUrlTransformer

Returns a new instance of SEOFriendlyUrlTransformer.

Raises:



7
8
9
10
11
12
13
# File 'lib/business_catalyst/csv/transformers/seo_friendly_url_transformer.rb', line 7

def initialize(input)
  input = input.to_s
  raise InvalidInputError, "seo_friendly_url must not be blank" if input.nil? || input.strip == ""
  raise InvalidInputError, "seo_friendly_url '#{input}' is not globally unique" unless self.class.is_globally_unique?(input)
  self.class.register_url(input)
  super(input)
end

Class Method Details

.global_urlsObject



23
24
25
# File 'lib/business_catalyst/csv/transformers/seo_friendly_url_transformer.rb', line 23

def self.global_urls
  @global_urls ||= {}
end

.is_globally_unique?(url) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/business_catalyst/csv/transformers/seo_friendly_url_transformer.rb', line 31

def self.is_globally_unique?(url)
  !global_urls.fetch(url, false)
end

.register_url(url) ⇒ Object



27
28
29
# File 'lib/business_catalyst/csv/transformers/seo_friendly_url_transformer.rb', line 27

def self.register_url(url)
  global_urls[url] = true
end

.reset_global_urls!Object



19
20
21
# File 'lib/business_catalyst/csv/transformers/seo_friendly_url_transformer.rb', line 19

def self.reset_global_urls!
  @global_urls = {}
end

Instance Method Details

#transformObject



15
16
17
# File 'lib/business_catalyst/csv/transformers/seo_friendly_url_transformer.rb', line 15

def transform
  input
end