Class: Danger::DangerfileGitPlugin

Inherits:
Plugin
  • Object
show all
Defined in:
lib/danger/danger_core/plugins/dangerfile_git_plugin.rb

Git Files collapse

Git Metadata collapse

Instance Method Summary collapse

Methods inherited from Plugin

#fail, instance_name, #method_missing, #warn

Constructor Details

#initialize(dangerfile) ⇒ DangerfileGitPlugin

Returns a new instance of DangerfileGitPlugin.



6
7
8
9
10
11
# File 'lib/danger/danger_core/plugins/dangerfile_git_plugin.rb', line 6

def initialize(dangerfile)
  super(dangerfile)
  raise  unless dangerfile.env.scm.class == Danger::GitRepo

  @git = dangerfile.env.scm
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Danger::Plugin

Instance Method Details

#added_filesFileList

Paths for files that were added during the diff

Returns:



17
18
19
# File 'lib/danger/danger_core/plugins/dangerfile_git_plugin.rb', line 17

def added_files
  Danger::FileList.new(@git.diff.select { |diff| diff.type == "new" }.map(&:path))
end

#commitsGit::Log

The log of commits inside the diff

Returns:

  • (Git::Log)

    from the gem ‘git`



65
66
67
# File 'lib/danger/danger_core/plugins/dangerfile_git_plugin.rb', line 65

def commits
  @git.log.to_a
end

#deleted_filesFileList

Paths for files that were removed during the diff

Returns:



25
26
27
# File 'lib/danger/danger_core/plugins/dangerfile_git_plugin.rb', line 25

def deleted_files
  Danger::FileList.new(@git.diff.select { |diff| diff.type == "deleted" }.map(&:path))
end

#deletionsObject

The overall lines of code removed in the diff

Returns:

  • Int



49
50
51
# File 'lib/danger/danger_core/plugins/dangerfile_git_plugin.rb', line 49

def deletions
  @git.diff.deletions
end

#insertionsObject

The overall lines of code added in the diff

Returns:

  • Int



57
58
59
# File 'lib/danger/danger_core/plugins/dangerfile_git_plugin.rb', line 57

def insertions
  @git.diff.insertions
end

#lines_of_codeObject

The overall lines of code added/removed in the diff

Returns:

  • Int



41
42
43
# File 'lib/danger/danger_core/plugins/dangerfile_git_plugin.rb', line 41

def lines_of_code
  @git.diff.lines
end

#modified_filesFileList

Paths for files that changed during the diff

Returns:



33
34
35
# File 'lib/danger/danger_core/plugins/dangerfile_git_plugin.rb', line 33

def modified_files
  Danger::FileList.new(@git.diff.stats[:files].keys)
end