mirror of https://gitee.com/bigwinds/arangodb
31 lines
465 B
Ruby
31 lines
465 B
Ruby
#
|
|
# Struct
|
|
#
|
|
class Struct
|
|
# 15.2.18.4.4
|
|
def each(&block)
|
|
self.class.members.each{|field|
|
|
block.call(self[field])
|
|
}
|
|
self
|
|
end
|
|
|
|
# 15.2.18.4.5
|
|
def each_pair(&block)
|
|
self.class.members.each{|field|
|
|
block.call(field.to_sym, self[field])
|
|
}
|
|
self
|
|
end
|
|
|
|
# 15.2.18.4.7
|
|
def select(&block)
|
|
ary = []
|
|
self.class.members.each{|field|
|
|
val = self[field]
|
|
ary.push(val) if block.call(val)
|
|
}
|
|
ary
|
|
end
|
|
end
|