Module: Pod::Specification::DSL::RootAttributesAccessors

Defined in:
lib/cocoapods-core/specification/root_attribute_accessors.rb

Overview

Provides the accessors methods for the root attributes. Root attributes do not support multiplatform values and inheritance.

Instance Method Summary collapse

Instance Method Details

#authorsHash

Note:

The value is coherced to a hash with a nil email if needed.

Returns a hash containing the authors as the keys and their email address as the values.

Examples:

Possible values


{ 'Author' => '[email protected]' }
[ 'Author', { 'Author_2' => '[email protected]' } ]
[ 'Author', 'Author_2' ]
'Author'

Returns:

  • (Hash)

    a hash containing the authors as the keys and their email address as the values.



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/cocoapods-core/specification/root_attribute_accessors.rb', line 47

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_nameString

Returns The name of the specification not including the names of the parents, in case of ‘sub-specifications’.

Returns:

  • (String)

    The name of the specification not including the names of the parents, in case of ‘sub-specifications’.



13
14
15
# File 'lib/cocoapods-core/specification/root_attribute_accessors.rb', line 13

def base_name
  attributes_hash["name"]
end

#descriptionString

Note:

The indentation is stripped from the description.

Returns A longer description of the Pod.

Returns:

  • (String)

    A longer description of the Pod.



106
107
108
109
# File 'lib/cocoapods-core/specification/root_attribute_accessors.rb', line 106

def description
  description = attributes_hash["description"]
  description.strip_heredoc if description
end

#documentationHash{Symbol=>Array<String>}

Returns The options to pass to the appledoc tool.

Returns:

  • (Hash{Symbol=>Array<String>})

    The options to pass to the appledoc tool.



124
125
126
# File 'lib/cocoapods-core/specification/root_attribute_accessors.rb', line 124

def documentation
  convert_keys_to_symbol(attributes_hash["documentation"])
end

#homepageString

Returns The URL of the homepage of the Pod.

Returns:

  • (String)

    The URL of the homepage of the Pod.



85
86
87
# File 'lib/cocoapods-core/specification/root_attribute_accessors.rb', line 85

def homepage
  attributes_hash["homepage"]
end

#licenseHash

Note:

The indentation is stripped from the license text.

Returns A hash containing the license information of the Pod.

Returns:

  • (Hash)

    A hash containing the license information of the Pod.



70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/cocoapods-core/specification/root_attribute_accessors.rb', line 70

def license
  license = attributes_hash["license"]
  if license.is_a?(String)
    { :type => license }
  elsif license.is_a?(Hash)
    license = convert_keys_to_symbol(license)
    license[:text] = license[:text].strip_heredoc if license[:text]
    license
  else
    {}
  end
end

#nameString

Returns The name of the specification including the names of the parents, in case of ‘sub-specifications’.

Returns:

  • (String)

    The name of the specification including the names of the parents, in case of ‘sub-specifications’.



20
21
22
# File 'lib/cocoapods-core/specification/root_attribute_accessors.rb', line 20

def name
  parent ? "#{parent.name}/#{base_name}" : base_name
end

#screenshotsArray<String>

Note:

The value is coherced to an array.

Returns The list of the URL for the screenshots of the Pod.

Returns:

  • (Array<String>)

    The list of the URL for the screenshots of the Pod.



116
117
118
119
# File 'lib/cocoapods-core/specification/root_attribute_accessors.rb', line 116

def screenshots
  value = attributes_hash["screenshots"]
  [*value]
end

#sourceHash{Symbol=>String}

Returns The location from where the library should be retrieved.

Returns:

  • (Hash{Symbol=>String})

    The location from where the library should be retrieved.



92
93
94
# File 'lib/cocoapods-core/specification/root_attribute_accessors.rb', line 92

def source
  convert_keys_to_symbol(attributes_hash["source"])
end

#summaryString

Returns A short description of the Pod.

Returns:

  • (String)

    A short description of the Pod.



98
99
100
# File 'lib/cocoapods-core/specification/root_attribute_accessors.rb', line 98

def summary
  attributes_hash["summary"]
end

#versionVersion

TODO:

The version is memoized because the Resolvers sets the head state on it. This information should be stored in the specification instance and the lockfile should have a more robust handling of head versions (like a dedicated section).

Returns The version of the Pod.

Returns:

  • (Version)

    The version of the Pod.



31
32
33
# File 'lib/cocoapods-core/specification/root_attribute_accessors.rb', line 31

def version
   @version ||= root? ? Version.new(attributes_hash["version"]) : root.version
end