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
#