module Pod::Specification::DSL::RootAttributesAccessors

Provides the accessors methods for the root attributes. Root attributes do not support multi-platform values and inheritance.

Public Instance Methods

authors() click to toggle source

@return [Hash] a hash containing the authors as the keys and their

email address as the values.

@note The value is coerced to a hash with a nil email if needed.

@example Possible values

{ 'Author' => 'email@host.com' }
[ 'Author', { 'Author_2' => 'email@host.com' } ]
[ 'Author', 'Author_2' ]
'Author'
# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 77
def authors
  authors = attributes_hash['authors']
  if authors.is_a?(Hash)
    authors
  elsif authors.is_a?(Array)
    result = {}
    authors.each do |name_or_hash|
      if name_or_hash.is_a?(String)
        result[name_or_hash] = nil
      else
        result.merge!(name_or_hash)
      end
    end
    result
  elsif authors.is_a?(String)
    { authors => nil }
  end
end
base_name() click to toggle source

@return [String] The name of the specification not including the

names of the parents, in case of ‘sub-specifications’.
# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 11
def base_name
  attributes_hash['name']
end
changelog() click to toggle source

@return [String] The changelog.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 110
def changelog
  attributes_hash['changelog']
end
cocoapods_version() click to toggle source

@return [Requirement] The CocoaPods version required to use the specification.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 61
def cocoapods_version
  @cocoapods_version ||= Requirement.create(attributes_hash['cocoapods_version'])
end
deprecated() click to toggle source

@return [Bool] Whether the Pod has been deprecated.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 197
def deprecated
  attributes_hash['deprecated']
end
deprecated?() click to toggle source

@return [Bool] Wether the pod is deprecated either in favor of some other

pod or simply deprecated.
# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 211
def deprecated?
  deprecated || !deprecated_in_favor_of.nil?
end
deprecated_in_favor_of() click to toggle source

@return [String] The name of the Pod that this one has been

deprecated in favor of.
# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 204
def deprecated_in_favor_of
  attributes_hash['deprecated_in_favor_of']
end
description() click to toggle source

@return [String] A longer description of the Pod.

@note The indentation is stripped from the description.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 160
def description
  description = attributes_hash['description']
  description.strip_heredoc.chomp if description
end
documentation_url() click to toggle source

@return [String, Nil] The documentation URL of the Pod if specified.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 177
def documentation_url
  attributes_hash['documentation_url']
end
homepage() click to toggle source

@return [String] The URL of the homepage of the Pod.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 133
def homepage
  attributes_hash['homepage']
end
license() click to toggle source

@return [Hash] A hash containing the license information of the Pod.

@note The indentation is stripped from the license text.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 118
def license
  license = attributes_hash['license']
  if license.is_a?(String)
    { :type => license }
  elsif license.is_a?(Hash)
    license = Specification.convert_keys_to_symbol(license)
    license[:text] = license[:text].strip_heredoc if license[:text]
    license
  else
    {}
  end
end
module_map() click to toggle source

@return [String, Nil] The custom module map file of the Pod,

if specified.
# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 218
def module_map
  attributes_hash['module_map']
end
name() click to toggle source

@return [String] The name of the specification including the names of

the parents, in case of ‘sub-specifications’.
# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 18
def name
  parent ? "#{parent.name}/#{base_name}" : base_name
end
prepare_command() click to toggle source

@return [String, Nil] The prepare command of the Pod if specified.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 183
def prepare_command
  command = attributes_hash['prepare_command']
  command.strip_heredoc.chomp if command
end
readme() click to toggle source

@return [String] The readme.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 104
def readme
  attributes_hash['readme']
end
requires_arc() click to toggle source

@return [Bool, String, Array<String>] The requires_arc value.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 24
def requires_arc
  attributes_hash['requires_arc']
end
screenshots() click to toggle source

@return [Array<String>] The list of the URL for the screenshots of

the Pod.

@note The value is coerced to an array.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 170
def screenshots
  value = attributes_hash['screenshots']
  [*value]
end
social_media_url() click to toggle source

@return [String] The social media URL.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 98
def social_media_url
  attributes_hash['social_media_url']
end
source() click to toggle source

@return [Hash{Symbol=>String}] The location from where the library

should be retrieved.
# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 140
def source
  value = attributes_hash['source']
  if value && value.is_a?(Hash)
    Specification.convert_keys_to_symbol(value)
  else
    value
  end
end
static_framework() click to toggle source

@return [Bool] Indicates, that if use_frameworks! is specified, the

framework should include a static library.
# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 191
def static_framework
  attributes_hash['static_framework']
end
summary() click to toggle source

@return [String] A short description of the Pod.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 151
def summary
  summary = attributes_hash['summary']
  summary.strip_heredoc.chomp if summary
end
swift_version() click to toggle source

@deprecated in favor of swift_versions

@return [Version] The Swift version specified by the specification.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 42
def swift_version
  swift_versions.last
end
swift_versions() click to toggle source

@return [Array<Version>] The Swift versions supported by the specification.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 48
def swift_versions
  @swift_versions ||= begin
    swift_versions = Array(attributes_hash['swift_versions']).dup
    # Pre 1.7.0, the DSL was singularized as it supported only a single version of Swift. In 1.7.0 the DSL
    # is now pluralized always and a specification can support multiple versions of Swift. This ensures
    # we parse the old JSON serialized format and include it as part of the Swift versions supported.
    swift_versions << attributes_hash['swift_version'] unless attributes_hash['swift_version'].nil?
    swift_versions.map { |swift_version| Version.new(swift_version) }.uniq.sort
  end
end
version() click to toggle source

@return [Version] The version of the Pod.

# File lib/cocoapods-core/specification/root_attribute_accessors.rb, line 30
def version
  if root?
    @version ||= Version.new(attributes_hash['version'])
  else
    @version ||= root.version
  end
end