Class: Transform::TransformerChain

Inherits:
Object
  • Object
show all
Defined in:
lib/transform/transformer_chain.rb

Instance Method Summary collapse

Constructor Details

#initialize(chain) ⇒ TransformerChain

Returns a new instance of TransformerChain.



9
10
11
12
13
14
# File 'lib/transform/transformer_chain.rb', line 9

def initialize(chain)
  @@upt = UpcaseTransformer.new
  @@stt = StripTransformer.new
  @@rat = RemoveAccentTransformer.new
  @chain = chain
end

Instance Method Details

#_apply(field, value) ⇒ Object



22
23
24
25
26
27
# File 'lib/transform/transformer_chain.rb', line 22

def _apply(field, value)
  @chain[field].each do |transformation|
    value = get_transformer(transformation).apply value
  end
  value
end

#apply(field, value) ⇒ Object



16
17
18
19
20
# File 'lib/transform/transformer_chain.rb', line 16

def apply(field, value)
  value = _apply(:all, value) if @chain.key?(:all) unless excepts(field)
  value = _apply(field, value) if @chain.key?(field)
  value
end

#excepts(field) ⇒ Object



29
30
31
32
# File 'lib/transform/transformer_chain.rb', line 29

def excepts(field)
   return @chain[:except].include?(field) if @chain.key?(:except)
   return false
end

#get_transformer(identity) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/transform/transformer_chain.rb', line 34

def get_transformer(identity)
  case identity
    when :upcase then
      @@upt
    when :strip then
      @@stt
    when :remove_accent then
      @@rat
  end
end