Class: Pod::Installer::Analyzer::PodVariant

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods/installer/analyzer/pod_variant.rb

Overview

Bundles the information needed to setup a PodTarget.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(specs, test_specs, app_specs, platform, build_type = BuildType.static_library, swift_version = nil) ⇒ PodVariant

Initialize a new instance from its attributes.

Parameters:

  • specs (Array<Specification>)

    @see #specs

  • test_specs (Array<Specification>)

    @see #test_specs

  • app_specs (Array<Specification>)

    @see #app_specs

  • platform (Platform)

    @see #platform

  • build_type (BuildType) (defaults to: BuildType.static_library)

    @see #build_type

  • swift_version (String) (defaults to: nil)

    @see #swift_version



39
40
41
42
43
44
45
46
47
48
# File 'lib/cocoapods/installer/analyzer/pod_variant.rb', line 39

def initialize(specs, test_specs, app_specs, platform, build_type = BuildType.static_library,
               swift_version = nil)
  @specs = specs
  @test_specs = test_specs
  @app_specs = app_specs
  @platform = platform
  @build_type = build_type
  @swift_version = swift_version
  @hash = [specs, platform, build_type, swift_version].hash
end

Instance Attribute Details

#app_specsArray<Specification> (readonly)

Returns the app specs for the target.

Returns:



16
17
18
# File 'lib/cocoapods/installer/analyzer/pod_variant.rb', line 16

def app_specs
  @app_specs
end

#build_typeBuildType (readonly)

Returns the build type of the target.

Returns:

  • (BuildType)

    the build type of the target



24
25
26
# File 'lib/cocoapods/installer/analyzer/pod_variant.rb', line 24

def build_type
  @build_type
end

#hashObject (readonly, private)

Hashes the instance by all its attributes.

This adds support to make instances usable as Hash keys.



75
76
77
# File 'lib/cocoapods/installer/analyzer/pod_variant.rb', line 75

def hash
  @hash
end

#platformPlatform (readonly)

Returns the platform.

Returns:

  • (Platform)

    the platform



20
21
22
# File 'lib/cocoapods/installer/analyzer/pod_variant.rb', line 20

def platform
  @platform
end

#specsArray<Specification> (readonly)

Returns the spec and subspecs for the target.

Returns:

  • (Array<Specification>)

    the spec and subspecs for the target



8
9
10
# File 'lib/cocoapods/installer/analyzer/pod_variant.rb', line 8

def specs
  @specs
end

#swift_versionString (readonly)

Returns the Swift version of the target.

Returns:

  • (String)

    the Swift version of the target.



28
29
30
# File 'lib/cocoapods/installer/analyzer/pod_variant.rb', line 28

def swift_version
  @swift_version
end

#test_specsArray<Specification> (readonly)

Returns the test specs for the target.

Returns:



12
13
14
# File 'lib/cocoapods/installer/analyzer/pod_variant.rb', line 12

def test_specs
  @test_specs
end

Instance Method Details

#==(other) ⇒ Boolean Also known as: eql?

Note:

Non library specs are intentionally not included as part of the equality for pod variants since a pod variant should not be affected by the number of test nor app specs included.

Returns whether the Pod::Installer::Analyzer::PodVariant is equal to another taking all all their attributes into account.

Returns:



61
62
63
64
65
66
67
# File 'lib/cocoapods/installer/analyzer/pod_variant.rb', line 61

def ==(other)
  self.class == other.class &&
  build_type == other.build_type &&
    swift_version == other.swift_version &&
    platform == other.platform &&
    specs == other.specs
end

#root_specSpecification

Returns the root specification.

Returns:



52
53
54
# File 'lib/cocoapods/installer/analyzer/pod_variant.rb', line 52

def root_spec
  specs.first.root
end

#scoped_with_swift_version(swift_version) ⇒ PodVariant

Returns A copy of this pod variant with the specified Swift version.

Parameters:

  • swift_version (String)

    The swift version to use for this variant.

Returns:

  • (PodVariant)

    A copy of this pod variant with the specified Swift version.



81
82
83
# File 'lib/cocoapods/installer/analyzer/pod_variant.rb', line 81

def scoped_with_swift_version(swift_version)
  PodVariant.new(specs, test_specs, app_specs, platform, build_type, swift_version)
end