Module: Polisher::CheckerLoader

Included in:
VersionChecker
Defined in:
lib/polisher/adaptors/checker_loader.rb

Instance Method Summary collapse

Instance Method Details

#check(*target) ⇒ Object

Enable the specified target(s) in the list of target to check



67
68
69
70
# File 'lib/polisher/adaptors/checker_loader.rb', line 67

def check(*target)
  @check_list ||= []
  target.flatten.each { |t| @check_list << t }
end

#default_modulesObject

Return modules marked as default



57
58
59
# File 'lib/polisher/adaptors/checker_loader.rb', line 57

def default_modules
  @target_modules.select { |tm| tm.default? }
end

#default_targetsObject

Return targets marked as default



62
63
64
# File 'lib/polisher/adaptors/checker_loader.rb', line 62

def default_targets
  default_modules.collect { |m| module_target(m) }
end

#load_target(target) ⇒ Object

Load specified target

Raises:

  • (ArgumentError)


38
39
40
41
42
43
44
45
46
47
# File 'lib/polisher/adaptors/checker_loader.rb', line 38

def load_target(target)
  raise ArgumentError, target unless targets.include?(target)

  require "polisher/adaptors/version_checker/#{target}"

  tm = target_module(target)
  @target_modules ||= []
  @target_modules << tm
  include tm
end

#load_targetsObject Also known as: all_targets

Load all targets



50
51
52
53
# File 'lib/polisher/adaptors/checker_loader.rb', line 50

def load_targets
  targets.each { |t| load_target t }
  targets
end

#module_target(mod) ⇒ Object

Target corresponding to mixin module



28
29
30
# File 'lib/polisher/adaptors/checker_loader.rb', line 28

def module_target(mod)
  mod.to_s.gsub('Polisher::', '').gsub('VersionChecker', '').underscore.intern
end

#should_check?(target) ⇒ Boolean

Return bool indicating if target should be checked

Returns:

  • (Boolean)


73
74
75
76
# File 'lib/polisher/adaptors/checker_loader.rb', line 73

def should_check?(target)
  @check_list ||= default_targets
  @check_list.include?(target)
end

#target_dirObject

Dir which target checkers reside



12
13
14
# File 'lib/polisher/adaptors/checker_loader.rb', line 12

def target_dir
  @target_dir ||= File.expand_path(File.join(File.dirname(__FILE__), '/version_checker'))
end

#target_method(target) ⇒ Object

Mixed in method to check target



33
34
35
# File 'lib/polisher/adaptors/checker_loader.rb', line 33

def target_method(target)
  "#{target}_versions"
end

#target_module(target) ⇒ Object

Mixin module corresponding to target



23
24
25
# File 'lib/polisher/adaptors/checker_loader.rb', line 23

def target_module(target)
  "Polisher::#{target.to_s.camelcase}VersionChecker".constantize
end

#targetsObject

Targets to check



17
18
19
20
# File 'lib/polisher/adaptors/checker_loader.rb', line 17

def targets
  @targets ||= Dir.glob(File.join(target_dir, '*.rb'))
                  .collect { |t| t.gsub("#{target_dir}/", '').gsub('.rb', '').intern }
end