Class: USCoreTestKit::Client::Generator::WaitGroupGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/us_core_test_kit/client/generator/wait_group_generator.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ig_metadata, base_output_dir) ⇒ WaitGroupGenerator

Returns a new instance of WaitGroupGenerator.



15
16
17
18
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 15

def initialize(, base_output_dir)
  self. = 
  self.base_output_dir = base_output_dir
end

Instance Attribute Details

#base_output_dirObject

Returns the value of attribute base_output_dir.



13
14
15
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 13

def base_output_dir
  @base_output_dir
end

#ig_metadataObject

Returns the value of attribute ig_metadata.



13
14
15
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 13

def 
  @ig_metadata
end

Class Method Details

.generate(ig_metadata, base_output_dir) ⇒ Object



8
9
10
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 8

def generate(, base_output_dir)
  new(, base_output_dir).generate
end

Instance Method Details

#base_output_file_nameObject



32
33
34
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 32

def base_output_file_name
  "#{class_name.underscore}.rb"
end

#check_listObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 45

def check_list
  groups
    .map do |group|
      profile_name = USCoreTestKit::Generator::Naming.upper_camel_case_for_profile(group)
      profile_header = "* **#{profile_name}**"
      profile_id = "  * read id:\n    * us-core-client-tests-#{profile_name.underscore.dasherize}"
      required_searches = group.searches.each do |search|
        next unless search[:expectation] == 'SHALL'

        search
      end
      searches = "  * searches:"
      search_list = required_searches.map do |search|
        "    * #{search[:names].join(' + ')}"
      end
      "#{profile_header}\n#{profile_id}\n#{searches}\n#{search_list.join("\n")}"
    end
    .join("\n")
end

#class_nameObject



28
29
30
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 28

def class_name
  "WaitGroup"
end

#generateObject



65
66
67
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 65

def generate
  File.write(output_file_name, output)
end

#groupsObject



40
41
42
43
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 40

def groups
  .ordered_groups
    .reject { |group| USCoreTestKit::Generator::SpecialCases.exclude_group? group }
end

#outputObject



24
25
26
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 24

def output
  @output ||= ERB.new(template).result(binding)
end

#output_file_nameObject



36
37
38
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 36

def output_file_name
  File.join(base_output_dir, base_output_file_name)
end

#templateObject



20
21
22
# File 'lib/us_core_test_kit/client/generator/wait_group_generator.rb', line 20

def template
  @template ||= File.read(File.join(__dir__, 'templates', 'wait_group.rb.erb'))
end