Sha256: 737e413e36610e2108f548d5addc89844d00bc523dc45eebf8a3696060d4aefc

Contents?: true

Size: 567 Bytes

Versions: 3

Compression:

Stored size: 567 Bytes

Contents

module Sablon
  module Context
    def self.transform(hash)
      transform_hash(hash)
    end

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

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

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sablon-0.0.12 lib/sablon/context.rb
sablon-0.0.11 lib/sablon/context.rb
sablon-0.0.10 lib/sablon/context.rb