module Guard
def get_guard_class(name, fail_gracefully=false)
-
(Class, nil)
- the loaded class
Parameters:
-
fail_gracefully
(Boolean
) -- whether error messages should not be printed -
name
(String
) -- the name of the Guard
def get_guard_class(name, fail_gracefully=false) name = name.to_s try_require = false const_name = name.gsub(/\/(.?)/) { "::#{ $1.upcase }" }.gsub(/(?:^|[_-])(.)/) { $1.upcase } begin require "guard/#{ name.downcase }" if try_require self.const_get(self.constants.find { |c| c.to_s == const_name } || self.constants.find { |c| c.to_s.downcase == const_name.downcase }) rescue TypeError unless try_require try_require = true retry else UI.error "Could not find class Guard::#{ const_name.capitalize }" end rescue LoadError => loadError unless fail_gracefully UI.error "Could not load 'guard/#{ name.downcase }' or find class Guard::#{ const_name.capitalize }" UI.error loadError.to_s end end end