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.



171
172
173
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 171

def creation_date
  statistics_provider.creation_date(@set)
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.



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

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.



189
190
191
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 189

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.



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

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.



154
155
156
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 154

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.



141
142
143
144
145
146
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 141

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.



128
129
130
131
132
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 128

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.



160
161
162
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 160

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