Class: GitReviewer::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/gitreviewer/config/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project_owner, folder_owner, file_owner, ignore_files, ignore_folders) ⇒ Configuration



10
11
12
13
14
15
16
# File 'lib/gitreviewer/config/configuration.rb', line 10

def initialize(project_owner, folder_owner, file_owner, ignore_files, ignore_folders)
  @project_owner = project_owner
  @folder_owner = folder_owner
  @file_owner = file_owner
  @ignore_files = ignore_files
  @ignore_folders = ignore_folders
end

Instance Attribute Details

#file_ownerObject

Array<FileReOwner>



6
7
8
# File 'lib/gitreviewer/config/configuration.rb', line 6

def file_owner
  @file_owner
end

#folder_ownerObject

Array<FolderOwner>



5
6
7
# File 'lib/gitreviewer/config/configuration.rb', line 5

def folder_owner
  @folder_owner
end

#ignore_filesObject

Array<String>



7
8
9
# File 'lib/gitreviewer/config/configuration.rb', line 7

def ignore_files
  @ignore_files
end

#ignore_foldersObject

Array<String>



8
9
10
# File 'lib/gitreviewer/config/configuration.rb', line 8

def ignore_folders
  @ignore_folders
end

#project_ownerObject

String



4
5
6
# File 'lib/gitreviewer/config/configuration.rb', line 4

def project_owner
  @project_owner
end

Instance Method Details

#ignore?(file_name) ⇒ Boolean



28
29
30
31
32
33
34
35
36
# File 'lib/gitreviewer/config/configuration.rb', line 28

def ignore?(file_name)
  if @ignore_files != nil && @ignore_files.include?(file_name)
    return true
  end
  if @ignore_folders != nil && @ignore_folders.any?{ |folder| folder != nil && !folder.empty? && file_name.start_with?(folder) }
    return true
  end
  return false
end

#reviewer_of_file(file_name) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/gitreviewer/config/configuration.rb', line 38

def reviewer_of_file(file_name)
  if ignore?(file_name)
    return nil
  end

  fowner = @file_owner.select { |owner| owner.path != nil && !owner.path.empty? && owner.path == file_name }.first
  if fowner != nil && fowner.owner != nil
    return fowner.owner
  end

  downer = @folder_owner.select { |owner| owner.path != nil && !owner.path.empty? && file_name.start_with?(owner.path) }.first
  if downer != nil && downer.owner != nil
    return downer.owner
  end

  if @project_owner == nil || @project_owner.empty?
    return "<project owner>"
  end
  return @project_owner
end

#to_hashObject



18
19
20
21
22
23
24
25
26
# File 'lib/gitreviewer/config/configuration.rb', line 18

def to_hash
  {
    project_owner: @project_owner,
    folder_owner: @folder_owner.map(&:to_hash),
    file_owner: @file_owner.map(&:to_hash),
    ignore_files: @ignore_files,
    ignore_folders: @ignore_folders
  }
end