Module: TestHarness::Utilities

Defined in:
lib/utilities.rb

Class Method Summary collapse

Class Method Details

.camelize(string) ⇒ Object



5
6
7
8
# File 'lib/utilities.rb', line 5

def camelize(string)
  string = string.sub(/^[a-z\d]*/) { $&.capitalize }
  string = string.gsub(/(?:_|(\/))([a-z\d]*)/) { "#{$1}#{$2.capitalize}" }.gsub('/', '::')
end

.constantize(camel_cased_word) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/utilities.rb', line 10

def constantize(camel_cased_word)
  names = camel_cased_word.split('::')
  names.shift if names.empty? || names.first.empty?

  constant = Object
  names.each do |name|
    constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
  end
  constant
end

.get_parent_class(klass) ⇒ Object



21
22
23
24
# File 'lib/utilities.rb', line 21

def get_parent_class(klass)
  parent_class_name = klass.name =~ /::[^:]+\Z/ ? $`.freeze : nil
  parent_class_name ? constantize(parent_class_name) : Object
end

.register_components(component_type) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/utilities.rb', line 26

def register_components(component_type)
  Dir.glob(File.join(TestHarness.autoload_path, "#{component_type}/**/**.rb")).each do |file|
    component = file.sub(TestHarness.autoload_path, '').sub(/^\/?#{component_type}\//, '').sub(/\.rb$/, '')
    require file
    yield component if block_given?
  end
end