Sha256: e1009d16508ac5c4d7190820b1f727162d96a80b45d5dc9303c3a54d00733a41
Contents?: true
Size: 763 Bytes
Versions: 1
Compression:
Stored size: 763 Bytes
Contents
require_relative '../function' require_relative '../../exceptions' module Dentaku module AST class Filter < Function def self.min_param_count 3 end def self.max_param_count 3 end def deferred_args [1, 2] end def value(context = {}) collection = @args[0].value(context) item_identifier = @args[1].identifier expression = @args[2] Array(collection).select do |item_value| expression.value( context.merge( FlatHash.from_hash_with_intermediates(item_identifier => item_value) ) ) end end end end end Dentaku::AST::Function.register_class(:filter, Dentaku::AST::Filter)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dentaku-3.4.2 | lib/dentaku/ast/functions/filter.rb |