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

Private Helpers collapse

Instance Method Summary collapse

Constructor Details

#initialize(set) ⇒ Presenter



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

def initialize(set)
  @set = set
end

Instance Attribute Details

#setSet (readonly)



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

def set
  @set
end

Instance Method Details

#authorsString

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

Examples:

Output example


"Author 1, Author 2 and Author 3"


88
89
90
91
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 88

def authors
  return '' unless spec.authors
  spec.authors.keys.to_sentence
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]"


122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 122

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

    description
  end
end

#descriptionString



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

def description
  spec.description || spec.summary
end

#github_forksInteger



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

def github_forks
  github_metrics['forks']
end

#github_metricsObject



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

def github_metrics
  metrics['github'] || {}
end

#github_stargazersInteger



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

def github_stargazers
  github_metrics['stargazers']
end

#homepageString



95
96
97
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 95

def homepage
  spec.homepage
end

#licenseString

Returns the type of the license of the Pod.

Examples:


"MIT"


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

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

#metricsObject



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

def metrics
  @metrics ||= Metrics.pod(name) || {}
end

#nameString



26
27
28
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 26

def name
  @set.name
end

#platformString

Returns the platforms supported by the Pod.

Examples:


"iOS"
"iOS - OS X"


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

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



137
138
139
140
141
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 137

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>



65
66
67
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 65

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

#specSpecification



77
78
79
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 77

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

#subspecsArray



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

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

#summaryString



102
103
104
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 102

def summary
  spec.summary
end

#versionVersion



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

def version
  @set.versions.first
end

#versionsArray<Version>



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

def versions
  @set.versions
end

#versions_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]"


52
53
54
55
56
57
58
59
60
# File 'lib/cocoapods-core/specification/set/presenter.rb', line 52

def versions_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