Class: Rjq::BytecodeFilter

Inherits:
AST::Node show all
Defined in:
lib/rjq/vm.rb

Instance Attribute Summary

Attributes inherited from AST::Node

#source_span

Instance Method Summary collapse

Methods inherited from AST::Node

#assign_value, #invalid_path_message, #with_source_span

Constructor Details

#initialize(vm, block, captured_context: nil) ⇒ BytecodeFilter

Returns a new instance of BytecodeFilter.



1325
1326
1327
1328
1329
# File 'lib/rjq/vm.rb', line 1325

def initialize(vm, block, captured_context: nil)
  @vm = vm
  @block = block
  @captured_context = captured_context
end

Instance Method Details

#eval(input, context) ⇒ Object



1331
1332
1333
# File 'lib/rjq/vm.rb', line 1331

def eval(input, context)
  @vm.execute_block(@block.instructions, input, @captured_context || context)
end

#paths(input, context) ⇒ Object



1343
1344
1345
# File 'lib/rjq/vm.rb', line 1343

def paths(input, context)
  @vm.paths_for_block(@block.instructions, input, @captured_context || context)
end

#replacement_filtersObject



1355
1356
1357
# File 'lib/rjq/vm.rb', line 1355

def replacement_filters
  @vm.replacement_filters(@block, @captured_context)
end

#source_all?(input, context) ⇒ Boolean

Returns:

  • (Boolean)


1351
1352
1353
# File 'lib/rjq/vm.rb', line 1351

def source_all?(input, context, &)
  @vm.source_all?(@block.instructions, input, @captured_context || context, &)
end

#source_any?(input, context) ⇒ Boolean

Returns:

  • (Boolean)


1347
1348
1349
# File 'lib/rjq/vm.rb', line 1347

def source_any?(input, context, &)
  @vm.source_any?(@block.instructions, input, @captured_context || context, &)
end

#stream(input, context) ⇒ Object



1335
1336
1337
# File 'lib/rjq/vm.rb', line 1335

def stream(input, context)
  @vm.stream_block(@block, input, @captured_context || context)
end

#take(input, context, count) ⇒ Object



1339
1340
1341
# File 'lib/rjq/vm.rb', line 1339

def take(input, context, count)
  @vm.take_block(@block.instructions, input, @captured_context || context, count)
end