Module: Sablon::Context

Defined in:
lib/sablon/context.rb

Class Method Summary collapse

Class Method Details

.transform(hash) ⇒ Object



3
4
5
# File 'lib/sablon/context.rb', line 3

def self.transform(hash)
  transform_hash(hash)
end

.transform_hash(hash) ⇒ Object



7
8
9
# File 'lib/sablon/context.rb', line 7

def self.transform_hash(hash)
  Hash[hash.map{|k,v| transform_pair(k.to_s, v) }]
end

.transform_pair(key, value) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/sablon/context.rb', line 11

def self.transform_pair(key, value)
  if key =~ /\A([^:]+):(.+)\z/
    if value.nil?
      [$2, value]
    else
      [$2, Sablon.content($1.to_sym, value)]
    end
  else
    transform_standard_key(key, value)
  end
end

.transform_standard_key(key, value) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/sablon/context.rb', line 23

def self.transform_standard_key(key, value)
  case value
  when Hash
    [key, transform_hash(value)]
  else
    [key, value]
  end
end