cocoapods 0.35.0.rc2 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 195891db68a277163d28c78e08b75e0ddfc852bd
4
- data.tar.gz: 8c79a991661ebff9f5b1c363e1234becd3ab78f8
3
+ metadata.gz: ddc8b79f35ff52c1e7bea24f5f20c7f2e1c9008c
4
+ data.tar.gz: 935b3efb59e8d0bfbc7b0e1fcd8b391e2d1dfb54
5
5
  SHA512:
6
- metadata.gz: 29c891e01ead5efc883d6521ef5ea6071d8dc5877fe2a8130f56ce7bce50e0f8d87b7cb1562508eec984457e805c36da25e32dc1eb934e35bee6b268cbb4ba02
7
- data.tar.gz: cf21e26e241ca8060c16be2ecc74e19c6e134803b0a1b141de382f450e593a5cb60597c41fa15a9b83960734e48a9c0ff023ec2e39d36058aecceceedc5f81e9
6
+ metadata.gz: da671838317175baf103a1cc34467b2ee641f8d4fae9ce7a7e7fd59696854bd1023e7b6cd19f9c1695fd25a0d6a0f1944775454ed2c6fcceffcc43715fa569e4
7
+ data.tar.gz: 5b80c94fdee8e54e23989e44fd39f56c24eec9275d81a9dadae523e8388eb544417ad579bf6037ffeb66579fbc07d2d3490965bc043da0598c3f44c829456325
@@ -4,6 +4,74 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
4
4
 
5
5
  To install release candidates run `[sudo] gem install cocoapods --pre`
6
6
 
