lib/gillbus/helpers/parser.rb in gillbus-0.19.0 vs lib/gillbus/helpers/parser.rb in gillbus-0.20.0

- old
+ new

@@ -38,16 +38,19 @@ end private def fetch_value(key:, root:) + target_doc = root ? doc[root] : doc + return unless target_doc + if key.is_a?(Regexp) - doc.select { |k| k =~ key } - elsif root - doc[root] && doc[root][key] + target_doc.select { |k| k =~ key } + elsif key.is_a?(Array) + key.map { |k| Array(target_doc[k]) }.inject(&:+) else - doc[key] + target_doc[key] end end def make_one_or_many(type, val) # [:type] @@ -79,9 +82,11 @@ Array(arg) end def string(val) return if val == NULL_CONST + # если это тег с атрибутами - возвращаем только содержимое тега + return val.last if val.is_a?(Array) && val.size == 2 val end def bool(val) val == TRUE_CONST