class K::Replace::Statement
Attributes
keys[R]
source[R]
Public Class Methods
new(source)
click to toggle source
# File lib/k/replace/statement.rb, line 10 def initialize(source) @keys = [] @source = source find_all(@source) do |key| @keys << key end end
Public Instance Methods
replace(hash)
click to toggle source
# File lib/k/replace/statement.rb, line 19 def replace(hash) @source.gsub(kreplace.key_pattern) do |key| replaced = '' find_all(key) do |match| chained = chain_property(match) chained.each{|k, v| replaced = resolve_property(k, v, hash[k])} end replaced end end
Private Instance Methods
resolve_property(ch_key, ch_value, obj)
click to toggle source
# File lib/k/replace/statement.rb, line 32 def resolve_property(ch_key, ch_value, obj) return resolve_property ch_value.keys[0], ch_value[ch_value.keys[0]], obj.send(ch_value.keys[0].to_s) if ch_value.is_a?(Hash) obj.send(ch_value) end