Module: TestConsole::Utility::ClassMethods

Included in:
TestConsole::Utility
Defined in:
lib/test_console/utility.rb

Instance Method Summary collapse

Instance Method Details

#class_from_filename(filename) ⇒ Object

Returns an array of class components from a filename eg for module/controller => [‘Module’, ‘Controller’]



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/test_console/utility.rb', line 10

def class_from_filename(filename)
  segs = filename.split('/')
  segs.delete ''
  segs.delete '.'
  segs.last.gsub!('.rb', '')

  # drop the test folder
  segs = segs[1..-1] while segs[0] == 'test'
  segs = segs[1..-1] while ['unit', 'functional', 'helpers', 'integration'].include?(segs[0])
  ret = segs.map {|seg| seg.camelize}

  return ret
end

#const_defined?(klass) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
28
29
30
31
32
33
# File 'lib/test_console/utility.rb', line 24

def const_defined?(klass)
  klass = [klass] unless klass.kind_of? Array
  klass.inject(Object) do |context, scope|
    if context.const_defined?(scope)
      context.const_get(scope)
    else
      return false
    end
  end
end

#const_get(klass) ⇒ Object



35
36
37
38
39
40
# File 'lib/test_console/utility.rb', line 35

def const_get(klass)
  klass = [klass] unless klass.kind_of? Array
  klass.inject(Object) do |context, scope|
    context.const_get(scope)
  end
end

#const_remove(klass) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/test_console/utility.rb', line 42

def const_remove(klass)
  klass = [klass] unless klass.kind_of? Array
  if klass.length > 1
    Utility.const_get(klass[0..-2]).send :remove_const, klass.last
  elsif klass.any?
    Object.send :remove_const, klass.last
  end
end