Class: Hotspots::Repository::Parser::Git

Inherits:
Object
  • Object
show all
Defined in:
lib/hotspots/repository/parser/git.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(driver, options) ⇒ Git

Returns a new instance of Git.



7
8
9
10
11
# File 'lib/hotspots/repository/parser/git.rb', line 7

def initialize(driver, options)
  @driver          = driver
  @time            = options[:time]
  @message_filters = options[:message_filters]
end

Instance Attribute Details

#driverObject (readonly)

Returns the value of attribute driver.



5
6
7
# File 'lib/hotspots/repository/parser/git.rb', line 5

def driver
  @driver
end

#message_filtersObject (readonly)

Returns the value of attribute message_filters.



5
6
7
# File 'lib/hotspots/repository/parser/git.rb', line 5

def message_filters
  @message_filters
end

#timeObject (readonly)

Returns the value of attribute time.



5
6
7
# File 'lib/hotspots/repository/parser/git.rb', line 5

def time
  @time
end

Instance Method Details

#filesObject

TODO : replace with each_line



14
15
16
17
18
19
20
21
# File 'lib/hotspots/repository/parser/git.rb', line 14

def files
  filtered_commit_hashes.map do |commit_hash|
    driver.show_one_line_names(:commit_hash => commit_hash).
      gsub("\r\n", "\n").
      gsub("\r", "\n").
      split("\n")[1..-1]
  end.flatten
end

#filtered_commit_hashesObject

TODO : replace with each_line



24
25
26
27
28
29
30
31
# File 'lib/hotspots/repository/parser/git.rb', line 24

def filtered_commit_hashes
  message_filters.map do |filter|
    driver.pretty_log(:since_days => time, :message_filter => filter).
      gsub("\r\n", "\n").
      gsub("\r", "\n").
      split("\n")
  end.flatten.uniq
end