cocoapods 0.37.1 → 0.37.2

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/lib/cocoapods/command/outdated.rb +2 -0
  4. data/lib/cocoapods/command/repo/lint.rb +2 -0
  5. data/lib/cocoapods/command/repo/push.rb +9 -3
  6. data/lib/cocoapods/command/spec/edit.rb +7 -0
  7. data/lib/cocoapods/config.rb +12 -0
  8. data/lib/cocoapods/downloader/cache.rb +8 -3
  9. data/lib/cocoapods/downloader/request.rb +5 -0
  10. data/lib/cocoapods/executable.rb +9 -1
  11. data/lib/cocoapods/external_sources.rb +13 -0
  12. data/lib/cocoapods/external_sources/abstract_external_source.rb +8 -1
  13. data/lib/cocoapods/gem_version.rb +1 -1
  14. data/lib/cocoapods/generator/copy_resources_script.rb +7 -3
  15. data/lib/cocoapods/generator/header.rb +2 -0
  16. data/lib/cocoapods/generator/info_plist_file.rb +2 -0
  17. data/lib/cocoapods/generator/module_map.rb +5 -3
  18. data/lib/cocoapods/generator/prefix_header.rb +2 -0
  19. data/lib/cocoapods/generator/target_environment_header.rb +1 -4
  20. data/lib/cocoapods/generator/umbrella_header.rb +2 -0
  21. data/lib/cocoapods/generator/xcconfig/aggregate_xcconfig.rb +3 -1
  22. data/lib/cocoapods/generator/xcconfig/private_pod_xcconfig.rb +2 -0
  23. data/lib/cocoapods/generator/xcconfig/public_pod_xcconfig.rb +2 -0
  24. data/lib/cocoapods/generator/xcconfig/xcconfig_helper.rb +14 -7
  25. data/lib/cocoapods/hooks/installer_representation.rb +2 -0
  26. data/lib/cocoapods/hooks/library_representation.rb +4 -2
  27. data/lib/cocoapods/hooks/pod_representation.rb +6 -6
  28. data/lib/cocoapods/hooks_manager.rb +2 -0
  29. data/lib/cocoapods/installer.rb +43 -2
  30. data/lib/cocoapods/installer/analyzer.rb +16 -3
  31. data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +3 -1
  32. data/lib/cocoapods/installer/file_references_installer.rb +3 -1
  33. data/lib/cocoapods/installer/hooks_context.rb +9 -0
  34. data/lib/cocoapods/installer/migrator.rb +22 -1
  35. data/lib/cocoapods/installer/pod_source_installer.rb +16 -8
  36. data/lib/cocoapods/installer/pod_source_preparer.rb +2 -0
  37. data/lib/cocoapods/installer/user_project_integrator.rb +4 -2
  38. data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +6 -2
  39. data/lib/cocoapods/open_uri.rb +8 -0
  40. data/lib/cocoapods/project.rb +3 -1
  41. data/lib/cocoapods/resolver.rb +10 -10
  42. data/lib/cocoapods/sandbox.rb +4 -0
  43. data/lib/cocoapods/sandbox/file_accessor.rb +3 -1
  44. data/lib/cocoapods/sandbox/headers_store.rb +4 -4
  45. data/lib/cocoapods/sandbox/path_list.rb +25 -6
  46. data/lib/cocoapods/sources_manager.rb +3 -1
  47. data/lib/cocoapods/target.rb +1 -1
  48. data/lib/cocoapods/target/aggregate_target.rb +8 -2
  49. data/lib/cocoapods/user_interface.rb +62 -0
  50. data/lib/cocoapods/validator.rb +6 -2
  51. metadata +34 -33
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b26721da5616743033e4f4da36b3513e73a8d364
4
- data.tar.gz: c4cbc740b6362f10186b1dd194e6f7177eff6bf1
3
+ metadata.gz: 4ed679b638bf5ed300ac3daccdab5a2a743e05fd
4
+ data.tar.gz: dc94976d0009a55f4ddda7263b22bb6d911b6f41
5
5
  SHA512:
