Commit a340ea29 authored by Fabio Pelosin's avatar Fabio Pelosin

[Docs] Enhancements.

parent 6ee74e0c
...@@ -19,3 +19,4 @@ spec/fixtures/mercurial-repo/.hg/*cache ...@@ -19,3 +19,4 @@ spec/fixtures/mercurial-repo/.hg/*cache
.hg .hg
spec/fixtures/vcr spec/fixtures/vcr
.yardoc .yardoc
/doc
--markup markdown --markup markdown
--exclude examples
--exclude spec
--exclude tmp
module Pod module Pod
# Describes an build envronment. It caputures information about the SDK and a deployment target. # A platform describes a build environment.
# It captures information about the SDK and a deployment target.
#
# A platform represents all the known build environments if its name is nil.
# #
class Platform class Platform
# @return [Platform] Convenience method to initialize an iOS platform # @return [Platform] Convenience method to initialize an iOS platform.
# #
def self.ios def self.ios
new :ios new :ios
end end
# @return [Platform] Convenience method to initialize an OS X platform # @return [Platform] Convenience method to initialize an OS X platform.
# #
def self.osx def self.osx
new :osx new :osx
...@@ -19,16 +22,22 @@ module Pod ...@@ -19,16 +22,22 @@ module Pod
# Constructs a platform from either another platform or by # Constructs a platform from either another platform or by
# specifying the symbolic name and optionally the deployment target. # specifying the symbolic name and optionally the deployment target.
# #
# @param [Platform, Symbol] input Another platform or a symbolic name for the platform. # @overload initialize(platform)
# @param [Version, {Symbol=>Object}] deployment_target The optional deployment target if initalized by symbolic name # @param [Platform] platform Another platform or a symbolic name for the platform.
#
# @example
#
# p = Platform.new :ios
# Platform.new p
# #
# Examples: # @overload initialize(name, deployment_target)
# @param [Symbol] input Another platform or a symbolic name for the platform.
# @param [Version] deployment_target The optional deployment target if initialized by symbolic name.
# #
# ``` # @example
# Platform.new(:ios) #
# Platform.new(:ios, '4.3') # Platform.new(:ios)
# Platform.new(Platform.new(:ios)) # Platform.new(:ios, '4.3')
# ```
# #
def initialize(input = nil, deployment_target = nil) def initialize(input = nil, deployment_target = nil)
if input.is_a? Platform if input.is_a? Platform
...@@ -43,29 +52,26 @@ module Pod ...@@ -43,29 +52,26 @@ module Pod
end end
end end
# @return [Symbol] The name of the SDK reppresented by the platform. # @return [Symbol] The name of the SDK represented by the platform.
# #
def name def name
@symbolic_name @symbolic_name
end end
# The optional deployment target of the platform. # A deployment target can be initialized by any value that initializes a {Version}.
# A deployment target can be specified as a string. #
# @return [Version] The optional deployment target of the platform.
# #
# @return [Version]
attr_reader :deployment_target attr_reader :deployment_target
def deployment_target= (version) def deployment_target= (version)
@deployment_target = Pod::Version.create(version) @deployment_target = Pod::Version.create(version)
end end
# Checks if two platforms are the equivalent.
#
# @param [Platform, Symbol] other The other platform to check. If a symbol is # @param [Platform, Symbol] other The other platform to check. If a symbol is
# passed the comparison does not take into # passed the comparison does not take into account the deployment target.
# account the deployment target.
# #
# @return [Boolean] # @return [Boolean] Whether two platforms are the equivalent.
# #
def ==(other) def ==(other)
if other.is_a?(Symbol) if other.is_a?(Symbol)
...@@ -75,12 +81,14 @@ module Pod ...@@ -75,12 +81,14 @@ module Pod
end end
end end
# A platfrom supports (from the point of view of a pod) another platform if they reppresent the same SDK and if the # A platform supports (from the point of view of a pod) another platform if they represent the same SDK and if the
# deployment target of the other is lower. If one of the platforms does not specify the deployment target, it is not taken into account. # deployment target of the other is lower. If one of the platforms does not specify the deployment target, it is not taken into account.
# #
# This method always returns true if one of platforms is nil. # This method always returns true if one of platforms is nil.
# @return Whether the platform supports being used in the environment described by another platform.
#
# @todo rename to supported_on?
# #
# **TODO**: rename to supported_on?
def supports?(other) def supports?(other)
return true if @symbolic_name.nil? || other.nil? return true if @symbolic_name.nil? || other.nil?
os_check = @symbolic_name == other.name os_check = @symbolic_name == other.name
...@@ -88,9 +96,7 @@ module Pod ...@@ -88,9 +96,7 @@ module Pod
os_check && version_check os_check && version_check
end end
# A string reppresentation of the Platform including the deployment target if specified. # @return [String] A string representation of the Platform including the deployment target if specified.
#
# @return [String] A string reppresentation.
# #
def to_s def to_s
case @symbolic_name case @symbolic_name
...@@ -103,14 +109,15 @@ module Pod ...@@ -103,14 +109,15 @@ module Pod
end end
end end
# @return [Symbol] A Symbol reppresentation of the SDK. # @return [Symbol] A Symbol representation of the SDK.
# #
def to_sym def to_sym
name name
end end
# A platform behaves as nil if doesn't specify an SDK. # @return Whether the platform does not represents any SDK.
# A nil platform reppresents all the available platforms. #
# A platform behaves as nil if doesn't specify an SDK and implicitly represents all the available platforms.
# #
def nil? def nil?
name.nil? name.nil?
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment