Class: Pod::Platform
- Inherits:
-
Object
- Object
- Pod::Platform
- Defined in:
- lib/cocoapods-core/platform.rb
Overview
A Platform describes an SDK name and deployment target.
Instance Attribute Summary collapse
-
#deployment_target ⇒ Version
readonly
The deployment target of the platform.
-
#symbolic_name ⇒ Symbol, String
(also: #name)
readonly
The name of the SDK represented by the platform.
Class Method Summary collapse
-
.ios ⇒ Platform
Convenience method to initialize an iOS platform.
-
.osx ⇒ Platform
Convenience method to initialize an OS X platform.
-
.string_name(symbolic_name) ⇒ String
Converts the symbolic name of a platform to a string name suitable to be presented to the user.
-
.tvos ⇒ Platform
Convenience method to initialize a tvOS platform.
-
.watchos ⇒ Platform
Convenience method to initialize a watchOS platform.
Instance Method Summary collapse
-
#<=>(other) ⇒ Fixnum
Compares the platform first by name and the by deployment_target for sorting.
-
#==(other) ⇒ Boolean
(also: #eql?)
Checks if a platform is equivalent to another one or to a symbol representation.
-
#initialize(input, target = nil) ⇒ Platform
constructor
Constructs a platform from either another platform or by specifying the symbolic name and optionally the deployment target.
-
#inspect ⇒ String
The debug representation.
-
#requires_legacy_ios_archs? ⇒ Bool
Whether the platform requires legacy architectures for iOS.
-
#supports?(other) ⇒ Bool
Checks whether a platform supports another one.
-
#supports_dynamic_frameworks? ⇒ Bool
Whether the platform supports dynamic frameworks.
-
#to_s ⇒ String
A string representation that includes the deployment target.
-
#to_sym ⇒ Symbol
A symbol representing the name of the platform.
Constructor Details
#initialize(name, deployment_target) ⇒ Platform #initialize(platform) ⇒ Platform
Constructs a platform from either another platform or by specifying the symbolic name and optionally the deployment target.
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/cocoapods-core/platform.rb', line 43 def initialize(input, target = nil) if input.is_a? Platform @symbolic_name = input.name @deployment_target = input.deployment_target else @symbolic_name = input.to_sym target = target[:deployment_target] if target.is_a?(Hash) @deployment_target = Version.create(target) end end |
Instance Attribute Details
#deployment_target ⇒ Version (readonly)
Returns the deployment target of the platform.
12 13 14 |
# File 'lib/cocoapods-core/platform.rb', line 12 def deployment_target @deployment_target end |
#symbolic_name ⇒ Symbol, String (readonly) Also known as: name
Returns the name of the SDK represented by the platform.
7 8 9 |
# File 'lib/cocoapods-core/platform.rb', line 7 def symbolic_name @symbolic_name end |
Class Method Details
.ios ⇒ Platform
Convenience method to initialize an iOS platform.
58 59 60 |
# File 'lib/cocoapods-core/platform.rb', line 58 def self.ios new :ios end |
.osx ⇒ Platform
Convenience method to initialize an OS X platform.
66 67 68 |
# File 'lib/cocoapods-core/platform.rb', line 66 def self.osx new :osx end |
.string_name(symbolic_name) ⇒ String
Converts the symbolic name of a platform to a string name suitable to be presented to the user.
203 204 205 206 207 208 209 210 211 |
# File 'lib/cocoapods-core/platform.rb', line 203 def self.string_name(symbolic_name) case symbolic_name when :ios then 'iOS' when :osx then 'OS X' when :watchos then 'watchOS' when :tvos then 'tvOS' else symbolic_name.to_s end end |
.tvos ⇒ Platform
Convenience method to initialize a tvOS platform.
74 75 76 |
# File 'lib/cocoapods-core/platform.rb', line 74 def self.tvos new :tvos end |
.watchos ⇒ Platform
Convenience method to initialize a watchOS platform.
82 83 84 |
# File 'lib/cocoapods-core/platform.rb', line 82 def self.watchos new :watchos end |
Instance Method Details
#<=>(other) ⇒ Fixnum
Compares the platform first by name and the by deployment_target for sorting.
165 166 167 168 169 170 171 172 |
# File 'lib/cocoapods-core/platform.rb', line 165 def <=>(other) name_sort = name.to_s <=> other.name.to_s if name_sort.zero? deployment_target <=> other.deployment_target else name_sort end end |
#==(other) ⇒ Boolean Also known as: eql?
If a symbol is passed the comparison does not take into account the deployment target.
Checks if a platform is equivalent to another one or to a symbol representation.
97 98 99 100 101 102 103 |
# File 'lib/cocoapods-core/platform.rb', line 97 def ==(other) if other.is_a?(Symbol) @symbolic_name == other else (name == other.name) && (deployment_target == other.deployment_target) end end |
#inspect ⇒ String
Returns the debug representation.
145 146 147 148 |
# File 'lib/cocoapods-core/platform.rb', line 145 def inspect "#<#{self.class.name} name=#{name.inspect} " \ "deployment_target=#{deployment_target.inspect}>" end |
#requires_legacy_ios_archs? ⇒ Bool
Returns whether the platform requires legacy architectures for iOS.
177 178 179 180 181 182 183 |
# File 'lib/cocoapods-core/platform.rb', line 177 def requires_legacy_ios_archs? if name == :ios deployment_target && (deployment_target < Version.new('4.3')) else false end end |
#supports?(other) ⇒ Bool
Checks whether a platform supports another one.
In the context of operating system SDKs, a platform supports another one if they have the same name and the other platform has a minor or equal deployment target.
125 126 127 128 129 130 131 132 |
# File 'lib/cocoapods-core/platform.rb', line 125 def supports?(other) other = Platform.new(other) if other.deployment_target && deployment_target (other.name == name) && (other.deployment_target <= deployment_target) else other.name == name end end |
#supports_dynamic_frameworks? ⇒ Bool
Returns whether the platform supports dynamic frameworks.
187 188 189 190 191 192 193 |
# File 'lib/cocoapods-core/platform.rb', line 187 def supports_dynamic_frameworks? if name == :ios deployment_target && (deployment_target >= Version.new(8.0)) else true end end |
#to_s ⇒ String
Returns a string representation that includes the deployment target.
137 138 139 140 141 |
# File 'lib/cocoapods-core/platform.rb', line 137 def to_s s = self.class.string_name(@symbolic_name) s << " #{deployment_target}" if deployment_target s end |
#to_sym ⇒ Symbol
Returns a symbol representing the name of the platform.
152 153 154 |
# File 'lib/cocoapods-core/platform.rb', line 152 def to_sym name end |