Class: DiffTokenizer

Inherits:
Object
  • Object
show all
Defined in:
lib/hangover/diff_tokenizer.rb

Instance Method Summary collapse

Constructor Details

#initialize(text) ⇒ DiffTokenizer

Returns a new instance of DiffTokenizer.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/hangover/diff_tokenizer.rb', line 3

def initialize(text)
  lines = text.split("\n")

  add_lines = select_lines_starting_with(lines, '+')
  substract_lines = select_lines_starting_with(lines, '-')

  added_tokens = extract_tokens(add_lines)
  substracted_tokens = extract_tokens(substract_lines)
  
  cleaned_added_tokens = added_tokens - substracted_tokens.uniq
  cleaned_substracted_tokens = substracted_tokens - added_tokens.uniq

  @top = {}
  @top[:adds] = count_tokens(cleaned_added_tokens)
  @top[:subs] = count_tokens(cleaned_substracted_tokens)
end

Instance Method Details

#top(count, type) ⇒ Object



20
21
22
# File 'lib/hangover/diff_tokenizer.rb', line 20

def top(count, type)
  @top[type][0, count].map { |token_and_count| token_and_count.first }
end

#top_adds(count = 5) ⇒ Object



24
25
26
# File 'lib/hangover/diff_tokenizer.rb', line 24

def top_adds(count = 5)
  top(count, :adds)
end

#top_subs(count = 5) ⇒ Object



28
29
30
# File 'lib/hangover/diff_tokenizer.rb', line 28

def top_subs(count = 5)
  top(count, :subs)
end