class Pantograph::LaneList

Public Class Methods

generate(path) click to toggle source
# File pantograph/lib/pantograph/lane_list.rb, line 11
def self.generate(path)
  ff = Pantograph::PantFile.new(path)
  lanes = ff.runner.lanes

  output = ""

  all_keys = lanes.keys.reject(&:nil?)
  all_keys.unshift(nil) # because we want root elements on top. always! They have key nil

  all_keys.each do |platform|
    next if (lanes[platform] || []).count == 0

    plat_text = platform
    plat_text = "general" if platform.to_s.empty?
    output += "\n--------- #{plat_text}---------\n".yellow

    value = lanes[platform]
    next unless value

    value.each do |lane_name, lane|
      next if lane.is_private

      output += "----- pantograph #{lane.pretty_name}".green
      if lane.description.count > 0
        output += "\n" + lane.description.join("\n") + "\n\n"
      else
        output += "\n\n"
      end
    end
  end

  output
end
generate_json(path) click to toggle source

Returns a hash

# File pantograph/lib/pantograph/lane_list.rb, line 50
def self.generate_json(path)
  output = {}
  return output if path.nil?
  ff = Pantograph::PantFile.new(path)

  all_keys = ff.runner.lanes.keys

  all_keys.each do |platform|
    next if (ff.runner.lanes[platform] || []).count == 0

    output[platform] ||= {}

    value = ff.runner.lanes[platform]
    next unless value

    value.each do |lane_name, lane|
      next if lane.is_private

      output[platform][lane_name] = {
        description: lane.description.join("\n")
      }
    end
  end

  return output
end
output(path) click to toggle source

Print out the result of `generate`

# File pantograph/lib/pantograph/lane_list.rb, line 5
def self.output(path)
  puts(generate(path))

  puts("Execute using `pantograph [lane_name]`".yellow)
end
output_json(path) click to toggle source
# File pantograph/lib/pantograph/lane_list.rb, line 45
def self.output_json(path)
  puts(JSON.pretty_generate(self.generate_json(path)))
end