Class: TimePatterns::TimePattern

Inherits:
Object
  • Object
show all
Defined in:
lib/todo_time_patterns/time_patterns.rb

Instance Method Summary collapse

Constructor Details

#initialize(pattern_array, token_class) ⇒ TimePattern

Returns a new instance of TimePattern.



5
6
7
8
9
# File 'lib/todo_time_patterns/time_patterns.rb', line 5

def initialize(pattern_array, token_class)
  @pattern = pattern_array.join
  @number_of_pattern_tokens = pattern_array.length
  @token_class = token_class
end

Instance Method Details

#find_and_update(tokens) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/todo_time_patterns/time_patterns.rb', line 11

def find_and_update(tokens)
  return tokens unless tokens.to_s.include? @pattern

  tokens_clone = tokens.clone
  tokens.each_cons(@number_of_pattern_tokens) do |tokens_set|
    break unless tokens_set.length == @number_of_pattern_tokens

    tokens_set.extend(TokensStringRepresentation)

    if tokens_set.to_s == @pattern
      next unless valid? tokens_set

      time_token = @token_class.new tokens_set
      substitute_tokens tokens_set, time_token, tokens_clone
    end
  end

  tokens_clone
end