Module: Qlive::Registry

Defined in:
lib/qlive/registry.rb

Class Method Summary collapse

Class Method Details

.build_suite(suite_name) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/qlive/registry.rb', line 28

def self.build_suite(suite_name)
  meta = Registry.suites[suite_name]
  unless meta || Qlive.setup[:skip_suite_reloader]
    Registry.find_suites
    meta = Registry.suites[suite_name]
  end
  raise "Qlive Suite not found: #{suite_name}" unless meta
  load meta[:path]
  klass = meta[:klass]
  raise "Qlive could not find class for suite: #{suite_name}" unless klass
  klass.new
end

.find_suitesObject



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/qlive/registry.rb', line 14

def self.find_suites
  suites = {}
  base_path = Qlive.setup[:base_path]
  sources = Dir.glob("#{base_path}#{base_path.end_with?('/') ? '' : '/'}**/*_qlive.rb").sort.flatten
  sources.each do |path|
    path = path.to_s
    name = self.extract_suite_name_from_path(path)
    suites[name] ||= {}
    suites[name][:path] = path
  end

  $qlive_all_suites = suites
end

.register_class(klass) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/qlive/registry.rb', line 41

def self.register_class(klass)
  name = self.extract_suite_name_from_class(klass)
  meta = Registry.suites[name] || {}
  meta.merge!(:name => name,
              :klass => klass)
  meta
end

.suitesObject



9
10
11
# File 'lib/qlive/registry.rb', line 9

def self.suites
  $qlive_all_suites
end