Module: DataSpec::Helpers

Defined in:
lib/data_spec/helpers.rb

Class Method Summary collapse

Class Method Details

.at_path(data, path) ⇒ Object



62
63
64
65
66
67
68
69
# File 'lib/data_spec/helpers.rb', line 62

def self.at_path data, path
  return data if path.nil? || path.empty?
  path.split('/').each do |key| 
    key = key.to_i if data.is_a? Array
    data = data[key] || data[key.to_sym]
  end  
  data
end

.parse(yaml) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/data_spec/helpers.rb', line 50

def self.parse yaml
  # `code` is more readable, but not parsable, for our purposes we're converting it to $
  unrendered = YAML.load(yaml.gsub("`", "$"))

  return unrendered unless unrendered.is_a?(Array) || unrendered.is_a?(Hash)

  unrendered.tree_walk_with_self do |(k, v), h|
    if v =~ /^\$(.+)\$$/     
      h[k] = eval($1)        
    end
  end
end