Class: Pod::Specification::Set::Presenter

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods-core/specification/set/presenter.rb

Overview

Provides support for presenting a Pod described by a Pod::Specification::Set in a consistent way across clients of CocoaPods-Core.

Instance Attribute Summary collapse

Set Information collapse

Specification Information collapse

Statistics collapse

Instance Method Summary collapse

Constructor Details

#initialize(set, statistics_provider = nil) ⇒ Presenter

Returns a new instance of Presenter.

Parameters:

  • set (Set)

    @see #set.



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

def initialize(set, statistics_provider = nil)
  @set = set
  @statistics_provider = statistics_provider || Statistics.instance
end

Instance Attribute Details

#setSet (readonly)

Returns the set that should be presented.

Returns:

  • (Set)

    the set that should be presented.



12
13
14
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 12

def set
  @set
end

#statistics_providerStatistics (readonly)

Returns The statistics provider.

Returns:



16
17
18
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 16

def statistics_provider
  @statistics_provider
end

Instance Method Details

#authorsString

Note:

In ruby 1.8.7 the authors are sorted by name because the hash doesn’t preserve the order in which they are defined in the podspec.

Returns the list of the authors of the Pod in sentence format.

Examples:

Output example


"Author 1, Author 2 and Author 3"

Returns:

  • (String)

    the list of the authors of the Pod in sentence format.



97
98
99
100
101
102
103
104
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 97

def authors
  return '' unless spec.authors
  if RUBY_VERSION == '1.8.7'
    spec.authors.keys.sort.to_sentence
  else
    spec.authors.keys.to_sentence
  end
end

#creation_dateTime

Returns the creation date of the first known ‘podspec` of the Pod.

Returns:

  • (Time)

    the creation date of the first known ‘podspec` of the Pod.



193
194
195
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 193

def creation_date
  statistics_provider.creation_date(@set)
end

#deprecation_descriptionString

Returns A string that describes the deprecation of the pod. If the pod is deprecated in favor of another pod it will contain information about that. If the pod is not deprecated returns nil.

Examples:

Output example


"[DEPRECATED]"
"[DEPRECATED in favor of NewAwesomePod]"

Returns:

  • (String)

    A string that describes the deprecation of the pod. If the pod is deprecated in favor of another pod it will contain information about that. If the pod is not deprecated returns nil.



135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 135

def deprecation_description
  if spec.deprecated?
    description = '[DEPRECATED'
    if spec.deprecated_in_favor_of.nil?
      description += ']'
    else
      description += " in favor of #{spec.deprecated_in_favor_of}]"
    end

    description
  end
end

#descriptionString

Returns the description of the Pod, if no description is available the summary is returned.

Returns:

  • (String)

    the description of the Pod, if no description is available the summary is returned.



122
123
124
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 122

def description
  spec.description || spec.summary
end

#github_forksInteger

Returns the GitHub forks of the repo of the Pod.

Returns:

  • (Integer)

    the GitHub forks of the repo of the Pod.



205
206
207
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 205

def github_forks
  statistics_provider.github_forks(@set)
end

#github_last_activityString

Returns the relative time of the last push of the repo the Pod.

Returns:

  • (String)

    the relative time of the last push of the repo the Pod.



211
212
213
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 211

def github_last_activity
  distance_from_now_in_words(statistics_provider.github_pushed_at(@set))
end

#github_watchersInteger

Returns the GitHub likes of the repo of the Pod.

Returns:

  • (Integer)

    the GitHub likes of the repo of the Pod.



199
200
201
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 199

def github_watchers
  statistics_provider.github_watchers(@set)
end

#homepageString

Returns the homepage of the pod.

Returns:

  • (String)

    the homepage of the pod.



108
109
110
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 108

def homepage
  spec.homepage
end

#licenseString

Returns the type of the license of the Pod.

Examples:


"MIT"

Returns:

  • (String)

    the type of the license of the Pod.



176
177
178
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 176

def license
  spec.license[:type] if spec.license
end

#nameString

Returns the name of the Pod.

Returns:

  • (String)

    the name of the Pod.



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

def name
  @set.name
end

#platformString

Returns the platforms supported by the Pod.

Examples:


"iOS"
"iOS - OS X"

Returns:

  • (String)

    the platforms supported by the Pod.



163
164
165
166
167
168
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 163

def platform
  sorted_platforms = spec.available_platforms.sort do |a, b|
    a.to_s.downcase <=> b.to_s.downcase
  end
  sorted_platforms.join(' - ')
end

#source_urlString

Returns the URL of the source of the Pod.

Returns:

  • (String)

    the URL of the source of the Pod.



150
151
152
153
154
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 150

def source_url
  url_keys = [:git, :svn, :http, :hg, :path]
  key = spec.source.keys.find { |k| url_keys.include?(k) }
  key ? spec.source[key] : 'No source url'
end

#sourcesArray<String>

Returns The name of the sources that contain the Pod sorted alphabetically.

Returns:

  • (Array<String>)

    The name of the sources that contain the Pod sorted alphabetically.



70
71
72
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 70

def sources
  @set.sources.map(&:name).sort
end

#specSpecification

Returns the specification of the Pod::Specification::Set. If no versions requirements where passed to the set it returns the highest available version.

Returns:



82
83
84
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 82

def spec
  @spec ||= @set.specification
end

#subspecsArray

Returns an array containing all the subspecs of the Pod.

Returns:

  • (Array)

    an array containing all the subspecs of the Pod.



182
183
184
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 182

def subspecs
  (spec.recursive_subspecs.any? && spec.recursive_subspecs) || nil
end

#summaryString

Returns a short description, expected to be 140 characters long of the Pod.

Returns:

  • (String)

    a short description, expected to be 140 characters long of the Pod.



115
116
117
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 115

def summary
  spec.summary
end

#verions_by_sourceString

Note:

This method orders the sources by name.

Returns all the versions available sorted from the highest to the lowest.

Examples:

Return example


"1.5pre, 1.4 [master repo] - 1.4 [test_repo repo]"

Returns:

  • (String)

    all the versions available sorted from the highest to the lowest.



57
58
59
60
61
62
63
64
65
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 57

def verions_by_source
  result = []
  versions_by_source = @set.versions_by_source
  @set.sources.sort.each do |source|
    versions = versions_by_source[source]
    result << "#{versions.map(&:to_s) * ', '} [#{source.name} repo]"
  end
  result * ' - '
end

#versionVersion

Returns the highest version of available for the Pod.

Returns:

  • (Version)

    the highest version of available for the Pod.



37
38
39
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 37

def version
  @set.versions.first
end

#versionsArray<Version>

Returns all the versions available ascending order.

Returns:

  • (Array<Version>)

    all the versions available ascending order.



44
45
46
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 44

def versions
  @set.versions
end