6
- metadata.gz: 96968927ffc9bc4f081a2c617815f61209612d7615960ffa3e24bf0d65edd1cf43425fefbb94643466232ec8a311597ac65a5cc37e4ecff343e8bb02a1c3d1c9
7
- data.tar.gz: 8c729bea9a3b519050522b945107d67623e35e45d6e96059f40c7ed7344b29031733f8a08e384d540e9c0215a1665ed0596805d9601bd8be30ddf5c8da616e8d
6
+ metadata.gz: 0a898eb51485877f897b2356dcfdd77b8cfe730c7545b464a08a5fae673e0643f5fab8ca68d9ffdc9bb5ff22096767379d5c20213237c0d9f1ab34eda4dbbcab
7
+ data.tar.gz: 76ee168bc5a7100dac38cc99e61418c9f6e6a1b43f35c4302d59e1b3af7cf3bd9549e0fedc15ad81574519aa4a65b60fbedac5a32772ff9ce47855b706220990
@@ -4,6 +4,35 @@ 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.37.2
8
+
9
+ ##### Enhancements
10
+
11
+ * Schemes of development pods will now be shared.
12
+ [Boris Bügling](https://github.com/neonichu)
13
+ [#3600](https://github.com/CocoaPods/CocoaPods/issues/3600)
14
+
15
+ * Recognizes incomplete cache when the original download of a pod was
16
+ interrupted.
17
+ [Marius Rackwitz](https://github.com/mrackwitz)
18
+ [#3561](https://github.com/CocoaPods/CocoaPods/issues/3561)
19
+
20
+ * Allow opting out of pod source locking, meaning `pod try` yields editable
21
+ projects.
22
+ [Samuel Giddins](https://github.com/segiddins)
23
+ [cocoapods-try#31](https://github.com/CocoaPods/cocoapods-try/issues/31)
24
+
25
+ ##### Bug Fixes
26
+
27
+ * `pod repo push` will now find and push JSON podspecs.
28
+ [#3494](https://github.com/CocoaPods/CocoaPods/issues/3494)
29
+ [Kyle Fuller](https://github.com/kylef)
30
+
31
+ * Flush stdin/stderr and wait a bit in `executable`.
32
+ [Boris Bügling](https://github.com/neonichu)
33
+ [#3500](https://github.com/CocoaPods/CocoaPods/issues/3500)
34
+
35
+
7
36
  ## 0.37.1
8
37
 
9
38
  ##### Bug Fixes
@@ -17,6 +17,8 @@ module Pod
17
17
  super
18
18
  end
19
19
 
20
+ # Run the command
21
+ #
20
22
  # @todo the command report new dependencies added to the Podfile as
21
23
  # updates.
22
24
  #
@@ -24,6 +24,8 @@ module Pod
24
24
  super
25
25
  end
26
26
 
27
+ # Run the command
28
+ #
27
29
  # @todo Part of this logic needs to be ported to cocoapods-core so web
28
30
  # services can validate the repo.
29
31
  #
@@ -190,9 +190,15 @@ module Pod
190
190
  # @return [Array<Pathname>] The path of the specifications to push.
191
191
  #
192
192
  def podspec_files
193
- files = Pathname.glob(@podspec || '*.podspec')
194
- raise Informative, "Couldn't find any .podspec file in current directory" if files.empty?
195
- files
193
+ if @podspec
194
+ path = Pathname(@podspec)
195
+ raise Informative, "Couldn't find #{@podspec}" unless path.exist?
196
+ [path]
197
+ else
198
+ files = Pathname.glob('*.podspec{,.json}')
199
+ raise Informative, "Couldn't find any podspec files in current directory" if files.empty?
200
+ files
201
+ end
196
202
  end
197
203
 
198
204
  # @return [Integer] The number of the podspec files to push.
@@ -48,7 +48,14 @@ module Pod
48
48
  raise Informative, "#{ filepath } doesn't exist."
49
49
  end
50
50
 
51
+ # Looks up an executable in the search paths
52
+ #
53
+ # @note
51
54
  # Thank you homebrew
55
+ #
56
+ # @param [String] cmd
57
+ # the executable to look up
58
+ #
52
59
  def which(cmd)
53
60
  dir = ENV['PATH'].split(':').find { |p| File.executable? File.join(p, cmd) }
54
61
  Pathname.new(File.join(dir, cmd)) unless dir.nil?
@@ -19,6 +19,7 @@ module Pod
19
19
 
20
20
  :clean => true,
21
21
  :integrate_targets => true,
22
+ :lock_pod_source => true,
22
23
  :new_version_message => ENV['COCOAPODS_SKIP_UPDATE_MESSAGE'].nil?,
23
24
 
24
25
  :cache_root => Pathname.new(Dir.home) + 'Library/Caches/CocoaPods',
@@ -27,6 +28,11 @@ module Pod
27
28
  # Applies the given changes to the config for the duration of the given
28
29
  # block.
29
30
  #
31
+ # @param [Hash<#to_sym,Object>] changes
32
+ # the changes to merge temporarily with the current config
33
+ #
34
+ # @yield [] is called while the changes are applied
35
+ #
30
36
  def with_changes(changes)
31
37
  old = {}
32
38
  changes.keys.each do |key|
@@ -71,6 +77,12 @@ module Pod
71
77
  attr_accessor :clean
72
78
  alias_method :clean?, :clean
73
79
 
80
+ # @return [Bool] Whether the installer should remove write permissions for
81
+ # installed pod source files after the installation.
82
+ #
83
+ attr_accessor :lock_pod_source
84
+ alias_method :lock_pod_source?, :lock_pod_source
85
+
74
86
  # @return [Bool] Whether CocoaPods should integrate a user target and build
75
87
  # the workspace or just create the Pods project.
76
88
  #
@@ -12,6 +12,8 @@ module Pod
12
12
  #
13
13
  attr_reader :root
14
14
 
15
+ # Initialize a new instance
16
+ #
15
17
  # @param [Pathname,String] root
16
18
  # see {#root}
17
19
  #
@@ -74,9 +76,10 @@ module Pod
74
76
  # was found in the download cache.
75
77
  #
76
78
  def cached_pod(request)
79
+ cached_spec = cached_spec(request)
77
80
  path = path_for_pod(request)
78
- spec = request.spec || cached_spec(request)
79
- return unless spec && path.directory?
81
+ return unless cached_spec && path.directory?
82
+ spec = request.spec || cached_spec
80
83
  Response.new(path, spec, request.params)
81
84
  end
82
85
 
@@ -89,6 +92,8 @@ module Pod
89
92
  def cached_spec(request)
90
93
  path = path_for_spec(request)
91
94
  path.file? && Specification.from_file(path)
95
+ rescue JSON::ParserError
96
+ nil
92
97
  end
93
98
 
94
99
  # @param [Request] request
@@ -127,7 +132,7 @@ module Pod
127
132
  tmpdir = Pathname(Dir.mktmpdir)
128
133
  blk.call(tmpdir)
129
134
  ensure
130
- FileUtils.remove_entry(tmpdir) if tmpdir.exist?
135
+ FileUtils.remove_entry(tmpdir) if tmpdir && tmpdir.exist?
131
136
  end
132
137
 
133
138
  # Copies the `source` directory to `destination`, cleaning the directory
@@ -28,6 +28,8 @@ module Pod
28
28
  attr_reader :head
29
29
  alias_method :head?, :head
30
30
 
31
+ # Initialize a new instance
32
+ #
31
33
  # @param [Specification,Nil] spec
32
34
  # see {#spec}
33
35
  #
@@ -59,6 +61,9 @@ module Pod
59
61
  # @param [Hash<#to_s, #to_s>] params
60
62
  # the download parameters of the pod being downloaded.
61
63
  #
64
+ # @param [Specification] spec
65
+ # the specification of the pod being downloaded.
66
+ #
62
67
  # @return [String] The slug used to store the files resulting from this
63
68
  # download request.
64
69
  #
@@ -83,7 +83,13 @@ module Pod
83
83
  Thread.new { while s = o.gets; stdout << s; end }
84
84
  Thread.new { while s = e.gets; stderr << s; end }
85
85
  i.close
86
- t.value
86
+ status = t.value
87
+
88
+ o.flush
89
+ e.flush
90
+ sleep(0.1)
91
+
92
+ status
87
93
  end
88
94
  end
89
95
 
@@ -101,6 +107,8 @@ module Pod
101
107
  #
102
108
  attr_accessor :io
103
109
 
110
+ # Init a new Indenter
111
+ #
104
112
  # @param [IO] io @see io
105
113
  #
106
114
  def initialize(io = nil)
@@ -8,6 +8,14 @@ module Pod
8
8
  # source.
9
9
  #
10
10
  module ExternalSources
11
+ # Instantiate a matching {AbstractExternalSource} for a given dependency.
12
+ #
13
+ # @param [Dependency] dependency
14
+ # the dependency
15
+ #
16
+ # @param [String] podfile_path
17
+ # @see AbstractExternalSource#podfile_path
18
+ #
11
19
  # @return [AbstractExternalSource] an initialized instance of the concrete
12
20
  # external source class associated with the option specified in the
13
21
  # hash.
@@ -26,6 +34,11 @@ module Pod
26
34
  end
27
35
  end
28
36
 
37
+ # Get the class to represent the defined source type of a dependency
38
+ #
39
+ # @param [Array<Symbol>] params
40
+ # the source params of the dependency
41
+ #
29
42
  # @return [Class]
30
43
  #
31
44
  def self.concrete_class_from_params(params)
@@ -17,6 +17,8 @@ module Pod
17
17
  #
18
18
  attr_reader :podfile_path
19
19
 
20
+ # Initialize a new instance
21
+ #
20
22
  # @param [String] name @see name
21
23
  # @param [Hash] params @see params
22
24
  # @param [String] podfile_path @see podfile_path
@@ -41,7 +43,7 @@ module Pod
41
43
 
42
44
  # Fetches the external source from the remote according to the params.
43
45
  #
44
- # @param [Sandbox] sandbox
46
+ # @param [Sandbox] _sandbox
45
47
  # the sandbox where the specification should be stored.
46
48
  #
47
49
  # @return [void]
@@ -58,6 +60,11 @@ module Pod
58
60
 
59
61
  protected
60
62
 
63
+ # Return the normalized path for a podspec for a relative declared path.
64
+ #
65
+ # @param [String] declared_path
66
+ # The path declared in the podfile.
67
+ #
61
68
  # @return [String] The uri of the podspec appending the name of the file
62
69
  # and expanding it if necessary.
63
70
  #
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the cocoapods command line tool.
3
3
  #
4
- VERSION = '0.37.1' unless defined? Pod::VERSION
4
+ VERSION = '0.37.2' unless defined? Pod::VERSION
5
5
  end
@@ -13,9 +13,13 @@ module Pod
13
13
  #
14
14
  attr_reader :platform
15
15
 
16
- # @param [Hash{String, Array{String}]
17
- # resources_by_config @see resources_by_config
18
- # @param [Platform] platform @see platform
16
+ # Initialize a new instance
17
+ #
18
+ # @param [Hash<String, Array<String>>] resources_by_config
19
+ # @see resources_by_config
20
+ #
21
+ # @param [Platform] platform
22
+ # @see platform
19
23
  #
20
24
  def initialize(resources_by_config, platform)
21
25
  @resources_by_config = resources_by_config
@@ -19,6 +19,8 @@ module Pod
19
19
  #
20
20
  attr_accessor :module_imports
21
21
 
22
+ # Initialize a new instance
23
+ #
22
24
  # @param [Symbol] platform
23
25
  # @see platform
24
26
  #
@@ -9,6 +9,8 @@ module Pod
9
9
  #
10
10
  attr_reader :target
11
11
 
12
+ # Initialize a new instance
13
+ #
12
14
  # @param [Target] target @see target
13
15
  #
14
16
  def initialize(target)
@@ -6,15 +6,17 @@ module Pod
6
6
  # with existing headers of the podspec.
7
7
  #
8
8
  class ModuleMap
9
- # @return [Target] the target represented by this Info.plist.
9
+ # @return [PodTarget] the target represented by this Info.plist.
10
10
  #
11
11
  attr_reader :target
12
12
 
13
- # @return [Array] the private headers of the module
13
+ # @return [Array<#to_s>] the private headers of the module
14
14
  #
15
15
  attr_accessor :private_headers
16
16
 
17
- # @param [Target] target @see target
17
+ # Initialize a new instance
18
+ #
19
+ # @param [PodTarget] target @see target
18
20
  #
19
21
  def initialize(target)
20
22
  @target = target
@@ -12,6 +12,8 @@ module Pod
12
12
  #
13
13
  attr_reader :file_accessors
14
14
 
15
+ # Initialize a new instance
16
+ #
15
17
  # @param [Array<FileAccessor>] file_accessors
16
18
  # @see file_accessors
17
19
  #
@@ -34,10 +34,7 @@ module Pod
34
34
  @specs_by_configuration = specs_by_configuration
35
35
  end
36
36
 
37
- # Generates and saves the file.
38
- #
39
- # @param [Pathname] pathname
40
- # The path where to save the generated file.
37
+ # Generates the file contents.
41
38
  #
42
39
  # @return [void]
43
40
  #
@@ -12,6 +12,8 @@ module Pod
12
12
  # the target, which provides the product name
13
13
  attr_reader :target
14
14
 
15
+ # Initialize a new instance
16
+ #
15
17
  # @param [Target] target
16
18
  # @see target
17
19
  #
@@ -8,6 +8,8 @@ module Pod
8
8
  #
9
9
  attr_reader :target
10
10
 
11
+ # Initialize a new instance
12
+ #
11
13
  # @param [Target] target @see target
12
14
  #
13
15
  # @param [String] configuration_name
@@ -26,7 +28,7 @@ module Pod
26
28
  # Generates and saves the xcconfig to the given path.
27
29
  #
28
30
  # @param [Pathname] path
29
- # the path where the prefix header should be stored.
31
+ # the path where the xcconfig should be stored.
30
32
  #
31
33
  # @return [void]
32
34
  #
@@ -17,6 +17,8 @@ module Pod
17
17
  #
18
18
  attr_reader :public_xcconfig
19
19
 
20
+ # Initialize a new instance
21
+ #
20
22
  # @param [Target] target @see target
21
23
  # @param [Xcodeproj::Config] public_xcconfig @see public_xcconfig
22
24
  #
@@ -13,6 +13,8 @@ module Pod
13
13
  #
14
14
  attr_reader :target
15
15
 
16
+ # Initialize a new instance
17
+ #
16
18
  # @param [Target] target @see target
17
19
  #
18
20
  def initialize(target)
@@ -11,7 +11,8 @@ module Pod
11
11
  # @param [Array<String>] strings
12
12
  # a list of strings.
13
13
  #
14
- # @param [String] optional prefix, such as a flag or option.
14
+ # @param [String] prefix
15
+ # optional prefix, such as a flag or option.
15
16
  #
16
17
  # @return [String] the resulting string.
17
18
  #
@@ -20,6 +21,12 @@ module Pod
20
21
  strings.sort.map { |s| %W( #{prefix}"#{s}" ) }.join(' ')
21
22
  end
22
23
 
24
+ # Return the default linker flags
25
+ #
26
+ # @param [Target] target
27
+ # the target, which is used to check if the ARC compatibility
28
+ # flag is required.
29
+ #
23
30
  # @return [String] the default linker flags. `-ObjC` is always included
24
31
  # while `-fobjc-arc` is included only if requested in the
25
32
  # Podfile.
@@ -35,7 +42,7 @@ module Pod
35
42
 
36
43
  # Configures the given Xcconfig
37
44
  #
38
- # @param [PodTarget] pod_target
45
+ # @param [PodTarget] target
39
46
  # The pod target, which holds the list of +Spec::FileAccessor+.
40
47
  #
41
48
  # @param [Xcodeproj::Config] xcconfig
@@ -70,10 +77,10 @@ module Pod
70
77
  add_developers_frameworks_if_needed(xcconfig, consumer.platform_name)
71
78
  end
72
79
 
73
- # Configures the given Xcconfig with the the build settings for the given
80
+ # Configures the given Xcconfig with the build settings for the given
74
81
  # framework path.
75
82
  #
76
- # @param [Pathanme] framework_path
83
+ # @param [Pathname] framework_path
77
84
  # The path of the framework.
78
85
  #
79
86
  # @param [Xcodeproj::Config] xcconfig
@@ -92,11 +99,11 @@ module Pod
92
99
  xcconfig.merge!(build_settings)
93
100
  end
94
101
 
95
- # Configures the given Xcconfig with the the build settings for the given
102
+ # Configures the given Xcconfig with the build settings for the given
96
103
  # library path.
97
104
  #
98
- # @param [Pathanme] framework_path
99
- # The path of the framework.
105
+ # @param [Pathname] library_path
106
+ # The path of the library.
100
107
  #
101
108
  # @param [Xcodeproj::Config] xcconfig
102
109
  # The xcconfig to edit.