Sha256: d50cba0977fee17b6f3474e79f765fe189f67b0ccc962e889c20784735dd624c
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
require "himekaminize/filters/base_filter" module Himekaminize module Filters class TaskFilter < BaseFilter def call(context:, output:) seq = 0 @context = context output = output.map do |line| if line.is_a?(String) && line =~ /\A\s*(#{Himekaminize::Nodes::Task::INCOMPLETE_PATTERN}|#{Himekaminize::Nodes::Task::COMPLETE_PATTERN})/ seq += 1 Himekaminize::Nodes::Task.new(line, seq) else line end end if only_task_list? output = output.select { |line| line.is_a?(Himekaminize::Nodes::Task) } end if update_task_status_list.present? seq = 1 update_task_status_list.each do |v| output = output.map do |line| if line.is_a?(Himekaminize::Nodes::Task) && line.sequence == v[:sequence] line.update_status(v[:status].to_sym) line else line end end end end { context: context, output: output, } end private def only_task_list? @context[:only_task_list].presence || false end def update_task_status_list @context[:update_task_status_list].presence || {} end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
himekaminize-0.0.10 | lib/himekaminize/filters/task_filter.rb |