lib/k/replace/statement.rb in k-replace-0.0.1 vs lib/k/replace/statement.rb in k-replace-0.1.0

- old
+ new

@@ -1,7 +1,8 @@ # -*- encoding: utf-8 -*- # frozen_string_literal: true +require 'pry' module K module Replace class Statement include Keys include Changes @@ -22,13 +23,20 @@ objs = hash_objects(objects) @source.gsub(kreplace.key_pattern) do |key| replaced = '' find_all(key) do |match| chained = chain_property(match) - chained.each{|k, v| replaced = objs[k].send(v)} + chained.each{|k, v| replaced = resolve_property(k, v, objs[k])} end replaced end + end + + private + + 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 end end end