Sha256: 50a5e31fa1220ad1e4790d93364d598a2ee7879a597701584f3d5c7ec5e76e99

Contents?: true

Size: 1.99 KB

Versions: 51

Compression:

Stored size: 1.99 KB

Contents

module Fastlane
  class DocsGenerator
    def self.run(output_path, ff)
      output = ["fastlane documentation"]
      output << "================"

      output << "# Installation"
      output << "```"
      output << "sudo gem install fastlane"
      output << "```"

      output << "# Available Actions"

      all_keys = ff.runner.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|
        output << "## #{formatted_platform(platform)}" if platform

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

        value.each do |lane_name, lane|
          next if lane.is_private
          output << render(platform, lane_name, lane.description.join("\n\n"))
        end

        output << ""
        output << "----"
        output << ""
      end

      output << "Generate this documentation by running `fastlane docs`"
      output << "More information about fastlane can be found on [https://fastlane.tools](https://fastlane.tools)."
      output << "The documentation of fastlane can be found on [GitHub](https://github.com/KrauseFx/fastlane)"

      File.write(output_path, output.join("\n"))
      Helper.log.info "Successfully generated documentation to path '#{File.expand_path(output_path)}'".green
    end

    #####################################################
    # @!group Helper
    #####################################################

    def self.formatted_platform(pl)
      pl = pl.to_s
      return "iOS" if pl == 'ios'
      return "Mac" if pl == 'mac'

      return pl
    end

    # @param platform [String]
    # @param lane [Fastlane::Lane]
    # @param description [String]
    def self.render(platform, lane, description)
      full_name = [platform, lane].reject(&:nil?).join(' ')

      output = []
      output << "### #{full_name}"
      output << "```"
      output << "fastlane #{full_name}"
      output << "```"
      output << description
      output
    end
  end
end

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
fastlane-1.49.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.48.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.47.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.46.1 lib/fastlane/documentation/docs_generator.rb
fastlane-1.46.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.45.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.44.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.43.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.42.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.41.1 lib/fastlane/documentation/docs_generator.rb
fastlane-1.41.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.40.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.39.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.38.1 lib/fastlane/documentation/docs_generator.rb
fastlane-1.38.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.37.0 lib/fastlane/documentation/docs_generator.rb
fastlane-1.36.4 lib/fastlane/documentation/docs_generator.rb
fastlane-1.36.3 lib/fastlane/documentation/docs_generator.rb
fastlane-1.36.2 lib/fastlane/documentation/docs_generator.rb
fastlane-1.36.1 lib/fastlane/documentation/docs_generator.rb