cocoapods 0.17.0.rc1 → 0.17.0.rc2

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: 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