class Redbreast::Command::ColorTestGenerator

Class for creating color tests

Public Class Methods

init() click to toggle source
# File lib/redbreast/commands/color_test_generator.rb, line 8
def self.init
  new.call
end

Public Instance Methods

call() click to toggle source
# File lib/redbreast/commands/color_test_generator.rb, line 12
def call
  filtered_bundles = bundles.select { |bundle| bundle[:outputTestPathColors] }
  return if filtered_bundles.empty?

  prompt.say('Generating color test resources...')
  generate_test_sources(bundles, programming_language, app_name)
  success('Color test resources generated!')
end

Private Instance Methods

generate_test_sources(bundles, programming_language, app_name) click to toggle source
# File lib/redbreast/commands/color_test_generator.rb, line 23
def generate_test_sources(bundles, programming_language, app_name)
  bundles.each do |bundle|
    color_names = pull_asset_names(bundle[:assetsSearchPath])
    write_tests(color_names, bundle, programming_language, app_name)
  end
end
pull_asset_names(assetsSearchPath) click to toggle source

Pulling data

# File lib/redbreast/commands/color_test_generator.rb, line 54
def pull_asset_names(assetsSearchPath)
  Redbreast::Crawler::Color
    .color_names_uniq(assetsSearchPath)
end
write_tests(color_names, bundle, programming_language, app_name) click to toggle source

Serializing data

# File lib/redbreast/commands/color_test_generator.rb, line 32
def write_tests(color_names, bundle, programming_language, app_name)
  output_path = bundle[:outputTestPathColors]

  return if output_path.to_s.empty?

  case programming_language.downcase
  when 'objc'
    serializer = Redbreast::Serializer::ObjC
    template_generator = Redbreast::TemplateGenerator::ColorTest::ObjC
  when 'swift'
    serializer = Redbreast::Serializer::Swift
    template_generator = Redbreast::TemplateGenerator::ColorTest::Swift
  when 'swiftui'
    serializer = Redbreast::Serializer::SwiftUI
    template_generator = Redbreast::TemplateGenerator::ColorTest::SwiftUI
  end
  serializer.new(color_names, bundle, app_name).save(output_source_path: output_path, template_generator: template_generator.new, generate_colors: true)

end