Module: Aygabtu::Scope::Remaining

Defined in:
lib/aygabtu/scope/remaining.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.factory_methodsObject



22
23
24
# File 'lib/aygabtu/scope/remaining.rb', line 22

def self.factory_methods
  [:remaining_at]
end

Instance Method Details

#inspect_dataObject



17
18
19
20
# File 'lib/aygabtu/scope/remaining.rb', line 17

def inspect_data
  return super unless @data.key?(:remaining_at)
  super.merge(remaining_at: "CP #{@data[:remaining_at]}")
end

#matches_route?(route) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
13
14
15
# File 'lib/aygabtu/scope/remaining.rb', line 9

def matches_route?(route)
  return super unless @data.key?(:remaining_at)

  at_checkpoint = @data[:remaining_at]
  route_touched = route.marks.any? { |mark| mark.checkpoint <= at_checkpoint }
  !route_touched && super
end

#remaining_at(checkpoint) ⇒ Object



4
5
6
7
# File 'lib/aygabtu/scope/remaining.rb', line 4

def remaining_at(checkpoint)
  new_data = @data.dup.merge(remaining_at: checkpoint)
  self.class.new(new_data)
end