7
+ ## 0.35.0
8
+
9
+ [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.34.4...0.35.0)
10
+ • [CocoaPods-Core](https://github.com/CocoaPods/Core/compare/0.34.4...0.35.0)
11
+ • [Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.19.4...0.20.2)
12
+ • [cocoapods-downloader](https://github.com/CocoaPods/cocoapods-downloader/compare/0.7.2...0.8.0)
13
+
14
+ ##### Enhancements
15
+
16
+ * Allow the specification of file patterns for the Podspec's `requires_arc`
17
+ attribute.
18
+ [Kyle Fuller](https://github.com/kylef)
19
+ [Samuel Giddins](https://github.com/segiddins)
20
+ [#532](https://github.com/CocoaPods/CocoaPods/issues/532)
21
+
22
+ * From now on, pods installed directly from their repositories will be recorded
23
+ in the `Podfile.lock` file and will be guaranteed to be checked-out using the
24
+ same revision on subsequent installations. Examples of this are when using
25
+ the `:git`, `:svn`, or `:hg` options in your `Podfile`.
26
+ [Samuel Giddins](https://github.com/segiddins)
27
+ [#1058](https://github.com/CocoaPods/CocoaPods/issues/1058)
28
+
29
+ ##### Bug Fixes
30
+
31
+ * Fix an output formatting issue with various commands like `pod search`
32
+ and `pod trunk`.
33
+ [Olivier Halligon](https://github.com/AliSoftware)
34
+ [#2603](https://github.com/CocoaPods/CocoaPods/issues/2603)
35
+
36
+ * Show a helpful error message if the old resolver incorrectly activated a
37
+ pre-release version that now leads to a version conflict.
38
+ [Samuel Giddins](https://github.com/segiddins)
39
+
40
+ * Provides a user friendly message when using `pod spec create` with a
41
+ repository that doesn't yet have any commits.
42
+ [Kyle Fuller](https://github.com/kylef)
43
+ [#2803](https://github.com/CocoaPods/CocoaPods/issues/2803)
44
+
45
+ * Fixes an issue with integrating into projects where there is a slash in the
46
+ build configuration name.
47
+ [Kyle Fuller](https://github.com/kylef)
48
+ [#2767](https://github.com/CocoaPods/CocoaPods/issues/2767)
49
+
50
+ * Pods will use `CLANG_ENABLE_OBJC_ARC = 'YES'` instead of
51
+ `CLANG_ENABLE_OBJC_ARC = 'NO'`. For pods with `requires_arc = false` the
52
+ `-fno-objc-arc` flag will be specified for the all source files.
53
+ [Hugo Tunius](https://github.com/K0nserv)
54
+ [#2262](https://github.com/CocoaPods/CocoaPods/issues/2262)
55
+
56
+ * Fixed an issue that Core Data mapping models where not compiled when
57
+ copying resources to main application bundle.
58
+ [Yan Rabovik](https://github.com/rabovik)
59
+
60
+ ##### Enhancements
61
+
62
+ * `pod search`, `pod spec which`, `pod spec cat` and `pod spec edit`
63
+ now use plain text search by default instead of a regex. Especially
64
+ `pod search UIView+UI` now searches for pods containing exactly `UIView+UI`
65
+ in their name, not trying to interpret the `+` as a regular expression.
66
+ _Note: You can still use a regular expression with the new `--regex` flag that has
67
+ been added to these commands, e.g. `pod search --regex "(NS|UI)Color"`._
68
+ [Olivier Halligon](https://github.com/AliSoftware)
69
+ [Core#188](https://github.com/CocoaPods/Core/issues/188)
70
+
71
+ * Use `--allow-warnings` rather than `--error-only` for pod spec validation
72
+ [Daniel Tomlinson](https://github.com/DanielTomlinson)
73
+ [#2820](https://github.com/CocoaPods/CocoaPods/issues/2820)
74
+
7
75
  ## 0.35.0.rc2
8
76
 
9
77
  ##### Enhancements
data/README.md CHANGED
@@ -28,8 +28,8 @@ Lovingly sponsored by [Fingertips](http://www.fngtps.com),
28
28
 
29
29
  ## Collaborate
30
30
 
31
- All CocoaPods development happens on GitHub, contributions make good karma and
32
- we welcome with joy new contributors.
31
+ All CocoaPods development happens on GitHub. Contributions make for good karma and
32
+ we welcome new contributors with joy.
33
33
 
34
34
  ## Links
35
35
 
@@ -39,7 +39,7 @@ we welcome with joy new contributors.
39
39
  [@CocoaPods](http://twitter.com/CocoaPods) | Follow CocoaPods on Twitter to stay up to date.
40
40
  [Blog](http://blog.cocoapods.org) | The CocoaPods blog.
41
41
  [Mailing List](http://groups.google.com/group/cocoapods) | Feel free to ask any kind of question.
42
- [Documentation](http://docs.cocoapods.org) | Everything you want to know about CocoaPods.
42
+ [Guides](http://guides.cocoapods.org) | Everything you want to know about CocoaPods.
43
43
  [Changelog](https://github.com/CocoaPods/CocoaPods/blob/master/CHANGELOG.md) | See the changes introduced in each CocoaPods version.
44
44
  [New Pods RSS](http://feeds.cocoapods.org/new-pods.rss) | Don't miss any new Pods.
45
45
 
@@ -49,10 +49,10 @@ CocoaPods is composed of the following projects:
49
49
 
50
50
  | Status | Project | Description | Info |
51
51
  | :----- | :------ | :--- | :--- |
52
- | [![Build Status](http://img.shields.io/travis/CocoaPods/CocoaPods/master.svg?style=flat)](http://travis-ci.org/CocoaPods/CocoaPods) | [CocoaPods](https://github.com/CocoaPods/CocoaPods) | The CocoaPods command line tool. | [docs](http://docs.cocoapods.org/cocoapods)
52
+ | [![Build Status](http://img.shields.io/travis/CocoaPods/CocoaPods/master.svg?style=flat)](http://travis-ci.org/CocoaPods/CocoaPods) | [CocoaPods](https://github.com/CocoaPods/CocoaPods) | The CocoaPods command line tool. | [guides](http://guides.cocoapods.org)
53
53
  | [![Build Status](http://img.shields.io/travis/CocoaPods/Core/master.svg?style=flat)](http://travis-ci.org/CocoaPods/Core) | [CocoaPods Core](https://github.com/CocoaPods/Core) | Support for working with specifications and podfiles. | [docs](http://docs.cocoapods.org/cocoapods_core)
54
54
  | [![Build Status](http://img.shields.io/travis/CocoaPods/cocoapods-downloader/master.svg?style=flat)](http://travis-ci.org/CocoaPods/cocoapods-downloader) |[CocoaPods Downloader](https://github.com/CocoaPods/cocoapods-downloader) | Downloaders for various source types. | [docs](http://docs.cocoapods.org/cocoapods_downloader/index.html)
55
55
  | [![Build Status](http://img.shields.io/travis/CocoaPods/Xcodeproj/master.svg?style=flat)](https://travis-ci.org/CocoaPods/Xcodeproj) | [Xcodeproj](https://github.com/CocoaPods/Xcodeproj) | Create and modify Xcode projects from Ruby. | [docs](http://docs.cocoapods.org/xcodeproj/index.html)
56
56
  | [![Build Status](http://img.shields.io/travis/CocoaPods/CLAide/master.svg?style=flat)](https://travis-ci.org/CocoaPods/CLAide) | [CLAide](https://github.com/CocoaPods/CLAide) | A small command-line interface framework. | [docs](http://docs.cocoapods.org/claide/index.html)
57
+ | [![Build Status](http://img.shields.io/travis/CocoaPods/Molinillo/master.svg?style=flat)](https://travis-ci.org/CocoaPods/Molinillo) | [Molinillo](https://github.com/CocoaPods/Molinillo) | A powerful generic dependency resolver. | [docs](http://www.rubydoc.info/gems/molinillo)
57
58
  | | [Master Repo ](https://github.com/CocoaPods/Specs) | Master repository of specifications. | [guide](http://docs.cocoapods.org/guides/contributing_to_the_master_repo.html)
58
-
data/bin/pod CHANGED
@@ -1,20 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  if Encoding.default_external != Encoding::UTF_8
4
- puts "\e[33mWARNING: CocoaPods requires your terminal to be using UTF-8 encoding."
5
- if ENV['TRAVIS']
6
- puts <<-DOC
7
- Consider adding the following settings to .travis.yml
4
+ puts <<-DOC
5
+ \e[33mWARNING: CocoaPods requires your terminal to be using UTF-8 encoding.
6
+ Consider adding the following to ~/.profile:
8
7
 
9
- before_script:
10
- - export LANG=en_US.UTF-8\e[0m\n
11
- DOC
12
- else
13
- puts <<-DOC
14
- See https://github.com/CocoaPods/guides.cocoapods.org/issues/26 for
15
- possible solutions.\e[0m\n
16
- DOC
17
- end
8
+ export LANG=en_US.UTF-8
9
+ \e[0m
10
+ DOC
18
11
  end
19
12
 
20
13
  if $PROGRAM_NAME == __FILE__ && !ENV['COCOAPODS_NO_BUNDLER']
@@ -58,8 +58,6 @@ module Pod
58
58
  podfile << <<-PLATFORM.strip_heredoc
59
59
  # Uncomment this line to define a global platform for your project
60
60
  # platform :ios, '6.0'
61
-
62
- source '#{Command::Setup.read_only_url}'
63
61
  PLATFORM
64
62
 
65
63
  project.targets.each do |target|
@@ -109,23 +109,23 @@ module Pod
109
109
 
110
110
  def self.options
111
111
  [['--quick', 'Lint skips checks that would require to download and build the spec'],
112
- ['--only-errors', 'Lint validates even if warnings are present'],
112
+ ['--allow-warnings', 'Lint validates even if warnings are present'],
113
113
  ['--subspec=NAME', 'Lint validates only the given subspec'],
114
114
  ['--no-subspecs', 'Lint skips validation of subspecs'],
115
- ['--no-clean', 'Lint leaves the build directory intact for inspection'],
115
+ ['--no-clean', 'Lint leaves the build directory intact for inspection'],
116
116
  ['--sources=https://github.com/artsy/Specs', 'The sources from which to pull dependant pods ' \
117
117
  '(defaults to https://github.com/CocoaPods/Specs.git). '\
118
118
  'Multiple sources must be comma-delimited.']].concat(super)
119
119
  end
120
120
 
121
121
  def initialize(argv)
122
- @quick = argv.flag?('quick')
123
- @only_errors = argv.flag?('only-errors')
124
- @clean = argv.flag?('clean', true)
125
- @subspecs = argv.flag?('subspecs', true)
126
- @only_subspec = argv.option('subspec')
127
- @source_urls = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',')
128
- @podspecs_paths = argv.arguments!
122
+ @quick = argv.flag?('quick')
123
+ @allow_warnings = argv.flag?('allow-warnings')
124
+ @clean = argv.flag?('clean', true)
125
+ @subspecs = argv.flag?('subspecs', true)
126
+ @only_subspec = argv.option('subspec')
127
+ @source_urls = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',')
128
+ @podspecs_paths = argv.arguments!
129
129
  super
130
130
  end
131
131
 
@@ -137,13 +137,13 @@ module Pod
137
137
  UI.puts
138
138
  podspecs_to_lint.each do |podspec|
139
139
 
140
- validator = Validator.new(podspec, @source_urls)
141
- validator.local = true
142
- validator.quick = @quick
143
- validator.no_clean = !@clean
144
- validator.only_errors = @only_errors
145
- validator.no_subspecs = !@subspecs || @only_subspec
146
- validator.only_subspec = @only_subspec
140
+ validator = Validator.new(podspec, @source_urls)
141
+ validator.local = true
142
+ validator.quick = @quick
143
+ validator.no_clean = !@clean
144
+ validator.allow_warnings = @allow_warnings
145
+ validator.no_subspecs = !@subspecs || @only_subspec
146
+ validator.only_subspec = @only_subspec
147
147
  validator.validate
148
148
 
149
149
  unless @clean
@@ -83,7 +83,7 @@ module Pod
83
83
  UI.puts "\nValidating #{'spec'.pluralize(count)}".yellow
84
84
  podspec_files.each do |podspec|
85
85
  validator = Validator.new(podspec, SourcesManager.all.map(&:url))
86
- validator.only_errors = @allow_warnings
86
+ validator.allow_warnings = @allow_warnings
87
87
  begin
88
88
  validator.validate
89
89
  rescue
@@ -15,6 +15,7 @@ module Pod
15
15
 
16
16
  def self.options
17
17
  [
18
+ ['--regex', 'Interpret the `QUERY` as a regular expression'],
18
19
  ['--full', 'Search by name, summary, and description'],
19
20
  ['--stats', 'Show additional stats (like GitHub watchers and forks)'],
20
21
  ['--ios', 'Restricts the search to Pods supported on iOS'],
@@ -24,6 +25,7 @@ module Pod
24
25
  end
25
26
 
26
27
  def initialize(argv)
28
+ @use_regex = argv.flag?('regex')
27
29
  @full_text_search = argv.flag?('full')
28
30
  @stats = argv.flag?('stats')
29
31
  @supported_on_ios = argv.flag?('ios')
@@ -38,7 +40,7 @@ module Pod
38
40
  super
39
41
  help! 'A search query is required.' unless @query
40
42
 
41
- unless @web
43
+ unless @web || !@use_regex
42
44
  begin
43
45
  /#{@query.join(' ').strip}/
44
46
  rescue RegexpError
@@ -71,7 +73,10 @@ module Pod
71
73
  end
72
74
 
73
75
  def local_search
74
- sets = SourcesManager.search_by_name(@query.join(' ').strip, @full_text_search)
76
+ query_regex = @query.join(' ').strip
77
+ query_regex = Regexp.escape(query_regex) unless @use_regex
78
+
79
+ sets = SourcesManager.search_by_name(query_regex, @full_text_search)
75
80
  if @supported_on_ios
76
81
  sets.reject! { |set| !set.specification.available_platforms.map(&:name).include?(:ios) }
77
82
  end
@@ -63,23 +63,23 @@ module Pod
63
63
  ]
64
64
 
65
65
  def self.options
66
- [['--quick', 'Lint skips checks that would require to download and build the spec'],
67
- ['--only-errors', 'Lint validates even if warnings are present'],
66
+ [['--quick', 'Lint skips checks that would require to download and build the spec'],
67
+ ['--allow-warnings', 'Lint validates even if warnings are present'],
68
68
  ['--subspec=NAME', 'Lint validates only the given subspec'],
69
69
  ['--no-subspecs', 'Lint skips validation of subspecs'],
70
- ['--no-clean', 'Lint leaves the build directory intact for inspection'],
70
+ ['--no-clean', 'Lint leaves the build directory intact for inspection'],
71
71
  ['--sources=https://github.com/artsy/Specs', 'The sources from which to pull dependant pods ' \
72
72
  '(defaults to https://github.com/CocoaPods/Specs.git). '\
73
73
  'Multiple sources must be comma-delimited.']].concat(super)
74
74
  end
75
75
 
76
76
  def initialize(argv)
77
- @quick = argv.flag?('quick')
78
- @only_errors = argv.flag?('only-errors')
79
- @clean = argv.flag?('clean', true)
80
- @subspecs = argv.flag?('subspecs', true)
81
- @only_subspec = argv.option('subspec')
82
- @source_urls = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',')
77
+ @quick = argv.flag?('quick')
78
+ @allow_warnings = argv.flag?('allow-warnings')
79
+ @clean = argv.flag?('clean', true)
80
+ @subspecs = argv.flag?('subspecs', true)
81
+ @only_subspec = argv.option('subspec')
82
+ @source_urls = argv.option('sources', 'https://github.com/CocoaPods/Specs.git').split(',')
83
83
  @podspecs_paths = argv.arguments!
84
84
  super
85
85
  end
@@ -88,12 +88,12 @@ module Pod
88
88
  UI.puts
89
89
  invalid_count = 0
90
90
  podspecs_to_lint.each do |podspec|
91
- validator = Validator.new(podspec, @source_urls)
92
- validator.quick = @quick
93
- validator.no_clean = !@clean
94
- validator.only_errors = @only_errors
95
- validator.no_subspecs = !@subspecs || @only_subspec
96
- validator.only_subspec = @only_subspec
91
+ validator = Validator.new(podspec, @source_urls)
92
+ validator.quick = @quick
93
+ validator.no_clean = !@clean
94
+ validator.allow_warnings = @allow_warnings
95
+ validator.no_subspecs = !@subspecs || @only_subspec
96
+ validator.only_subspec = @only_subspec
97
97
  validator.validate
98
98
  invalid_count += 1 unless validator.validated?
99
99
 
@@ -118,29 +118,28 @@ module Pod
118
118
 
119
119
  def podspecs_to_lint
120
120
  @podspecs_to_lint ||= begin
121
- files = []
122
- @podspecs_paths << '.' if @podspecs_paths.empty?
123
- @podspecs_paths.each do |path|
124
- if path =~ /https?:\/\//
125
- require 'open-uri'
126
- output_path = podspecs_tmp_dir + File.basename(path)
127
- output_path.dirname.mkpath
128
- open(path) do |io|
129
- output_path.open('w') { |f| f << io.read }
121
+ files = []
122
+ @podspecs_paths << '.' if @podspecs_paths.empty?
123
+ @podspecs_paths.each do |path|
124
+ if path =~ /https?:\/\//
125
+ require 'open-uri'
126
+ output_path = podspecs_tmp_dir + File.basename(path)
127
+ output_path.dirname.mkpath
128
+ open(path) do |io|
129
+ output_path.open('w') { |f| f << io.read }
130
+ end
131
+ files << output_path
132
+ elsif (pathname = Pathname.new(path)).directory?
133
+ files += Pathname.glob(pathname + '**/*.podspec{.json,}')
134
+ raise Informative, 'No specs found in the current directory.' if files.empty?
135
+ else
136
+ files << (pathname = Pathname.new(path))
137
+ raise Informative, "Unable to find a spec named `#{path}'." unless pathname.exist? && path.include?('.podspec')
130
138
  end
131
- files << output_path
132
- else if (pathname = Pathname.new(path)).directory?
133
- files += Pathname.glob(pathname + '**/*.podspec{.json,}')
134
- raise Informative, 'No specs found in the current directory.' if files.empty?
135
- else
136
- files << (pathname = Pathname.new(path))
137
- raise Informative, "Unable to find a spec named `#{path}'." unless pathname.exist? && path.include?('.podspec')
138
139
  end
140
+ files
139
141
  end
140
- end
141
- files
142
142
  end
143
- end
144
143
 
145
144
  def podspecs_tmp_dir
146
145
  Pathname(File.join(Pathname.new('/tmp').realpath, '/CocoaPods/Lint_podspec'))
@@ -153,33 +152,37 @@ module Pod
153
152
  self.summary = 'Prints the path of the given spec.'
154
153
 
155
154
  self.description = <<-DESC
156
- Prints the path of 'NAME.podspec'
155
+ Prints the path of the .podspec file(s) whose name matches `QUERY`
157
156
  DESC
158
157
 
159
158
  self.arguments = [
160
- CLAide::Argument.new('NAME', false),
159
+ CLAide::Argument.new('QUERY', false),
161
160
  ]
162
161
 
163
162
  def self.options
164
163
  [
164
+ ['--regex', 'Interpret the `QUERY` as a regular expression'],
165
165
  ['--show-all', 'Print all versions of the given podspec'],
166
166
  ].concat(super)
167
167
  end
168
168
 
169
169
  def initialize(argv)
170
+ @use_regex = argv.flag?('regex')
170
171
  @show_all = argv.flag?('show-all')
171
- @spec = argv.shift_argument
172
- @spec = @spec.gsub('.podspec', '') unless @spec.nil?
172
+ @query = argv.shift_argument
173
+ @query = @query.gsub('.podspec', '') unless @query.nil?
173
174
  super
174
175
  end
175
176
 
176
177
  def validate!
177
178
  super
178
- help! 'A podspec name is required.' unless @spec
179
+ help! 'A podspec name is required.' unless @query
180
+ validate_regex!(@query) if @use_regex
179
181
  end
180
182
 
181
183
  def run
182
- UI.puts get_path_of_spec(@spec, @show_all)
184
+ query = @use_regex ? @query : Regexp.escape(@query)
185
+ UI.puts get_path_of_spec(query, @show_all)
183
186
  end
184
187
  end
185
188
 
@@ -189,37 +192,43 @@ module Pod
189
192
  self.summary = 'Prints a spec file.'
190
193
 
191
194
  self.description = <<-DESC
192
- Prints 'NAME.podspec' to standard output.
195
+ Prints the content of the podspec(s) whose name matches `QUERY` to standard output.
193
196
  DESC
194
197
 
195
198
  self.arguments = [
196
- CLAide::Argument.new('NAME', false),
199
+ CLAide::Argument.new('QUERY', false),
197
200
  ]
198
201
 
199
202
  def self.options
200
- [['--show-all', 'Pick from all versions of the given podspec']].concat(super)
203
+ [
204
+ ['--regex', 'Interpret the `QUERY` as a regular expression'],
205
+ ['--show-all', 'Pick from all versions of the given podspec']
206
+ ].concat(super)
201
207
  end
202
208
 
203
209
  def initialize(argv)
210
+ @use_regex = argv.flag?('regex')
204
211
  @show_all = argv.flag?('show-all')
205
- @spec = argv.shift_argument
206
- @spec = @spec.gsub('.podspec', '') unless @spec.nil?
212
+ @query = argv.shift_argument
213
+ @query = @query.gsub('.podspec', '') unless @query.nil?
207
214
  super
208
215
  end
209
216
 
210
217
  def validate!
211
218
  super
212
- help! 'A podspec name is required.' unless @spec
219
+ help! 'A podspec name is required.' unless @query
220
+ validate_regex!(@query) if @use_regex
213
221
  end
214
222
 
215
223
  def run
224
+ query = @use_regex ? @query : Regexp.escape(@query)
216
225
  filepath = if @show_all
217
- specs = get_path_of_spec(@spec, @show_all).split(/\n/)
226
+ specs = get_path_of_spec(query, @show_all).split(/\n/)
218
227
  index = choose_from_array(specs, "Which spec would you like to print [1-#{ specs.count }]? ")
219
228
  specs[index]
220
- else
221
- get_path_of_spec(@spec)
222
- end
229
+ else
230
+ get_path_of_spec(query)
231
+ end
223
232
 
224
233
  UI.puts File.read(filepath)
225
234
  end
@@ -231,38 +240,43 @@ module Pod
231
240
  self.summary = 'Edit a spec file.'
232
241
 
233
242
  self.description = <<-DESC
234
- Opens 'NAME.podspec' to be edited.
243
+ Opens the podspec matching `QUERY` to be edited.
235
244
  DESC
236
245
 
237
246
  self.arguments = [
238
- CLAide::Argument.new('NAME', false),
247
+ CLAide::Argument.new('QUERY', false),
239
248
  ]
240
249
 
241
250
  def self.options
242
- [['--show-all', 'Pick which spec to edit from all available' \
243
- 'versions of the given podspec']].concat(super)
251
+ [
252
+ ['--regex', 'Interpret the `QUERY` as a regular expression'],
253
+ ['--show-all', 'Pick from all versions of the given podspec']
254
+ ].concat(super)
244
255
  end
245
256
 
246
257
  def initialize(argv)
258
+ @use_regex = argv.flag?('regex')
247
259
  @show_all = argv.flag?('show-all')
248
- @spec = argv.shift_argument
249
- @spec = @spec.gsub('.podspec', '') unless @spec.nil?
260
+ @query = argv.shift_argument
261
+ @query = @query.gsub('.podspec', '') unless @query.nil?
250
262
  super
251
263
  end
252
264
 
253
265
  def validate!
254
266
  super
255
- help! 'A podspec name is required.' unless @spec
267
+ help! 'A podspec name is required.' unless @query
268
+ validate_regex!(@query) if @use_regex
256
269
  end
257
270
 
258
271
  def run
272
+ query = @use_regex ? @query : Regexp.escape(@query)
259
273
  if @show_all
260
- specs = get_path_of_spec(@spec, @show_all).split(/\n/)
274
+ specs = get_path_of_spec(query, @show_all).split(/\n/)
261
275
  message = "Which spec would you like to edit [1-#{specs.count}]? "
262
276
  index = choose_from_array(specs, message)
263
277
  filepath = specs[index]
264
278
  else
265
- filepath = get_path_of_spec(@spec)
279
+ filepath = get_path_of_spec(query)
266
280
  end
267
281
 
268
282
  exec_editor(filepath.to_s) if File.exist? filepath
@@ -311,6 +325,16 @@ module Pod
311
325
 
312
326
  private
313
327
 
328
+ # @param [String] query the regular expression string to validate
329
+ #
330
+ # @raise if the query is not a valid regular expression
331
+ #
332
+ def validate_regex!(query)
333
+ /#{query}/
334
+ rescue RegexpError
335
+ help! 'A valid regular expression is required.'
336
+ end
337
+
314
338
  # @return [Fixnum] the index of the chosen array item
315
339
  #
316
340
  def choose_from_array(array, message)
@@ -458,6 +482,7 @@ module Pod
458
482
  branches = GitHub.branches(repo['html_url'])
459
483
  master_name = repo['master_branch'] || 'master'
460
484
  master = branches.find { |branch| branch['name'] == master_name }
485
+ raise Informative, "Unable to find any commits on the master branch for the repository `#{repo['html_url']}`" unless master
461
486
  data[:ref_type] = ':commit'
462
487
  data[:ref] = master['commit']['sha']
463
488
  else
@@ -13,9 +13,11 @@ module Pod
13
13
  # hash.
14
14
  #
15
15
  def self.from_dependency(dependency, podfile_path)
16
- name = dependency.root_name
17
- params = dependency.external_source
16
+ from_params(dependency.external_source, dependency, podfile_path)
17
+ end
18
18
 
19
+ def self.from_params(params, dependency, podfile_path)
20
+ name = dependency.root_name
19
21
  if klass = concrete_class_from_params(params)
20
22
  klass.new(name, params, podfile_path)
21
23
  else
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the cocoapods command line tool.
3
3
  #
4
- VERSION = '0.35.0.rc2' unless defined? Pod::VERSION
4
+ VERSION = '0.35.0' unless defined? Pod::VERSION
5
5
  end
@@ -110,6 +110,10 @@ install_resource()
110
110
  echo "xcrun momc \\"${PODS_ROOT}/$1\\" \\"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\\""
111
111
  xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd"
112
112
  ;;
113
+ *.xcmappingmodel)
114
+ echo "xcrun mapc \\"${PODS_ROOT}/$1\\" \\"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\\""
115
+ xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm"
116
+ ;;
113
117
  *.xcassets)
114
118
  ;;
115
119
  /*)
@@ -27,7 +27,7 @@ module Pod
27
27
  def self.default_ld_flags(target)
28
28
  ld_flags = '-ObjC'
29
29
  if target.target_definition.podfile.set_arc_compatibility_flag? &&
30
- target.spec_consumers.any?(&:requires_arc?)
30
+ target.spec_consumers.any?(&:requires_arc?)
31
31
  ld_flags << ' -fobjc-arc'
32
32
  end
33
33
  ld_flags
@@ -378,7 +378,7 @@ module Pod
378
378
  build_configuration.build_settings['MACOSX_DEPLOYMENT_TARGET'] = osx_deployment_target.to_s if osx_deployment_target
379
379
  build_configuration.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = ios_deployment_target.to_s if ios_deployment_target
380
380
  build_configuration.build_settings['STRIP_INSTALLED_PRODUCT'] = 'NO'
381
- build_configuration.build_settings['CLANG_ENABLE_OBJC_ARC'] = 'NO'
381
+ build_configuration.build_settings['CLANG_ENABLE_OBJC_ARC'] = 'YES'
382
382
  end
383
383
  end
384
384
  end
@@ -465,8 +465,9 @@ module Pod
465
465
  # @return [void]
466
466
  #
467
467
  def write_lockfiles
468
- # checkout_options = sandbox.checkout_options
469
- @lockfile = Lockfile.generate(podfile, analysis_result.specifications)
468
+ external_source_pods = podfile.dependencies.select(&:external_source).map(&:root_name).uniq
469
+ checkout_options = sandbox.checkout_sources.select { |root_name, _| external_source_pods.include? root_name }
470
+ @lockfile = Lockfile.generate(podfile, analysis_result.specifications, checkout_options)
470
471
 
471
472
  UI.message "- Writing Lockfile in #{UI.path config.lockfile_path}" do
472
473
  @lockfile.write_to_disk(config.lockfile_path)
@@ -53,6 +53,7 @@ module Pod
53
53
  @result.podfile_state = generate_podfile_state
54
54
  @locked_dependencies = generate_version_locking_dependencies
55
55
 
56
+ store_existing_checkout_options
56
57
  fetch_external_sources if allow_fetches
57
58
  @result.specs_by_target = resolve_dependencies
58
59
  @result.specifications = generate_specifications
@@ -264,33 +265,81 @@ module Pod
264
265
  #
265
266
  def fetch_external_sources
266
267
  return unless allow_pre_downloads?
267
- deps_to_fetch = []
268
- deps_to_fetch_if_needed = []
269
- deps_with_external_source = podfile.dependencies.select(&:external_source)
270
268
 
271
- deps_with_different_sources = podfile.dependencies.group_by(&:root_name).select { |_root_name, dependencies| dependencies.map(&:external_source).uniq.count > 1 }
269
+ verify_no_pods_with_different_sources!
270
+ unless dependencies_to_fetch.empty?
271
+ UI.section 'Fetching external sources' do
272
+ dependencies_to_fetch.sort.each do |dependency|
273
+ fetch_external_source(dependency, !pods_to_fetch.include?(dependency.name))
274
+ end
275
+ end
276
+ end
277
+ end
278
+
279
+ def verify_no_pods_with_different_sources!
280
+ deps_with_different_sources = podfile.dependencies.group_by(&:root_name).
281
+ select { |_root_name, dependencies| dependencies.map(&:external_source).uniq.count > 1 }
272
282
  deps_with_different_sources.each do |root_name, dependencies|
273
- raise Informative, "There are multiple dependencies with different sources for `#{root_name}` in #{UI.path podfile.defined_in_file}:\n\n- #{dependencies.map(&:to_s).join("\n- ")}"
283
+ raise Informative, "There are multiple dependencies with different " \
284
+ "sources for `#{root_name}` in #{UI.path podfile.defined_in_file}:" \
285
+ "\n\n- #{dependencies.map(&:to_s).join("\n- ")}"
274
286
  end
287
+ end
275
288
 
276
- if update_mode == :all
277
- deps_to_fetch = deps_with_external_source
289
+ def fetch_external_source(dependency, use_lockfile_options)
290
+ checkout_options = lockfile.checkout_options_for_pod_named(dependency.root_name) if lockfile
291
+ if checkout_options && use_lockfile_options
292
+ source = ExternalSources.from_params(checkout_options, dependency, podfile.defined_in_file)
278
293
  else
294
+ source = ExternalSources.from_dependency(dependency, podfile.defined_in_file)
295
+ end
296
+ source.fetch(sandbox)
297
+ end
298
+
299
+ def dependencies_to_fetch
300
+ @deps_to_fetch ||= begin
301
+ deps_to_fetch = []
302
+ deps_to_fetch_if_needed = []
303
+ deps_with_external_source = podfile.dependencies.select(&:external_source)
304
+
305
+ if update_mode == :all
306
+ deps_to_fetch = deps_with_external_source
307
+ else
308
+ deps_to_fetch = deps_with_external_source.select { |dep| pods_to_fetch.include?(dep.name) }
309
+ deps_to_fetch_if_needed = deps_with_external_source.select { |dep| result.podfile_state.unchanged.include?(dep.name) }
310
+ deps_to_fetch += deps_to_fetch_if_needed.select do |dep|
311
+ sandbox.specification(dep.name).nil? ||
312
+ !dep.external_source[:local].nil? ||
313
+ !dep.external_source[:path].nil? ||
314
+ !sandbox.pod_dir(dep.root_name).directory? ||
315
+ checkout_requires_update?(dep)
316
+ end
317
+ end
318
+ deps_to_fetch.uniq(&:root_name)
319
+ end
320
+ end
321
+
322
+ def checkout_requires_update?(dependency)
323
+ return true unless lockfile && sandbox.manifest
324
+ locked_checkout_options = lockfile.checkout_options_for_pod_named(dependency.root_name)
325
+ sandbox_checkout_options = sandbox.manifest.checkout_options_for_pod_named(dependency.root_name)
326
+ locked_checkout_options != sandbox_checkout_options
327
+ end
328
+
329
+ def pods_to_fetch
330
+ @pods_to_fetch ||= begin
279
331
  pods_to_fetch = result.podfile_state.added + result.podfile_state.changed
280
332
  if update_mode == :selected
281
333
  pods_to_fetch += update[:pods]
282
334
  end
283
- deps_to_fetch = deps_with_external_source.select { |dep| pods_to_fetch.include?(dep.name) }
284
- deps_to_fetch_if_needed = deps_with_external_source.select { |dep| result.podfile_state.unchanged.include?(dep.name) }
285
- deps_to_fetch += deps_to_fetch_if_needed.select { |dep| sandbox.specification(dep.name).nil? || !dep.external_source[:local].nil? || !dep.external_source[:path].nil? || !sandbox.pod_dir(dep.name).directory? }
335
+ pods_to_fetch
286
336
  end
337
+ end
287
338
 
288
- unless deps_to_fetch.empty?
289
- UI.section 'Fetching external sources' do
290
- deps_to_fetch.uniq(&:root_name).sort.each do |dependency|
291
- source = ExternalSources.from_dependency(dependency, podfile.defined_in_file)
292
- source.fetch(sandbox)
293
- end
339
+ def store_existing_checkout_options
340
+ podfile.dependencies.select(&:external_source).each do |dep|
341
+ if checkout_options = lockfile && lockfile.checkout_options_for_pod_named(dep.root_name)
342
+ sandbox.store_checkout_source(dep.root_name, checkout_options)
294
343
  end
295
344
  end
296
345
  end
@@ -35,12 +35,20 @@ module Pod
35
35
  def add_files_to_build_phases
36
36
  target.file_accessors.each do |file_accessor|
37
37
  consumer = file_accessor.spec_consumer
38
- flags = compiler_flags_for_consumer(consumer)
39
- all_source_files = file_accessor.source_files
40
- regular_source_files = all_source_files.reject { |sf| sf.extname == '.d' }
41
- regular_file_refs = regular_source_files.map { |sf| project.reference_for_path(sf) }
42
- native_target.add_file_references(regular_file_refs, flags)
43
- other_file_refs = (all_source_files - regular_source_files).map { |sf| project.reference_for_path(sf) }
38
+
39
+ other_source_files = file_accessor.source_files.select { |sf| sf.extname == '.d' }
40
+
41
+ {
42
+ true => file_accessor.arc_source_files,
43
+ false => file_accessor.non_arc_source_files,
44
+ }.each do |arc, files|
45
+ files = files - other_source_files
46
+ flags = compiler_flags_for_consumer(consumer, arc)
47
+ regular_file_refs = files.map { |sf| project.reference_for_path(sf) }
48
+ native_target.add_file_references(regular_file_refs, flags)
49
+ end
50
+
51
+ other_file_refs = other_source_files.map { |sf| project.reference_for_path(sf) }
44
52
  native_target.add_file_references(other_file_refs, nil)
45
53
  end
46
54
  end
@@ -152,10 +160,11 @@ module Pod
152
160
  #
153
161
  # @return [String] The compiler flags.
154
162
  #
155
- def compiler_flags_for_consumer(consumer)
163
+ def compiler_flags_for_consumer(consumer, arc)
156
164
  flags = consumer.compiler_flags.dup
157
- if consumer.requires_arc
158
- flags << '-fobjc-arc'
165
+ if !arc
166
+ flags << '-fno-objc-arc'
167
+ else
159
168
  platform_name = consumer.platform_name
160
169
  spec_deployment_target = consumer.spec.deployment_target(platform_name)
161
170
  if spec_deployment_target.nil? || Version.new(spec_deployment_target) < ENABLE_OBJECT_USE_OBJC_FROM[platform_name]
@@ -102,7 +102,7 @@ module Pod
102
102
  frameworks = user_project.frameworks_group
103
103
  native_targets_to_integrate.each do |native_target|
104
104
  library = frameworks.files.select { |f| f.path == target.product_name }.first ||
105
- frameworks.new_product_ref_for_target(target.name, :static_library)
105
+ frameworks.new_product_ref_for_target(target.name, :static_library)
106
106
  unless native_target.frameworks_build_phase.files_references.include?(library)
107
107
  native_target.frameworks_build_phase.add_file_reference(library)
108
108
  end
@@ -18,6 +18,6 @@ module OpenURI
18
18
  #
19
19
  def self.redirectable?(uri1, uri2)
20
20
  uri1.scheme.downcase == uri2.scheme.downcase ||
21
- (/\A(?:http|ftp)\z/i =~ uri1.scheme && /\A(?:https?|ftp)\z/i =~ uri2.scheme)
21
+ (/\A(?:http|ftp)\z/i =~ uri1.scheme && /\A(?:https?|ftp)\z/i =~ uri2.scheme)
22
22
  end
23
23
  end
@@ -55,7 +55,7 @@ module Pod
55
55
  @activated = Molinillo::Resolver.new(self, self).resolve(dependencies, locked_dependencies)
56
56
  specs_by_target
57
57
  rescue Molinillo::ResolverError => e
58
- raise Informative, e.message
58
+ handle_resolver_error(e)
59
59
  end
60
60
 
61
61
  # @return [Hash{Podfile::TargetDefinition => Array<Specification>}]
@@ -221,8 +221,6 @@ module Pod
221
221
 
222
222
  include Molinillo::UI
223
223
 
224
- include Config::Mixin
225
-
226
224
  # The UI object the resolver should use for displaying user-facing output.
227
225
  #
228
226
  # @return [UserInterface] the normal CocoaPods UI object.
@@ -231,32 +229,43 @@ module Pod
231
229
  UI
232
230
  end
233
231
 
234
- # Called before resolution starts. We print out `Resolving dependencies` in
235
- # the analyzer, so here we just want to print out a starting `.` in verbose
236
- # mode.
232
+ # Called before resolution starts.
233
+ #
234
+ # Completely silence this, as we show nothing in normal mode and debug
235
+ # information in verbose mode.
237
236
  #
238
237
  # @return [Void]
239
238
  #
240
239
  def before_resolution
241
- UI.print '.' if config.verbose
242
240
  end
243
241
 
244
- # Called after resolution ends. We don't want to {#indicate_progress}
245
- # unless in verbose mode, so we only use the default implementation then.
242
+ # Called after resolution ends.
243
+ #
244
+ # Completely silence this, as we show nothing in normal mode and debug
245
+ # information in verbose mode.
246
246
  #
247
247
  # @return [Void]
248
248
  #
249
249
  def after_resolution
250
- super if config.verbose
251
250
  end
252
251
 
253
252
  # Called during resolution to indicate progress.
254
- # We only use the default implementation in verbose mode.
253
+ #
254
+ # Completely silence this, as we show nothing in normal mode and debug
255
+ # information in verbose mode.
255
256
  #
256
257
  # @return [Void]
257
258
  #
258
259
  def indicate_progress
259
- super if config.verbose
260
+ end
261
+
262
+ # Conveys debug information to the user.
263
+ # By default, prints to `STDERR` instead of {#output}.
264
+ #
265
+ # @param [Integer] depth the current depth of the resolution process.
266
+ # @return [void]
267
+ def debug?
268
+ Config.instance.verbose?
260
269
  end
261
270
 
262
271
  #-------------------------------------------------------------------------#
@@ -360,6 +369,36 @@ module Pod
360
369
  end
361
370
  end
362
371
 
372
+ # Handles errors that come out of a {Molinillo::Resolver}.
373
+ #
374
+ # @todo The check for version conflicts coming from the {Lockfile}
375
+ # requiring a pre-release version can be deleted for version 1.0,
376
+ # as it is a migration step for Lockfiles coming from CocoaPods
377
+ # versions before `0.35.0`.
378
+ #
379
+ # @return [void]
380
+ #
381
+ # @param [Molinillo::ResolverError] error
382
+ #
383
+ def handle_resolver_error(error)
384
+ case error
385
+ when Molinillo::VersionConflict
386
+ error.conflicts.each do |name, conflict|
387
+ lockfile_reqs = conflict.requirements[name_for_locking_dependency_source]
388
+ if lockfile_reqs && lockfile_reqs.last && lockfile_reqs.last.prerelease? && !conflict.existing
389
+ raise Informative, 'Due to the previous naïve CocoaPods resolver, ' \
390
+ "you were using a pre-release version of `#{name}`, " \
391
+ 'without explicitly asking for a pre-release version, which now leads to a conflict. ' \
392
+ 'Please decide to either use that pre-release version by adding the ' \
393
+ 'version requirement to your Podfile ' \
394
+ "(e.g. `pod '#{name}', '#{lockfile_reqs.map(&:requirement).join("', '")}'`) " \
395
+ "or revert to a stable version by running `pod update #{name}`."
396
+ end
397
+ end
398
+ end
399
+ raise Informative, error.message
400
+ end
401
+
363
402
  # Returns the target-appropriate nodes that are `successors` of `node`,
364
403
  # rejecting those that are scoped by target platform and have incompatible
365
404
  # targets.
@@ -64,8 +64,12 @@ module Pod
64
64
  # @return [Lockfile] the manifest which contains the information about the
65
65
  # installed pods.
66
66
  #
67
+ attr_accessor :manifest
68
+
67
69
  def manifest
68
- Lockfile.from_file(manifest_path) if manifest_path.exist?
70
+ @manifest ||= begin
71
+ Lockfile.from_file(manifest_path) if manifest_path.exist?
72
+ end
69
73
  end
70
74
 
71
75
  # @return [Project] the Pods project.
@@ -78,6 +78,27 @@ module Pod
78
78
  paths_for_attribute(:source_files)
79
79
  end
80
80
 
81
+ # @return [Array<Pathname>] the source files of the specification that
82
+ # use ARC.
83
+ #
84
+ def arc_source_files
85
+ case spec_consumer.requires_arc
86
+ when TrueClass
87
+ source_files
88
+ when FalseClass
89
+ []
90
+ else
91
+ paths_for_attribute(:requires_arc) & source_files
92
+ end
93
+ end
94
+
95
+ # @return [Array<Pathname>] the source files of the specification that
96
+ # do not use ARC.
97
+ #
98
+ def non_arc_source_files
99
+ source_files - arc_source_files
100
+ end
101
+
81
102
  # @return [Array<Pathname>] the headers of the specification.
82
103
  #
83
104
  def headers
@@ -237,7 +237,7 @@ module Pod
237
237
  version_msg = (min == max) ? min : "#{min} - #{max}"
238
238
  raise Informative, "The `#{dir.basename}` repo requires " \
239
239
  "CocoaPods #{version_msg} (currently using #{Pod::VERSION})\n".red +
240
- 'Update CocoaPods, or checkout the appropriate tag in the repo.'
240
+ 'Update CocoaPods, or checkout the appropriate tag in the repo.'
241
241
  end
242
242
 
243
243
  needs_sudo = path_writable?(__FILE__)
@@ -83,7 +83,7 @@ module Pod
83
83
  #
84
84
  def xcconfig_path(variant = nil)
85
85
  if variant
86
- support_files_dir + "#{label}.#{variant.downcase}.xcconfig"
86
+ support_files_dir + "#{label}.#{variant.gsub(File::SEPARATOR, '-').downcase}.xcconfig"
87
87
  else
88
88
  support_files_dir + "#{label}.xcconfig"
89
89
  end
@@ -191,17 +191,22 @@ module Pod
191
191
 
192
192
  # Prints a message with a label.
193
193
  #
194
- def labeled(label, value, justification = 16)
194
+ def labeled(label, value, justification = 12)
195
195
  if value
196
- ''.tap do |t|
197
- t << " - #{label}:".ljust(justification)
196
+ title = "- #{label}:".ljust(justification)
197
+ output = begin
198
198
  if value.is_a?(Array)
199
- separator = "\n - "
200
- puts_indented t << separator << value.join(separator)
199
+ lines = [wrap_string(title, self.indentation_level)]
200
+ value.each do |v|
201
+ lines << wrap_string("- #{v}", self.indentation_level + 2)
202
+ end
203
+ lines.join("\n")
201
204
  else
202
- puts_indented t << value.to_s << "\n"
203
- end
205
+ wrap_string(title + "#{value}", self.indentation_level)
206
+ end + "\n"
204
207
  end
208
+ puts output
209
+ output
205
210
  end
206
211
  end
207
212
 
@@ -131,10 +131,9 @@ module Pod
131
131
  attr_accessor :local
132
132
  alias_method :local?, :local
133
133
 
134
- # @return [Bool] Whether the validator should fail only on errors or also
135
- # on warnings.
134
+ # @return [Bool] Whether the validator should fail on warnings, or only on errors.
136
135
  #
137
- attr_accessor :only_errors
136
+ attr_accessor :allow_warnings
138
137
 
139
138
  # @return [String] name of the subspec to check, if nil all subspecs are checked.
140
139
  #
@@ -155,7 +154,7 @@ module Pod
155
154
  # @return [Boolean]
156
155
  #
157
156
  def validated?
158
- result_type != :error && (result_type != :warning || only_errors)
157
+ result_type != :error && (result_type != :warning || allow_warnings)
159
158
  end
160
159
 
161
160
  # @return [Symbol]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.35.0.rc2
4
+ version: 0.35.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eloy Duran
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-11-06 00:00:00.000000000 Z
12
+ date: 2014-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cocoapods-core
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - '='
19
19
  - !ruby/object:Gem::Version
20
- version: 0.35.0.rc2
20
+ version: 0.35.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - '='
26
26
  - !ruby/object:Gem::Version
27
- version: 0.35.0.rc2
27
+ version: 0.35.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: claide
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -45,28 +45,28 @@ dependencies:
45
45
  requirements:
46
46
  - - ~>
47
47
  - !ruby/object:Gem::Version
48
- version: 0.20.1
48
+ version: 0.20.2
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - ~>
54
54
  - !ruby/object:Gem::Version
55
- version: 0.20.1
55
+ version: 0.20.2
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: cocoapods-downloader
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - ~>
61
61
  - !ruby/object:Gem::Version
62
- version: 0.7.2
62
+ version: 0.8.0
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: 0.7.2
69
+ version: 0.8.0
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: cocoapods-plugins
72
72
  requirement: !ruby/object:Gem::Requirement
@@ -101,28 +101,28 @@ dependencies:
101
101
  requirements:
102
102
  - - ~>
103
103
  - !ruby/object:Gem::Version
104
- version: 0.4.0
104
+ version: 0.4.1
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - ~>
110
110
  - !ruby/object:Gem::Version
111
- version: 0.4.0
111
+ version: 0.4.1
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: molinillo
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - ~>
117
117
  - !ruby/object:Gem::Version
118
- version: 0.1.1
118
+ version: 0.1.2
119
119
  type: :runtime
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - ~>
124
124
  - !ruby/object:Gem::Version
125
- version: 0.1.1
125
+ version: 0.1.2
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: colored
128
128
  requirement: !ruby/object:Gem::Requirement