Class: ActiveRecord::Normalizations::TextTransformNormalizer

Inherits:
Object
  • Object
show all
Defined in:
lib/activerecord-normalizations/normalizers/text_transform_normalizer.rb

Constant Summary collapse

VALID_TRANSFORMATIONS =
[:capitalize, :word_capitalize, :uppercase, :lowercase]

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ TextTransformNormalizer

Returns a new instance of TextTransformNormalizer.



5
6
7
8
9
10
11
# File 'lib/activerecord-normalizations/normalizers/text_transform_normalizer.rb', line 5

def initialize(options)
  @transformation = options[:with]

  if !VALID_TRANSFORMATIONS.include?(@transformation)
    raise ArgumentError, "#{@transformation} must be one of #{VALID_TRANSFORMATIONS}"
  end
end

Instance Method Details

#call(attr) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/activerecord-normalizations/normalizers/text_transform_normalizer.rb', line 13

def call(attr)
  case @transformation
  when :uppercase
    attr.upcase
  when :lowercase
    attr.downcase
  when :word_capitalize
    attr.gsub(/[[:alpha:]]+/, &:capitalize)
  else
    attr.capitalize
  end
end