Class: Pod::Specification::Set::Presenter
- Inherits:
-
Object
- Object
- Pod::Specification::Set::Presenter
- 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 ⇒ Set
readonly
The set that should be presented.
-
#statistics_provider ⇒ Statistics
readonly
The statistics provider.
Set Information collapse
-
#name ⇒ String
The name of the Pod.
-
#sources ⇒ Array<String>
The name of the sources that contain the Pod sorted alphabetically.
-
#verions_by_source ⇒ String
All the versions available sorted from the highest to the lowest.
-
#version ⇒ Version
The highest version of available for the Pod.
-
#versions ⇒ Array<Version>
All the versions available ascending order.
Specification Information collapse
-
#authors ⇒ String
The list of the authors of the Pod in sentence format.
-
#deprecation_description ⇒ String
A string that describes the deprecation of the pod.
-
#description ⇒ String
The description of the Pod, if no description is available the summary is returned.
-
#homepage ⇒ String
The homepage of the pod.
-
#license ⇒ String
The type of the license of the Pod.
-
#platform ⇒ String
The platforms supported by the Pod.
-
#source_url ⇒ String
The URL of the source of the Pod.
-
#spec ⇒ Specification
The specification of the Pod::Specification::Set.
-
#subspecs ⇒ Array
An array containing all the subspecs of the Pod.
-
#summary ⇒ String
A short description, expected to be 140 characters long of the Pod.
Statistics collapse
-
#creation_date ⇒ Time
The creation date of the first known ‘podspec` of the Pod.
-
#github_forks ⇒ Integer
The GitHub forks of the repo of the Pod.
-
#github_last_activity ⇒ String
The relative time of the last push of the repo the Pod.
-
#github_watchers ⇒ Integer
The GitHub likes of the repo of the Pod.
Instance Method Summary collapse
-
#initialize(set, statistics_provider = nil) ⇒ Presenter
constructor
A new instance of Presenter.
Constructor Details
#initialize(set, statistics_provider = nil) ⇒ Presenter
Returns a new instance of Presenter.
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
#set ⇒ Set (readonly)
Returns the set that should be presented.
12 13 14 |
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 12 def set @set end |
#statistics_provider ⇒ Statistics (readonly)
Returns The statistics provider.
16 17 18 |
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 16 def statistics_provider @statistics_provider end |
Instance Method Details
#authors ⇒ String
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.
97 98 99 100 101 102 103 104 |
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 97 def return '' unless spec. if RUBY_VERSION == '1.8.7' spec..keys.sort.to_sentence else spec..keys.to_sentence end end |
#creation_date ⇒ Time
Returns 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_description ⇒ String
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.
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 |
#description ⇒ String
Returns 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_forks ⇒ Integer
Returns 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_activity ⇒ String
Returns 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_watchers ⇒ Integer
Returns 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 |
#homepage ⇒ String
Returns the homepage of the pod.
108 109 110 |
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 108 def homepage spec.homepage end |
#license ⇒ String
Returns 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 |
#name ⇒ String
Returns the name of the Pod.
31 32 33 |
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 31 def name @set.name end |
#platform ⇒ String
Returns 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_url ⇒ String
Returns 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 |
#sources ⇒ Array<String>
Returns 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 |
#spec ⇒ Specification
Returns the specification of the Pod::Specification::Set. If no versions requirements where passed to the set it returns the highest available version.
82 83 84 |
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 82 def spec @spec ||= @set.specification end |
#subspecs ⇒ Array
Returns 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 |
#summary ⇒ String
Returns 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_source ⇒ String
This method orders the sources by name.
Returns 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 |
#version ⇒ Version
Returns 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 |
#versions ⇒ Array<Version>
Returns all the versions available ascending order.
44 45 46 |
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 44 def versions @set.versions end |