Class: Emendate::TokenCollapser

Inherits:
Object
  • Object
show all
Defined in:
lib/emendate/token_collapser.rb

Constant Summary collapse

DATE_SEPARATORS =
%i[hyphen slash]

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tokens) ⇒ TokenCollapser

Returns a new instance of TokenCollapser.



17
18
19
# File 'lib/emendate/token_collapser.rb', line 17

def initialize(tokens)
  @result = Emendate::SegmentSet.new.copy(tokens)
end

Class Method Details

.callObject



10
11
12
# File 'lib/emendate/token_collapser.rb', line 10

def call(...)
  new(...).call
end

Instance Method Details

#callObject



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/emendate/token_collapser.rb', line 21

def call
  while collapsible?
    action = determine_action
    break if action.nil?

    pre = result.types.dup
    action.call
    break if result.types == pre
  end
  full_match_date_part_collapsers
  Success(result)
end