Module: Tokenizer
- Included in:
- StringCalculator
- Defined in:
- lib/tokenizer/tokenizer.rb
Instance Method Summary collapse
Instance Method Details
#initialize ⇒ Object
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
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 |