class Blackbriar::Node
Attributes
key[R]
value[R]
value_provider[R]
Public Class Methods
new(hash, value_provider)
click to toggle source
# File lib/blackbriar/node.rb, line 3 def initialize(hash, value_provider) @key, @value = hash.to_a.first @value_provider = value_provider end
Public Instance Methods
resolve()
click to toggle source
# File lib/blackbriar/node.rb, line 10 def resolve if value.is_a? String {key => resolve_string(value)} elsif value.is_a? Numeric {key => value} elsif value.is_a? Time {key => value} elsif value.is_a? Hash {key => resolve_hash(value)} elsif value.is_a? Array {key => resolve_array(value)} end end
resolve_array(array)
click to toggle source
# File lib/blackbriar/node.rb, line 46 def resolve_array(array) array.map {|item| resolve_array_item(item)} end
resolve_array_item(item)
click to toggle source
# File lib/blackbriar/node.rb, line 24 def resolve_array_item(item) if item.is_a? String resolve_string(item) elsif value.is_a? Numeric {key => value} elsif value.is_a? Time {key => value} elsif item.is_a? Hash resolve_hash item elsif item.is_a? Array resolve_array(item) end end
resolve_hash(hash)
click to toggle source
# File lib/blackbriar/node.rb, line 42 def resolve_hash(hash) hash.to_a.map {|item| self.class.new([item].to_h, value_provider).resolve}.reduce(&:merge) end
resolve_string(string)
click to toggle source
# File lib/blackbriar/node.rb, line 38 def resolve_string(string) value_provider.resolve(string) end