class Fastlane::Actions::SourcedocsAction

Public Class Methods

authors() click to toggle source
# File fastlane/lib/fastlane/actions/sourcedocs.rb, line 108
def self.authors
  ["Kukurijek"]
end
available_options() click to toggle source
# File fastlane/lib/fastlane/actions/sourcedocs.rb, line 35
def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :all_modules,
                                 env_name: 'FL_SOURCEDOCS_OUTPUT_ALL_MODULES',
                                 description: 'Generate documentation for all modules in a Swift package',
                                 type: Boolean,
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :spm_module,
                                 env_name: 'FL_SOURCEDOCS_SPM_MODULE',
                                 description: 'Generate documentation for Swift Package Manager module',
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :module_name,
                                 env_name: 'FL_SOURCEDOCS_MODULE_NAME',
                                 description: 'Generate documentation for a Swift module',
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :link_beginning,
                                 env_name: 'FL_SOURCEDOCS_LINK_BEGINNING',
                                 description: 'The text to begin links with',
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :link_ending,
                                 env_name: 'FL_SOURCEDOCS_LINK_ENDING',
                                 description: 'The text to end links with (default: .md)',
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :output_folder,
                                 env_name: 'FL_SOURCEDOCS_OUTPUT_FOLDER',
                                 description: 'Output directory to clean (default: Documentation/Reference)',
                                 optional: false),
    FastlaneCore::ConfigItem.new(key: :min_acl,
                                 env_name: 'FL_SOURCEDOCS_MIN_ACL',
                                 description: 'Access level to include in documentation [private, fileprivate, internal, public, open] (default: public)',
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :module_name_path,
                                 env_name: 'FL_SOURCEDOCS_MODULE_NAME_PATH',
                                 description: 'Include the module name as part of the output folder path',
                                 type: Boolean,
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :clean,
                                 env_name: 'FL_SOURCEDOCS_CLEAN',
                                 description: 'Delete output folder before generating documentation',
                                 type: Boolean,
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :collapsible,
                                 env_name: 'FL_SOURCEDOCS_COLLAPSIBLE',
                                 description: 'Put methods, properties and enum cases inside collapsible blocks',
                                 type: Boolean,
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :table_of_contents,
                                 env_name: 'FL_SOURCEDOCS_TABLE_OF_CONTENT',
                                 description: 'Generate a table of contents with properties and methods for each type',
                                 type: Boolean,
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :reproducible,
                                 env_name: 'FL_SOURCEDOCS_REPRODUCIBLE',
                                 description: 'Generate documentation that is reproducible: only depends on the sources',
                                 type: Boolean,
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :scheme,
                                 env_name: 'FL_SOURCEDOCS_SCHEME',
                                 description: 'Create documentation for specific scheme',
                                 optional: true),
    FastlaneCore::ConfigItem.new(key: :sdk_platform,
                                 env_name: 'FL_SOURCEDOCS_SDK_PlATFORM',
                                 description: 'Create documentation for specific sdk platform',
                                 optional: true)
  ]
end
category() click to toggle source
# File fastlane/lib/fastlane/actions/sourcedocs.rb, line 123
def self.category
  :documentation
end
description() click to toggle source

@!group Documentation

# File fastlane/lib/fastlane/actions/sourcedocs.rb, line 31
def self.description
  "Generate docs using SourceDocs"
end
example_code() click to toggle source
# File fastlane/lib/fastlane/actions/sourcedocs.rb, line 116
def self.example_code
  [
    "sourcedocs(output_folder: 'docs')",
    "sourcedocs(output_folder: 'docs', clean: true, reproducible: true, scheme: 'MyApp')"
  ]
end
is_supported?(platform) click to toggle source
# File fastlane/lib/fastlane/actions/sourcedocs.rb, line 112
def self.is_supported?(platform)
  [:ios, :mac].include?(platform)
end
output() click to toggle source
# File fastlane/lib/fastlane/actions/sourcedocs.rb, line 102
def self.output
end
return_value() click to toggle source
# File fastlane/lib/fastlane/actions/sourcedocs.rb, line 105
def self.return_value
end
run(params) click to toggle source
# File fastlane/lib/fastlane/actions/sourcedocs.rb, line 4
def self.run(params)
  UI.user_error!("You have to install sourcedocs using `brew install sourcedocs`") if `which sourcedocs`.to_s.length == 0 && !Helper.test?

  command =  "sourcedocs generate"
  command << " --all-modules" if params[:all_modules]
  command << " --spm-module #{params[:spm_module]}" unless params[:spm_module].nil?
  command << " --module-name #{params[:module_name]}" unless params[:module_name].nil?
  command << " --link-beginning #{params[:link_beginning]}" unless params[:link_beginning].nil?
  command << " --link-ending #{params[:link_ending]}" unless params[:link_ending].nil?
  command << " --output-folder #{params[:output_folder]}" unless params[:output_folder].nil?
  command << " --min-acl #{params[:min_acl]}" unless params[:min_acl].nil?
  command << " --module-name-path" if params[:module_name_path]
  command << " --clean" if params[:clean]
  command << " --collapsible" if params[:collapsible]
  command << " --table-of-contents" if params[:table_of_contents]
  command << " --reproducible-docs" if params[:reproducible]
  unless params[:scheme].nil?
    command << " -- -scheme #{params[:scheme]}"
    command << " -sdk #{params[:sdk_platform]}" unless params[:sdk_platform].nil?
  end
  Actions.sh(command)
end