Class: Gitnesse::DependencyChecker

Inherits:
Object
  • Object
show all
Defined in:
lib/gitnesse/dependency_checker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDependencyChecker

Returns a new instance of DependencyChecker.



5
6
7
# File 'lib/gitnesse/dependency_checker.rb', line 5

def initialize
  @errors = []
end

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



3
4
5
# File 'lib/gitnesse/dependency_checker.rb', line 3

def errors
  @errors
end

Instance Method Details

#add_error(message) ⇒ Object



19
20
21
# File 'lib/gitnesse/dependency_checker.rb', line 19

def add_error(message)
  @errors << message
end

#checkObject



9
10
11
12
13
14
15
16
17
# File 'lib/gitnesse/dependency_checker.rb', line 9

def check
  check_git
  check_cucumber
  check_repository_url
  check_identifier
  check_features_dir_exists

  display_errors if @errors.any?
end

#check_cucumberObject

Checks that Cucumber is installed on the system.

Returns true or raises DependencyNotMetError if Cucumber is broken



43
44
45
46
47
48
49
# File 'lib/gitnesse/dependency_checker.rb', line 43

def check_cucumber
  if system("cucumber --version &> /dev/null")
    true
  else
    add_error "Cucumber not found or not working"
  end
end

#check_features_dir_existsObject



77
78
79
80
81
82
83
84
# File 'lib/gitnesse/dependency_checker.rb', line 77

def check_features_dir_exists
  dir = Gitnesse::Config.instance.features_dir
  if File.directory?(dir)
    true
  else
    add_error "The features directory './#{dir}' does not exist."
  end
end

#check_gitObject

Checks that Git is installed on the system.

Returns true or raises DependencyNotMetError if git is broken



32
33
34
35
36
37
38
# File 'lib/gitnesse/dependency_checker.rb', line 32

def check_git
  if system("git --version &> /dev/null")
    true
  else
    add_error "Git not found or not working"
  end
end

#check_identifierObject

Checks that identifier is set in Gitnesse::Config, if annotate_results is set.

Returns true or raises DependencyNotMetError if identifier isn’t set



67
68
69
70
71
72
73
74
75
# File 'lib/gitnesse/dependency_checker.rb', line 67

def check_identifier
  return true unless Gitnesse::Config.instance.annotate_results
  identifier = Gitnesse::Config.instance.identifier
  if identifier.nil? || identifier.empty?
    add_error "You must specify identifier to use the annotate_results option"
  else
    true
  end
end

#check_repository_urlObject

Checks that repository_url is set in Gitnesse::Config.

Returns true or raises DependencyNotMetError if repository_url isn’t set



54
55
56
57
58
59
60
61
# File 'lib/gitnesse/dependency_checker.rb', line 54

def check_repository_url
  url = Gitnesse::Config.instance.repository_url
  if url.nil? || url.empty?
    add_error "You must specify a repository_url to run Gitnesse"
  else
    true
  end
end

#display_errorsObject



23
24
25
26
27
# File 'lib/gitnesse/dependency_checker.rb', line 23

def display_errors
  puts "Configuration errors were found!"
  @errors.each { |error| puts "  - #{error}" }
  abort
end