cocoapods 0.35.0.rc2 → 0.35.0

Sign up to get free protection for your applications and to get access to all the features.
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