Class: Hotspots::Repository::GitParser

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(driver, options) ⇒ GitParser

Returns a new instance of GitParser.



6
7
8
9
10
# File 'lib/hotspots/repository/git_parser.rb', line 6

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.



4
5
6
# File 'lib/hotspots/repository/git_parser.rb', line 4

def driver
  @driver
end

#message_filtersObject (readonly)

Returns the value of attribute message_filters.



4
5
6
# File 'lib/hotspots/repository/git_parser.rb', line 4

def message_filters
  @message_filters
end

#timeObject (readonly)

Returns the value of attribute time.



4
5
6
# File 'lib/hotspots/repository/git_parser.rb', line 4

def time
  @time
end

Instance Method Details

#filesObject



12
13
14
15
16
# File 'lib/hotspots/repository/git_parser.rb', line 12

def files
  filtered_commit_hashes.reduce([]) do |acc, commit_hash|
    acc + driver.show_one_line_names({:commit_hash => commit_hash}).lines.map(&:strip)[1..-1]
  end
end

#filtered_commit_hashesObject



18
19
20
21
22
# File 'lib/hotspots/repository/git_parser.rb', line 18

def filtered_commit_hashes
  message_filters.reduce([]) do |acc, filter|
    acc + driver.pretty_log({:since_days => time, :message_filter => filter}).lines.map(&:strip)
  end.uniq
end