Module: DataSpec::Helpers
- Defined in:
- lib/data_spec/helpers.rb
Class Method Summary collapse
- .at_path(data, path) ⇒ Object
- .evaluate(string) ⇒ Object
- .parse(yaml) ⇒ Object
- .remember(varname, data) ⇒ Object
Class Method Details
.at_path(data, path) ⇒ Object
71 72 73 74 75 76 77 78 |
# File 'lib/data_spec/helpers.rb', line 71 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 |
.evaluate(string) ⇒ Object
48 49 50 |
# File 'lib/data_spec/helpers.rb', line 48 def self.evaluate string eval(string) end |
.parse(yaml) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/data_spec/helpers.rb', line 54 def self.parse yaml # `code` is more readable, but not parsable, for our purposes we're converting it to $ unrendered = YAML.load(yaml.gsub("`", "$")) if unrendered.is_a?(Array) || unrendered.is_a?(Hash) rendered = unrendered.tree_walk_with_self do |(k, v), h| if v =~ /^\$(.+)\$$/ h[k] = self.evaluate($1) end end elsif unrendered.is_a?(String) && unrendered =~ /^\$(.+)\$$/ rendered = self.evaluate($1) else rendered = unrendered end rendered end |
.remember(varname, data) ⇒ Object
51 52 53 |
# File 'lib/data_spec/helpers.rb', line 51 def self.remember varname, data instance_variable_set(varname, data) end |