cocoapods 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,34 @@
1
+ ## 0.7.0 (unreleased)
2
+
3
+ [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.6.1...develop) | [XcodeProj](https://github.com/CocoaPods/XcodeProj/compare/0.2.1...develop)
4
+
5
+ ###### Features
6
+
7
+ - Added support for branches in git repos.
8
+ - Added support for linting remote files, i.e. `pod spec lint http://raw/file.podspec`.
9
+ - Improved `Spec create template`
10
+ - The indentation is automatically stripped for podspecs strings.
11
+
12
+ ###### Bug fixes
13
+
14
+ - The default warnings of Xcode are not overriden anymore.
15
+ - Improvements to the detection of the license files.
16
+ - Improvements to `pod spec lint`.
17
+ - CocoaPods is now case insensitive.
18
+
19
+
20
+ ## 0.6.1
21
+
22
+ [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.6.0...0.6.1) | [XcodeProj](https://github.com/CocoaPods/XcodeProj/compare/0.2.0...0.2.1)
23
+
24
+ ###### Bug fixes
25
+
26
+ - Switched to master branch for specs repo.
27
+ - Fixed a crash with `pod spec lint` related to `preserve_paths`.
28
+ - Fixed a bug that caused subspecs to not inherit the compiler flags of the top level specification.
29
+ - Fixed a bug that caused duplication of system framworks.
30
+
31
+
1
32
  ## 0.6.0
2
33
 
3
34
  A full list of all the changes since 0.5.1 can be found [here][6].
@@ -1,5 +1,5 @@
1
1
  module Pod
2
- VERSION = '0.6.1'
2
+ VERSION = '0.7.0'
3
3
 
4
4
  class PlainInformative < StandardError
5
5
  end
@@ -6,11 +6,11 @@ module Pod
6
6
  def self.banner
7
7
  %{Pushing new specifications to a spec-repo:
8
8
 
9
- $ pod push [REPO]
9
+ $ pod push REPO [NAME.podspec]
10
10
 
11
- Validates `*.podspec' in the current working dir, updates
12
- the local copy of the repository named REPO, adds specifications
13
- to REPO, and finally it pushes REPO to its remote.}
11
+ Validates NAME.podspec or `*.podspec' in the current working dir, updates
12
+ the local copy of the repository named REPO, adds the specifications
13
+ to the REPO, and finally it pushes REPO to its remote.}
14
14
  end
15
15
 
16
16
  def self.options
@@ -23,6 +23,7 @@ module Pod
23
23
  def initialize(argv)
24
24
  @allow_warnings = argv.option('--allow-warnings')
25
25
  @repo = argv.shift_argument
26
+ @podspec = argv.shift_argument
26
27
  super unless argv.empty? && @repo
27
28
  end
28
29
 
@@ -61,7 +62,7 @@ module Pod
61
62
  end
62
63
 
63
64
  def podspec_files
64
- files = Pathname.glob("*.podspec")
65
+ files = Pathname.glob(@podspec || "*.podspec")
65
66
  raise Informative, "[!] Couldn't find .podspec file in current directory".red if files.empty?
66
67
  files
67
68
  end
@@ -71,8 +72,10 @@ module Pod
71
72
  lint_argv = ["lint"]
72
73
  lint_argv << "--only-errors" if @allow_warnings
73
74
  lint_argv << "--silent" if config.silent
74
- lint_argv += podspec_files.map(&:to_s)
75
- all_valid = Spec.new(ARGV.new(lint_argv)).run
75
+ all_valid = true
76
+ podspec_files.each do |podspec|
77
+ Spec.new(ARGV.new(lint_argv + [podspec.to_s])).run
78
+ end
76
79
  end
77
80
 
78
81
  def add_specs_to_repo
@@ -11,7 +11,7 @@ module Pod
11
11
  Creates a PodSpec, in the current working dir, called `NAME.podspec'.
12
12
  If a GitHub url is passed the spec is prepopulated.
13
13
 
14
- $ pod spec lint [ NAME.podspec | DIRECTORY ]
14
+ $ pod spec lint [ NAME.podspec | DIRECTORY | http://PATH/NAME.podspec ]
15
15
 
16
16
  Validates `NAME.podspec'. If a directory is provided it performs a quick
17
17
  validation on all the podspec files found, including subfolders. In case
@@ -80,6 +80,7 @@ module Pod
80
80
  else
81
81
  raise Informative, count == 1 ? "The spec did not pass validation." : "#{invalid_count} out of #{count} specs failed validation."
82
82
  end
83
+ podspecs_tmp_dir.rmtree if podspecs_tmp_dir.exist?
83
84
  end
84
85
 
85
86
  private
@@ -130,6 +131,16 @@ module Pod
130
131
 
131
132
  def podspecs_to_lint
132
133
  @podspecs_to_lint ||= begin
134
+ if @repo_or_podspec =~ /https?:\/\//
135
+ require 'open-uri'
136
+ output_path = podspecs_tmp_dir + File.basename(@repo_or_podspec)
137
+ output_path.dirname.mkpath
138
+ open(@repo_or_podspec) do |io|
139
+ output_path.open('w') { |f| f << io.read }
140
+ end
141
+ return [output_path]
142
+ end
143
+
133
144
  path = Pathname.new(@repo_or_podspec || '.')
134
145
  if path.directory?
135
146
  files = path.glob('**/*.podspec')
@@ -143,6 +154,10 @@ module Pod
143
154
  end
144
155
  end
145
156
 
157
+ def podspecs_tmp_dir
158
+ Pathname.new('/tmp/CocoaPods/Lint_podspec')
159
+ end
160
+
146
161
  def specs_to_lint
147
162
  @specs_to_lint ||= begin
148
163
  podspecs_to_lint.map do |podspec|
@@ -222,7 +237,7 @@ module Pod
222
237
  install_pod
223
238
  puts "Building with xcodebuild.\n".yellow if config.verbose?
224
239
  # treat xcodebuild warnings as notes because the spec maintainer might not be the author of the library
225
- xcodebuild_output.each { |msg| ( msg.include?('error') ? @platform_errors[@platform] : @platform_notes[@platform] ) << msg }
240
+ xcodebuild_output.each { |msg| ( msg.include?('error: ') ? @platform_errors[@platform] : @platform_notes[@platform] ) << msg }
226
241
  @platform_errors[@platform] += file_patterns_errors
227
242
  @platform_warnings[@platform] += file_patterns_warnings
228
243
  tear_down_lint_environment
@@ -329,6 +344,7 @@ module Pod
329
344
  messages = []
330
345
  messages << "Missing license type" unless license[:type]
331
346
  messages << "Sample license type" if license[:type] && license[:type] =~ /\(example\)/
347
+ messages << "Invalid license type" if license[:type] && license[:type] =~ /\n/
332
348
  messages << "The summary is not meaningful" if spec.summary =~ /A short description of/
333
349
  messages << "The description is not meaningful" if spec.description && spec.description =~ /An optional longer description of/
334
350
  messages << "The summary should end with a dot" if @spec.summary !~ /.*\./
@@ -383,9 +399,9 @@ module Pod
383
399
  def process_xcode_build_output(output)
384
400
  output_by_line = output.split("\n")
385
401
  selected_lines = output_by_line.select do |l|
386
- l.include?('error:') && (l !~ /errors? generated\./) \
387
- || l.include?('warning:') && (l !~ /warnings? generated\./)\
388
- || l.include?('note:')
402
+ l.include?('error: ') && (l !~ /errors? generated\./) \
403
+ || l.include?('warning: ') && (l !~ /warnings? generated\./)\
404
+ || l.include?('note: ') && (l !~ /expanded from macro/)
389
405
  end
390
406
  selected_lines.map do |l|
391
407
  new = l.gsub(/\/tmp\/CocoaPods\/Lint\/Pods\//,'') # Remove the unnecessary tmp path
@@ -404,14 +420,16 @@ module Pod
404
420
  messages = []
405
421
  messages << "The sources did not match any file" if !@spec.source_files.empty? && @pod.source_files.empty?
406
422
  messages << "The resources did not match any file" if !@spec.resources.empty? && @pod.resource_files.empty?
407
- messages << "The preserve_paths did not match any file" if !@spec.preserve_paths.empty? && @pod.preserve_paths.empty?
423
+ messages << "The preserve_paths did not match any file" if !@spec.preserve_paths.empty? && @pod.preserve_files.empty?
408
424
  messages << "The exclude_header_search_paths did not match any file" if !@spec.exclude_header_search_paths.empty? && @pod.headers_excluded_from_search_paths.empty?
409
425
  messages
410
426
  end
411
427
 
412
428
  def file_patterns_warnings
413
429
  messages = []
414
- messages << "Unable to find a license file" unless @pod.license_file
430
+ unless @pod.license_file || @spec.license && ( @spec.license[:type] == 'Public Domain' || @spec.license[:text] )
431
+ messages << "Unable to find a license file"
432
+ end
415
433
  messages
416
434
  end
417
435
  end
@@ -483,15 +501,32 @@ Pod::Spec.new do |s|
483
501
  s.name = "#{data[:name]}"
484
502
  s.version = "#{data[:version]}"
485
503
  s.summary = "#{data[:summary]}"
486
- # s.description = 'An optional longer description of #{data[:name]}.'
504
+ # s.description = <<-DESC
505
+ # An optional longer description of #{data[:name]}
506
+ #
507
+ # * Markdonw format.
508
+ # * Don't worry about the indent, we strip it!
509
+ # DESC
487
510
  s.homepage = "#{data[:homepage]}"
488
511
 
489
512
  # Specify the license type. CocoaPods detects automatically the license file if it is named
490
- # `LICENSE*', however if the name is different, specify it.
513
+ # `LICENSE*.*', however if the name is different, specify it.
514
+ s.license = 'MIT (example)'
515
+ # s.license = { :type => 'MIT (example)', :file => 'FILE_LICENSE' }
516
+ #
491
517
  # Only if no dedicated file is available include the full text of the license.
492
518
  #
493
- s.license = 'MIT (example)'
494
- # s.license = { :type => 'MIT', :file => 'LICENSE', :text => 'Permission is hereby granted ...' }
519
+ # s.license = {
520
+ # :type => 'MIT (example)',
521
+ # :text => <<-LICENSE
522
+ # Copyright (C) <year> <copyright holders>
523
+
524
+ # All rights reserved.
525
+
526
+ # Redistribution and use in source and binary forms, with or without
527
+ # ...
528
+ # LICENSE
529
+ # }
495
530
 
496
531
  # Specify the authors of the library, with email addresses. You can often find
497
532
  # the email addresses of the authors by using the SCM log. E.g. $ git log
@@ -543,9 +578,10 @@ Pod::Spec.new do |s|
543
578
 
544
579
  # A list of paths to preserve after installing the Pod.
545
580
  # CocoaPods cleans by default any file that is not used.
581
+ # Please don't include documentation, example, and test files.
546
582
  # Also allows the use of the FileList class like `source_files does.
547
583
  #
548
- # s.preserve_paths = "examples", "doc"
584
+ # s.preserve_paths = "FilesToSave", "MoreFilesToSave"
549
585
 
550
586
  # Specify a list of frameworks that the application needs to link
551
587
  # against for this Pod to work.
@@ -159,6 +159,7 @@ module Pod
159
159
  def description
160
160
  "from `#{@params[:git]}'".tap do |description|
161
161
  description << ", commit `#{@params[:commit]}'" if @params[:commit]
162
+ description << ", branch `#{@params[:branch]}'" if @params[:branch]
162
163
  description << ", tag `#{@params[:tag]}'" if @params[:tag]
163
164
  end
164
165
  end
@@ -16,6 +16,8 @@ module Pod
16
16
  puts '-> Cloning git repo' if config.verbose?
17
17
  if options[:tag]
18
18
  download_tag
19
+ elsif options[:branch]
20
+ download_branch
19
21
  elsif options[:commit]
20
22
  download_commit
21
23
  else
@@ -89,6 +91,13 @@ module Pod
89
91
  raise Informative, "[!] Cache unable to find git reference `#{ref}' for `#{url}'.".red unless ref_exists?(ref)
90
92
  end
91
93
 
94
+ def ensure_remote_branch_exists(branch)
95
+ Dir.chdir(cache_path) { git "branch -r | grep #{branch}$" } # check for remote branch and do suffix matching ($ anchor)
96
+ return if $? == 0
97
+
98
+ raise Informative, "[!] Cache unable to find git reference `#{branch}' for `#{url}' (#{$?}).".red
99
+ end
100
+
92
101
  def download_head
93
102
  update_cache
94
103
  git "clone '#{clone_url}' '#{target_path}'"
@@ -112,6 +121,17 @@ module Pod
112
121
  git "checkout -b activated-pod-commit #{options[:commit]}"
113
122
  end
114
123
  end
124
+
125
+ def download_branch
126
+ ensure_remote_branch_exists(options[:branch])
127
+ git "clone '#{clone_url}' '#{target_path}'"
128
+ Dir.chdir(target_path) do
129
+ git "remote add upstream #{@url}" # we need to add the original url, not the cache url
130
+ git "fetch -q upstream" # refresh the branches
131
+ git "checkout --track -b activated-pod-commit upstream/#{options[:branch]}" # create a new tracking branch
132
+ puts "Just downloaded and checked out branch: #{options[:branch]} from upstream #{clone_url}" if config.verbose?
133
+ end
134
+ end
115
135
  end
116
136
 
117
137
  class GitHub < Git
@@ -127,8 +147,12 @@ module Pod
127
147
  download_only? ? download_and_extract_tarball(options[:commit]) : super
128
148
  end
129
149
 
150
+ def download_branch
151
+ download_only? ? download_and_extract_tarball(options[:branch]) : super
152
+ end
153
+
130
154
  def tarball_url_for(id)
131
- original_url, username, reponame = *(url.match(/[:\/]([\w\-]+)\/([\w\-]+)\.git/).to_a)
155
+ original_url, username, reponame = *(url.match(/[:\/]([\w\-]+)\/([\w\-]+)\.git/))
132
156
  "https://github.com/#{username}/#{reponame}/tarball/#{id}"
133
157
  end
134
158
 
@@ -58,11 +58,11 @@ module Pod
58
58
  def extract_with_type(full_filename, type=:zip)
59
59
  case type
60
60
  when :zip
61
- unzip "'#{full_filename}' -d #{target_path}"
61
+ unzip "'#{full_filename}' -d '#{target_path}'"
62
62
  when :tgz
63
- tar "xfz '#{full_filename}' -C #{target_path}"
63
+ tar "xfz '#{full_filename}' -C '#{target_path}'"
64
64
  when :tar
65
- tar "xf '#{full_filename}' -C #{target_path}"
65
+ tar "xf '#{full_filename}' -C '#{target_path}'"
66
66
  else
67
67
  raise UnsupportedFileTypeError.new "Unsupported file type: #{type}"
68
68
  end
@@ -255,7 +255,7 @@ module Pod
255
255
  # file.
256
256
  #
257
257
  def readme_file
258
- expanded_paths(%w[ README{*,.*} readme{*,.*} ]).first
258
+ expanded_paths(%w[ readme{*,.*} ]).first
259
259
  end
260
260
 
261
261
  # @return [Pathname] The absolute path of the license file from the
@@ -265,7 +265,7 @@ module Pod
265
265
  if top_specification.license && top_specification.license[:file]
266
266
  root + top_specification.license[:file]
267
267
  else
268
- expanded_paths(%w[ LICENSE{*,.*} licence{*,.*} ]).first
268
+ expanded_paths(%w[ licen{c,s}e{*,.*} ]).first
269
269
  end
270
270
  end
271
271
 
@@ -305,7 +305,7 @@ module Pod
305
305
 
306
306
  all_specs = [ top_specification ] + top_specification.subspecs
307
307
  options = {:glob => '*.{h}'}
308
- files = paths_by_spec(:source_files, options, all_specs).values.flatten!
308
+ files = paths_by_spec(:source_files, options, all_specs).values.flatten
309
309
  headers = files.select { |f| f.extname == '.h' }
310
310
  headers
311
311
  end
@@ -450,7 +450,7 @@ module Pod
450
450
  if pattern.directory? && options[:glob]
451
451
  pattern += options[:glob]
452
452
  end
453
- pattern.glob
453
+ Pathname.glob(pattern, File::FNM_CASEFOLD)
454
454
  end.flatten
455
455
  end
456
456
  end
@@ -1,4 +1,5 @@
1
1
  require 'xcodeproj/config'
2
+ require 'active_support/core_ext/string/strip.rb'
2
3
 
3
4
  module Pod
4
5
  extend Config::Mixin
@@ -189,23 +190,41 @@ module Pod
189
190
  top_attr_accessor :summary
190
191
  top_attr_accessor :documentation
191
192
  top_attr_accessor :requires_arc
192
- top_attr_accessor :license, lambda { |l| ( l.kind_of? String ) ? { :type => l } : l }
193
193
  top_attr_accessor :version, lambda { |v| Version.new(v) }
194
- top_attr_accessor :authors, lambda { |a| parse_authors(a) }
195
194
 
196
- top_attr_reader :description, lambda {|instance, ivar| ivar || instance.summary }
197
- top_attr_writer :description
195
+ top_attr_reader :description, lambda { |instance, ivar| ivar || instance.summary }
196
+ top_attr_writer :description, lambda { |d| d.strip_heredoc }
198
197
 
199
- alias_method :author=, :authors=
198
+ # @!method license
199
+ #
200
+ # @abstract
201
+ # The license of the pod.
202
+ #
203
+ # @example
204
+ # s.license = 'MIT'
205
+ # s.license = { :type => 'MIT', :file => 'license.txt', :text => 'Permission is granted to...' }
206
+ #
207
+ top_attr_accessor :license, lambda { |license|
208
+ license = ( license.kind_of? String ) ? { :type => license } : license
209
+ license[:text] = license[:text].strip_heredoc if license[:text]
210
+ license
211
+ }
200
212
 
201
- def self.parse_authors(*names_and_email_addresses)
213
+ # @!method authors
214
+ #
215
+ # @abstract
216
+ # The list of the authors (with email) of the pod.
217
+ #
218
+ top_attr_accessor :authors, lambda { |*names_and_email_addresses|
202
219
  list = names_and_email_addresses.flatten
203
220
  unless list.first.is_a?(Hash)
204
221
  authors = list.last.is_a?(Hash) ? list.pop : {}
205
222
  list.each { |name| authors[name] = nil }
206
223
  end
207
224
  authors || list.first
208
- end
225
+ }
226
+
227
+ alias_method :author=, :authors=
209
228
 
210
229
  ### Attributes **with** multiple platform support
211
230
 
metadata CHANGED
@@ -1,160 +1,192 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cocoapods
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 6
8
- - 1
9
- version: 0.6.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.7.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Eloy Duran
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2012-07-02 00:00:00 +02:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-07-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: faraday
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ~>
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- - 8
30
- - 1
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
31
21
  version: 0.8.1
32
22
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: octokit
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ~>
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 1
43
- - 7
44
- - 0
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 0.8.1
30
+ - !ruby/object:Gem::Dependency
31
+ name: octokit
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
45
37
  version: 1.7.0
46
38
  type: :runtime
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: colored
50
39
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ~>
54
- - !ruby/object:Gem::Version
55
- segments:
56
- - 1
57
- - 2
58
- version: "1.2"
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.7.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: colored
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '1.2'
59
54
  type: :runtime
60
- version_requirements: *id003
61
- - !ruby/object:Gem::Dependency
62
- name: escape
63
55
  prerelease: false
64
- requirement: &id004 !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- segments:
69
- - 0
70
- - 0
71
- - 4
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.2'
62
+ - !ruby/object:Gem::Dependency
63
+ name: escape
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
72
69
  version: 0.0.4
73
70
  type: :runtime
74
- version_requirements: *id004
75
- - !ruby/object:Gem::Dependency
76
- name: json
77
71
  prerelease: false
78
- requirement: &id005 !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ~>
81
- - !ruby/object:Gem::Version
82
- segments:
83
- - 1
84
- - 7
85
- - 3
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.0.4
78
+ - !ruby/object:Gem::Dependency
79
+ name: json
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
86
85
  version: 1.7.3
87
86
  type: :runtime
88
- version_requirements: *id005
89
- - !ruby/object:Gem::Dependency
90
- name: open4
91
87
  prerelease: false
92
- requirement: &id006 !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ~>
95
- - !ruby/object:Gem::Version
96
- segments:
97
- - 1
98
- - 3
99
- - 0
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.7.3
94
+ - !ruby/object:Gem::Dependency
95
+ name: open4
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
100
101
  version: 1.3.0
101
102
  type: :runtime
102
- version_requirements: *id006
103
- - !ruby/object:Gem::Dependency
104
- name: rake
105
103
  prerelease: false
106
- requirement: &id007 !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ~>
109
- - !ruby/object:Gem::Version
110
- segments:
111
- - 0
112
- - 9
113
- - 0
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.3.0
110
+ - !ruby/object:Gem::Dependency
111
+ name: rake
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
114
117
  version: 0.9.0
115
118
  type: :runtime
116
- version_requirements: *id007
117
- - !ruby/object:Gem::Dependency
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 0.9.0
126
+ - !ruby/object:Gem::Dependency
118
127
  name: xcodeproj
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 0.2.2
134
+ type: :runtime
119
135
  prerelease: false
120
- requirement: &id008 !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ~>
123
- - !ruby/object:Gem::Version
124
- segments:
125
- - 0
126
- - 2
127
- - 1
128
- version: 0.2.1
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 0.2.2
142
+ - !ruby/object:Gem::Dependency
143
+ name: activesupport
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: 3.2.6
129
150
  type: :runtime
130
- version_requirements: *id008
131
- - !ruby/object:Gem::Dependency
132
- name: bacon
133
151
  prerelease: false
134
- requirement: &id009 !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ~>
137
- - !ruby/object:Gem::Version
138
- segments:
139
- - 1
140
- - 1
141
- version: "1.1"
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: 3.2.6
158
+ - !ruby/object:Gem::Dependency
159
+ name: bacon
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: '1.1'
142
166
  type: :development
143
- version_requirements: *id009
144
- description: |-
145
- CocoaPods manages library dependencies for your Xcode project.
146
-
147
- You specify the dependencies for your project in one easy text file. CocoaPods resolves dependencies between libraries, fetches source code for the dependencies, and creates and maintains an Xcode workspace to build your project.
148
-
149
- Ultimately, the goal is to improve discoverability of, and engagement in, third party open-source libraries, by creating a more centralized ecosystem.
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: '1.1'
174
+ description: ! 'CocoaPods manages library dependencies for your Xcode project.
175
+
176
+
177
+ You specify the dependencies for your project in one easy text file. CocoaPods resolves
178
+ dependencies between libraries, fetches source code for the dependencies, and creates
179
+ and maintains an Xcode workspace to build your project.
180
+
181
+
182
+ Ultimately, the goal is to improve discoverability of, and engagement in, third
183
+ party open-source libraries, by creating a more centralized ecosystem.'
150
184
  email: eloy.de.enige@gmail.com
151
- executables:
185
+ executables:
152
186
  - pod
153
187
  extensions: []
154
-
155
188
  extra_rdoc_files: []
156
-
157
- files:
189
+ files:
158
190
  - lib/cocoapods/command/error_report.rb
159
191
  - lib/cocoapods/command/install.rb
160
192
  - lib/cocoapods/command/list.rb
@@ -201,35 +233,33 @@ files:
201
233
  - README.md
202
234
  - LICENSE
203
235
  - CHANGELOG.md
204
- has_rdoc: true
205
236
  homepage: https://github.com/CocoaPods/CocoaPods
206
- licenses:
237
+ licenses:
207
238
  - MIT
208
239
  post_install_message:
209
240
  rdoc_options: []
210
-
211
- require_paths:
241
+ require_paths:
212
242
  - lib
213
- required_ruby_version: !ruby/object:Gem::Requirement
214
- requirements:
215
- - - ">="
216
- - !ruby/object:Gem::Version
217
- segments:
243
+ required_ruby_version: !ruby/object:Gem::Requirement
244
+ none: false
245
+ requirements:
246
+ - - ! '>='
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
249
+ segments:
218
250
  - 0
219
- version: "0"
220
- required_rubygems_version: !ruby/object:Gem::Requirement
221
- requirements:
222
- - - ">="
223
- - !ruby/object:Gem::Version
224
- segments:
225
- - 0
226
- version: "0"
251
+ hash: -3994196354824039548
252
+ required_rubygems_version: !ruby/object:Gem::Requirement
253
+ none: false
254
+ requirements:
255
+ - - ! '>='
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
227
258
  requirements: []
228
-
229
259
  rubyforge_project:
230
- rubygems_version: 1.3.6
260
+ rubygems_version: 1.8.24
231
261
  signing_key:
232
262
  specification_version: 3
233
263
  summary: An Objective-C library package manager.
234
264
  test_files: []
235
-
265
+ has_rdoc: