Module: Tokenizer

Included in:
StringCalculator
Defined in:
lib/tokenizer/tokenizer.rb

Instance Method Summary collapse

Instance Method Details

#initializeObject



2
3
4
5
6
7
8
9
10
11
12
# File 'lib/tokenizer/tokenizer.rb', line 2

def initialize
  @regex_or = '|'

  @standard_delimiter = /,|\n/

  @has_single_delimiter = /\/\/(.)\n(.*)/

  @has_multi_delimiter = /\/\/(\[.+\])+\n.*/
  @multi_delimiter = /\[|\]/
  @multi_delimiter_replace = /\/\/(\[.+\])+\n/
end

#ints(string = '') ⇒ Object



29
30
31
# File 'lib/tokenizer/tokenizer.rb', line 29

def ints(string = '')
  tokens(string).select { |s| is_i?(s) }.map { |s| s.to_i }
end

#is_i?(string) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/tokenizer/tokenizer.rb', line 33

def is_i?(string)
  string.to_i.to_s == string
end

#tokens(string) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/tokenizer/tokenizer.rb', line 14

def tokens(string)
  case string
    when @has_single_delimiter
      delims = $1
      string = $2
    when @has_multi_delimiter
      delims = Regexp.new($1.split(@multi_delimiter).reject(&:empty?).join(@regex_or))
      string = string.sub(@multi_delimiter_replace, '')
    else
      delims = @standard_delimiter
      string = string
  end
  string.split(delims)
end