lib/krikri/parser.rb in krikri-0.3.1 vs lib/krikri/parser.rb in krikri-0.3.2

- old
+ new

@@ -131,11 +131,11 @@ # of literal values (retrieved from Parser::Value#value), or a single # literal value. class ValueArray include Enumerable - delegate :[], :each, :empty?, :map, :to_a, :to_ary, + delegate :[], :each, :empty?, :to_a, :to_ary, :to => :@array def initialize(array = []) @array = array end @@ -167,11 +167,11 @@ ## # @return [Array] literal values from the objects in this array. # @see Parser::Value#value def values - map(&:value) + @array.map { |v| v.respond_to?(:value) ? v.value : v } end ## # Accesses a given field. Use multiple arguments to travel down the node # hierarchy. @@ -212,9 +212,18 @@ ## # @see Array#concat # @return [ValueArray] def flatten(*args, &block) self.class.new(@array.flatten(*args, &block)) + end + + ## + # Wraps the result of Array#map in a ValueArray + # + # @see Array#map + # @return [ValueArray] + def map(*args, &block) + self.class.new(@array.map(*args, &block)) end ## # Wraps the result of Array#select in a ValueArray #