class CocoapodsNexus::API

github.com/Cisco-AMP/nexus_api

Attributes

connection[RW]
repo[RW]

Public Class Methods

new(hostname:, repo:) click to toggle source

用于管理nexus服务器

# File lib/cocoapods-nexus/api.rb, line 11
def initialize(hostname:, repo:)
  @connection = CocoapodsNexus::API::NexusConnection.new(hostname: hostname)
  @repo = repo
end

Public Instance Methods

search_maven_component(artifact_id:) click to toggle source

搜索组件

# File lib/cocoapods-nexus/api/components.rb, line 4
def search_maven_component(artifact_id:)
  @connection.get_response(endpoint: "search?repository=#{@repo}&name=#{artifact_id}")
end
upload_maven_component(artifact_id:, version:, group_id:, podspec:, artifact:, podspec_hook:, files:) click to toggle source

上传组件

# File lib/cocoapods-nexus/api/components.rb, line 9
def upload_maven_component(artifact_id:, version:, group_id:, podspec:, artifact:, podspec_hook:, files:)
  parameters = {
    'maven2.artifactId' => artifact_id,
    'maven2.version' => version,
    'maven2.groupId' => group_id,
    'maven2.generate-pom' => true,
    'maven2.packaging' => artifact.nil? ? 'podspec' : File.extname(artifact).delete('.')
  }
  upload_files = []
  unless podspec.nil?
    upload_files << {
      'file' => podspec,
      'extension' => 'podspec',
      # 'classifier' => 'podspec'
    }
  end
  unless artifact.nil?
    upload_files << {
      'file' => artifact,
      'extension' => File.extname(artifact).delete('.')
    }
  end
  unless podspec_hook.nil?
    upload_files << {
      'file' => podspec_hook,
      'extension' => 'rb',
      'classifier' => 'podspec_hook'
    }
  end

  unless files.nil?
    upload_files |= files.map do |file|
      {
        'file' => file,
        'extension' => File.extname(file).delete('.'),
      }
    end
  end

  upload_files.each_index do |index|
    parameters["maven2.asset#{index + 1}"] = File.open(upload_files[index]['file'], 'r:utf-8')
    parameters["maven2.asset#{index + 1}.extension"] = upload_files[index]['extension'] unless upload_files[index]['extension'].nil?
    parameters["maven2.asset#{index + 1}.classifier"] = upload_files[index]['classifier'] unless upload_files[index]['classifier'].nil?
  end
  @connection.post(endpoint: "components?repository=#{@repo}", parameters: parameters, headers: {})
end