cocoapods 0.17.0.rc1 → 0.17.0.rc2

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: 6013129b296437d543853413a5ee6e835811f6e1
4
- data.tar.gz: dd3f63d981dbd29df23b124c6002730de9c71745
3
+ metadata.gz: ec366f3412f372de76d07ff95b2b6c77d805ecb5
4
+ data.tar.gz: b05a660f2932e2c758489fbbd5d5aed7af4e188d
5
5
  SHA512:
6
- metadata.gz: 2c7de94a11c4a79a00f46ff265e2a281058142511d671c5b284c504d8162a666bbcd2b39e807193e9dc57a36574a9e3a4d96f2650d3415e2e3a6939e50382046
7
- data.tar.gz: 8c18695b3ad7b32d16f6fc4d0ae95d6295b46e7e8309c8511222560d3dfa8e0e7e1d0314243f00e7d7381641731243321b02cac727d5f56d7f6080c1b1a04173
6
+ metadata.gz: 498f5e5807b237c66558946b564aaac5a5e66051d231e96f696233f9368c89c3730928a1176659355d22c11eebd11b383032af94ca0758544e22cef8119ad476
7
+ data.tar.gz: 58422e34a9ff50dac4dd533cf9a8f7fbf7ddfa026aa2093efaabb001fc10b9a41fc260dcce44552bafd0ad9880ae39fbd642303be7ccbd2fff0fe4c3c138a6d9
@@ -1,6 +1,21 @@
1
+ ## 0.17.0.rc2
2
+ [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.17.0.rc1...0.17.0.rc2)
3
+ • [cocoapods-core](https://github.com/CocoaPods/Core/compare/0.17.0.rc1...0.17.0.rc2)
4
+
5
+ ###### Bug fixes
6
+
7
+ - Restored output coloring.
8
+ - Fixed a crash related to subspecs
9
+ [#819](https://github.com/CocoaPods/CocoaPods/issues/819)
10
+ - Git repos were not cached for dependencies with external sources.
11
+ [#820](https://github.com/CocoaPods/CocoaPods/issues/820)
12
+ - Restored support for directories for the preserve_patterns specification
13
+ attribute.
14
+ [#823](https://github.com/CocoaPods/CocoaPods/issues/823)
15
+
1
16
  ## 0.17.0.rc1
2
- [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/master...0.17)
3
- • [Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.5.0...master)
17
+ [CocoaPods](https://github.com/CocoaPods/CocoaPods/compare/0.16.4...0.17.0.rc1)
18
+ • [Xcodeproj](https://github.com/CocoaPods/Xcodeproj/compare/0.4.3...0.5.0)
4
19
  • [cocoapods-core](https://github.com/CocoaPods/Core)
5
20
  • [cocoapods-downloader](https://github.com/CocoaPods/cocoapods-downloader)
6
21
 
@@ -17,6 +32,7 @@ CocoaPods internals and need to be updated:
17
32
  - LibComponentLogging-pods/0.0.1/LibComponentLogging-pods.podspec
18
33
  - RestKit/0.9.3/RestKit.podspec
19
34
  - Three20/1.0.11/Three20.podspec
35
+ - ARAnalytics/1.1/ARAnalytics.podspec
20
36
 
21
37
  Other specifications, might present compatibility issues for the reasons
22
38
  presented below.
@@ -53,7 +69,7 @@ presented below.
53
69
 
54
70
  ###### Enhancements
55
71
 
56
- - Released preview [documentation](docs.cocoapods.org).
72
+ - Released preview [documentation](http://docs.cocoapods.org).
57
73
  - CocoaPods now has support for working in teams and not committing the Pods
58
74
  folder, as it will keep track of the status of the Pods folder.
59
75
  [#552](https://github.com/CocoaPods/CocoaPods/issues/552)
@@ -16,6 +16,20 @@ module Pod
16
16
  end
17
17
  end
18
18
 
19
+ # @return [String] The directory where CocoaPods caches the downloads.
20
+ #
21
+ # @todo The {Installer::PodSourceInstaller} and the #{ExternalSources}
22
+ # classes build and configure the downloader from scratch.
23
+ #
24
+ CACHE_ROOT = "~/Library/Caches/CocoaPods"
25
+
26
+ # @return [Fixnum] The maximum size for the cache expressed in Mb.
27
+ #
28
+ # @todo The {Installer::PodSourceInstaller} and the #{ExternalSources}
29
+ # classes build and configure the downloader from scratch.
30
+ #
31
+ MAX_CACHE_SIZE = 500
32
+
19
33
  require 'cocoapods-core'
20
34
  require 'xcodeproj'
21
35
  require 'cocoapods/downloader'
@@ -21,7 +21,7 @@ module Pod
21
21
 
22
22
  def self.parse(argv)
23
23
  command = super
24
- unless SourcesManager.master_repo_functional? || command.is_a?(Setup) || ENV['SKIP_SETUP']
24
+ unless SourcesManager.master_repo_functional? || command.is_a?(Setup) || command.is_a?(Repo::Add) || ENV['SKIP_SETUP']
25
25
  Setup.new(CLAide::ARGV.new([])).run
26
26
  end
27
27
  command
@@ -52,11 +52,18 @@ module Pod
52
52
  #
53
53
  # @todo We should probably not even load colored unless needed.
54
54
  #
55
+ # @todo Move silent flag to CLAide.
56
+ #
57
+ # @note It is importat that the commadnds don't overide the default
58
+ # settings if their flag is missing (i.e. their value is nil)
59
+ #
55
60
  def initialize(argv)
56
- config.silent = argv.flag?('silent', config.silent)
57
- config.verbose = argv.flag?('verbose', config.verbose?)
58
- String.send(:define_method, :colorize) { |string , _| string } unless self.colorize_output?
59
61
  super
62
+ config.silent = argv.flag?('silent', config.silent)
63
+ config.verbose = self.verbose? unless self.verbose.nil?
64
+ unless self.colorize_output?
65
+ String.send(:define_method, :colorize) { |string , _| string }
66
+ end
60
67
  end
61
68
 
62
69
  #-------------------------------------------------------------------------#
@@ -113,7 +113,7 @@ module Pod
113
113
  # @return [Pathname] the directory where the CocoaPods sources are stored.
114
114
  #
115
115
  def repos_dir
116
- @repos_dir ||= Pathname.new(ENV['HOME'] + "/.cocoapods")
116
+ @repos_dir ||= Pathname.new(ENV['CP_REPOS_DIR'] || "~/.cocoapods").expand_path
117
117
  end
118
118
 
119
119
  attr_writer :repos_dir
@@ -165,7 +165,7 @@ module Pod
165
165
  # @return [Pathname] The path of the file which contains the user settings.
166
166
  #
167
167
  def user_settings_file
168
- Pathname.new(ENV['HOME'] + "/.cocoapods/config.yaml")
168
+ repos_dir + "config.yaml"
169
169
  end
170
170
 
171
171
  # Sets the values of the attributes with the given hash.
@@ -122,6 +122,9 @@ module Pod
122
122
  # marked as pre-downloaded indicating to the installer that only
123
123
  # clean operations are needed.
124
124
  #
125
+ # @todo The downloader configuration is the same of the
126
+ # #{PodSourceInstaller} and it needs to be kept in sync.
127
+ #
125
128
  # @return [void]
126
129
  #
127
130
  def pre_download(sandbox)
@@ -129,6 +132,9 @@ module Pod
129
132
  target = sandbox.root + name
130
133
  target.rmtree if target.exist?
131
134
  downloader = Downloader.for_target(target, params)
135
+ downloader.cache_root = CACHE_ROOT
136
+ downloader.max_cache_size = MAX_CACHE_SIZE
137
+ downloader.aggressive_cache = false
132
138
  downloader.download
133
139
  store_podspec(sandbox, target + "#{name}.podspec")
134
140
  sandbox.store_pre_downloaded_pod(name)
@@ -2,6 +2,6 @@ module Pod
2
2
 
3
3
  # The version of the cocoapods command line tool.
4
4
  #
5
- VERSION = '0.17.0.rc1' unless defined? Pod::VERSION
5
+ VERSION = '0.17.0.rc2' unless defined? Pod::VERSION
6
6
  end
7
7
 
@@ -113,12 +113,11 @@ module Pod
113
113
  sandbox.build_headers.add_search_path(headers_sandbox)
114
114
  sandbox.public_headers.add_search_path(headers_sandbox)
115
115
 
116
- consumer = file_accessor.spec_consumer
117
- header_mappings(headers_sandbox, consumer, file_accessor.headers).each do |namespaced_path, files|
116
+ header_mappings(headers_sandbox, file_accessor, file_accessor.headers).each do |namespaced_path, files|
118
117
  sandbox.build_headers.add_files(namespaced_path, files)
119
118
  end
120
119
 
121
- header_mappings(headers_sandbox, consumer, file_accessor.public_headers).each do |namespaced_path, files|
120
+ header_mappings(headers_sandbox, file_accessor, file_accessor.public_headers).each do |namespaced_path, files|
122
121
  sandbox.public_headers.add_files(namespaced_path, files)
123
122
  end
124
123
  end
@@ -154,7 +153,8 @@ module Pod
154
153
  # headers folders as the keys and the absolute paths of the
155
154
  # header files as the values.
156
155
  #
157
- def header_mappings(headers_sandbox, consumer, headers)
156
+ def header_mappings(headers_sandbox, file_accessor, headers)
157
+ consumer = file_accessor.spec_consumer
158
158
  dir = headers_sandbox
159
159
  dir = dir + consumer.header_dir if consumer.header_dir
160
160
 
@@ -162,7 +162,7 @@ module Pod
162
162
  headers.each do |header|
163
163
  sub_dir = dir
164
164
  if consumer.header_mappings_dir
165
- header_mappings_dir = Pathname.new(consumer.header_mappings_dir)
165
+ header_mappings_dir = file_accessor.path_list.root + consumer.header_mappings_dir
166
166
  relative_path = header.relative_path_from(header_mappings_dir)
167
167
  sub_dir = sub_dir + relative_path.dirname
168
168
  end
@@ -152,14 +152,6 @@ module Pod
152
152
 
153
153
  # @!group Dependencies
154
154
 
155
- # @return [String] The directory where CocoaPods caches the downloads.
156
- #
157
- CACHE_ROOT = "~/Library/Caches/CocoaPods"
158
-
159
- # @return [Fixnum] The maximum size for the cache expressed in Mb.
160
- #
161
- MAX_CACHE_SIZE = 500
162
-
163
155
  # @return [Downloader] The downloader to use for the retrieving the
164
156
  # source.
165
157
  #
@@ -5,6 +5,8 @@ module Pod
5
5
  # taking into account any exclude pattern and the default extensions to use
6
6
  # for directories.
7
7
  #
8
+ # @note The FileAccessor always returns absolute paths.
9
+ #
8
10
  class FileAccessor
9
11
 
10
12
  HEADER_EXTENSIONS = Xcodeproj::Constants::HEADER_FILES_EXTENSIONS
@@ -31,6 +33,12 @@ module Pod
31
33
  end
32
34
  end
33
35
 
36
+ # @return [Pathname] the directory which contains the files of the Pod.
37
+ #
38
+ def root
39
+ path_list.root
40
+ end
41
+
34
42
  # @return [Specification] the specification.
35
43
  #
36
44
  def spec
@@ -39,14 +47,14 @@ module Pod
39
47
 
40
48
  # @return [Specification] the platform used to consume the specification.
41
49
  #
42
- def platform
43
- spec_consumer.platform
50
+ def platform_name
51
+ spec_consumer.platform_name
44
52
  end
45
53
 
46
54
  # @return [String] A string suitable for debugging.
47
55
  #
48
56
  def inspect
49
- "<#{self.class} spec=#{spec.name} platform=#{spec_consumer.platform} root=#{path_list.root}>"
57
+ "<#{self.class} spec=#{spec.name} platform=#{platform_name} root=#{path_list.root}>"
50
58
  end
51
59
 
52
60
  #-----------------------------------------------------------------------#
@@ -83,17 +91,13 @@ module Pod
83
91
  # specification grouped by destination.
84
92
  #
85
93
  def resources
86
- options = {
87
- :exclude_patterns => spec_consumer.exclude_files,
88
- :include_dirs => true,
89
- }
90
- expanded_paths(spec_consumer.resources, options)
94
+ paths_for_attribute(:resources, true)
91
95
  end
92
96
 
93
97
  # @return [Array<Pathname>] the files of the specification to preserve.
94
98
  #
95
99
  def preserve_paths
96
- paths_for_attribute(:preserve_paths)
100
+ paths_for_attribute(:preserve_paths, true)
97
101
  end
98
102
 
99
103
  # @return [Pathname] The of the prefix header file of the specification.
@@ -136,11 +140,12 @@ module Pod
136
140
  #
137
141
  # @return [Array<Pathname>] the paths.
138
142
  #
139
- def paths_for_attribute(attribute)
143
+ def paths_for_attribute(attribute, include_dirs = false)
140
144
  file_patterns = spec_consumer.send(attribute)
141
145
  options = {
142
146
  :exclude_patterns => spec_consumer.exclude_files,
143
- :dir_pattern => glob_for_attribute(attribute)
147
+ :dir_pattern => glob_for_attribute(attribute),
148
+ :include_dirs => include_dirs,
144
149
  }
145
150
  expanded_paths(file_patterns, options)
146
151
  end
@@ -145,7 +145,7 @@ module Pod
145
145
  # return [void]
146
146
  #
147
147
  def warn(message, actions = [], verbose_only = false)
148
- warnings << { :message => message, :actions => actions }
148
+ warnings << { :message => message, :actions => actions, :verbose_only => verbose_only }
149
149
  end
150
150
 
151
151
  # Prints the stored warnings. This method is intended to be called at the
@@ -154,9 +154,9 @@ module Pod
154
154
  # @return [void]
155
155
  #
156
156
  def print_warnings
157
- return if config.silent? && verbose_only
158
157
  STDOUT.flush
159
158
  warnings.each do |warning|
159
+ next if warning[:verbose_only] && !config.verbose?
160
160
  STDERR.puts("\n[!] #{warning[:message]}".yellow)
161
161
  warning[:actions].each do |action|
162
162
  indented = wrap_string(action, " - ")
@@ -7,7 +7,7 @@ module Pod
7
7
  module UserInterface
8
8
  module ErrorReport
9
9
  class << self
10
- def report(error)
10
+ def report(exception)
11
11
  return <<-EOS
12
12
 
13
13
  #{'――― MARKDOWN TEMPLATE ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――'.reversed}
@@ -36,16 +36,16 @@ Repositories : #{repo_information.join("\n ")}
36
36
  ### Error
37
37
 
38
38
  ```
39
- #{error.message}
40
- #{error.backtrace.join("\n")}
39
+ #{exception.class} - #{exception.message}
40
+ #{exception.backtrace.join("\n")}
41
41
  ```
42
42
 
43
43
  #{'――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――'.reversed}
44
44
 
45
45
  #{'[!] Oh no, an error occurred.'.red}
46
- #{error_from_podfile(error)}
46
+ #{error_from_podfile(exception)}
47
47
  #{'Search for existing github issues similar to yours:'.yellow}
48
- #{"https://github.com/CocoaPods/CocoaPods/issues/search?q=#{CGI.escape(error.message)}"}
48
+ #{"https://github.com/CocoaPods/CocoaPods/issues/search?q=#{CGI.escape(exception.message)}"}
49
49
 
50
50
  #{'If none exists, create a ticket, with the template displayed above, on:'.yellow}
51
51
  https://github.com/CocoaPods/CocoaPods/issues/new
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.17.0.rc1
4
+ version: 0.17.0.rc2
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: 2013-02-26 00:00:00.000000000 Z
12
+ date: 2013-02-27 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.17.0.rc1
20
+ version: 0.17.0.rc2
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.17.0.rc1
27
+ version: 0.17.0.rc2
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: claide
30
30
  requirement: !ruby/object:Gem::Requirement