Sha256: 53e39a72c6bed2fe46240131e711a90c29ba6074a5191ba54e0db8ed5adc5ebd
Contents?: true
Size: 1 KB
Versions: 7
Compression:
Stored size: 1 KB
Contents
module ContentfulMiddleman class Context < BasicObject def initialize @variables = {} end def method_missing(symbol, *args, &block) if symbol =~ /\A.+=\z/ variable_name = symbol.to_s.gsub('=','') variable_value = args.first set variable_name, variable_value else get symbol end end def set(name, value) @variables[name.to_sym] = value end def get(name) @variables.fetch(name.to_sym) end def is_a?(klass) Context == klass end def to_yaml hashize.to_yaml end def hashize variables = @variables.dup variables.update(variables) do |variable_name, variable_value| ensure_primitive_data_types(variable_value) end end def ensure_primitive_data_types(value) case value when Context value.hashize when ::Array value.map {|element| ensure_primitive_data_types(element)} else value end end end end
Version data entries
7 entries across 7 versions & 1 rubygems