cocoapods-check 0.1.0 → 0.1.1.beta.1
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 +4 -4
- data/CONTRIBUTING.md +16 -0
- data/Rakefile +2 -1
- data/cocoapods-check.gemspec +2 -2
- data/lib/cocoapods_check.rb +1 -1
- data/lib/pod/command/check.rb +39 -10
- data/spec/check_spec.rb +43 -11
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38dd0d306636bbbf15886d98e25b2d476693be3e
|
4
|
+
data.tar.gz: 6e4e8cef74676f758b7246e60932e67311883424
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8c62dcbda488a41a8cb548e337f6701f00ad38f91cf8453f1929c359ba686bef4431857f8a9fe0e38c85e9977af7f5424473ac789cf56aa5bccb57d41e7dd83
|
7
|
+
data.tar.gz: 841188e28bab7332ebfdbfd590ceb127f5baf2c7d6cf720184a7949427e2d91b4fa1f1225e4cb389bff8adafb96f3c74ba31ccff32554a8d261ca2c459234028
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
Contributing
|
2
|
+
============
|
3
|
+
|
4
|
+
If you would like to contribute code to cocoapods-check you can do so through GitHub by
|
5
|
+
forking the repository and sending a pull request.
|
6
|
+
|
7
|
+
When submitting code, please make every effort to follow existing conventions
|
8
|
+
and style in order to keep the code as readable as possible. Please also make
|
9
|
+
sure your code has tests.
|
10
|
+
|
11
|
+
Before your code can be accepted into the project you must also sign the
|
12
|
+
[Individual Contributor License Agreement (CLA)][1].
|
13
|
+
|
14
|
+
|
15
|
+
[1]: https://spreadsheets.google.com/spreadsheet/viewform?formkey=dDViT2xzUHAwRkI3X3k5Z0lQM091OGc6MQ&ndplr=1
|
16
|
+
|
data/Rakefile
CHANGED
data/cocoapods-check.gemspec
CHANGED
@@ -17,9 +17,9 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
|
-
spec.add_development_dependency 'bundler', '~> 1.
|
20
|
+
spec.add_development_dependency 'bundler', '~> 1.0'
|
21
21
|
spec.add_development_dependency "rake", '~> 10.0'
|
22
22
|
spec.add_development_dependency "rspec"
|
23
23
|
|
24
|
-
spec.add_dependency 'cocoapods',
|
24
|
+
spec.add_dependency 'cocoapods', '~> 1.0.0.beta.3'
|
25
25
|
end
|
data/lib/cocoapods_check.rb
CHANGED
data/lib/pod/command/check.rb
CHANGED
@@ -62,13 +62,13 @@ module Pod
|
|
62
62
|
manifest_version = nil
|
63
63
|
end
|
64
64
|
|
65
|
-
# If this is a development Pod
|
66
|
-
if development_pods[spec_name] != nil
|
67
|
-
development_result(spec_name, development_pods[spec_name])
|
68
|
-
|
69
65
|
# If this Pod is installed
|
70
|
-
|
71
|
-
if
|
66
|
+
if manifest_version
|
67
|
+
if development_pods[spec_name] != nil
|
68
|
+
if is_development_pod_modified?(config, development_pods[spec_name])
|
69
|
+
changed_result(spec_name, manifest_version, locked_version)
|
70
|
+
end
|
71
|
+
elsif locked_version != manifest_version
|
72
72
|
changed_result(spec_name, manifest_version, locked_version)
|
73
73
|
end
|
74
74
|
|
@@ -79,11 +79,40 @@ module Pod
|
|
79
79
|
end.compact
|
80
80
|
end
|
81
81
|
|
82
|
-
def
|
83
|
-
|
84
|
-
|
82
|
+
def is_development_pod_modified?(config, development_pod)
|
83
|
+
development_podspec_file = development_pod[:path]
|
84
|
+
development_pod_dir = File.dirname(development_podspec_file)
|
85
|
+
spec = Specification.from_file(development_podspec_file)
|
86
|
+
|
87
|
+
# Gather all the dependencies used by the spec, across all platforms, and including subspecs.
|
88
|
+
all_files = [spec, spec.subspecs].flatten.map { |a_spec|
|
89
|
+
a_spec.available_platforms.map { |platform|
|
90
|
+
accessor = Sandbox::FileAccessor.new(Sandbox::PathList.new(Pathname.new(development_pod_dir)), a_spec.consumer(platform))
|
91
|
+
[
|
92
|
+
accessor.vendored_frameworks,
|
93
|
+
accessor.vendored_libraries,
|
94
|
+
accessor.resource_bundle_files,
|
95
|
+
accessor.license,
|
96
|
+
accessor.prefix_header,
|
97
|
+
accessor.preserve_paths,
|
98
|
+
accessor.readme,
|
99
|
+
accessor.resources,
|
100
|
+
accessor.source_files
|
101
|
+
].compact
|
102
|
+
}
|
103
|
+
}.flatten
|
104
|
+
|
105
|
+
# Also check the podspec date
|
106
|
+
all_files.push(development_podspec_file)
|
107
|
+
|
108
|
+
latest_modified_file = all_files.max_by {|f| File.mtime(f)}
|
109
|
+
|
110
|
+
if latest_modified_file
|
111
|
+
pod_mtime = File.mtime(latest_modified_file)
|
112
|
+
manifest_mtime = File.mtime(config.lockfile.defined_in_file)
|
113
|
+
pod_mtime >= manifest_mtime
|
85
114
|
else
|
86
|
-
|
115
|
+
false
|
87
116
|
end
|
88
117
|
end
|
89
118
|
|
data/spec/check_spec.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'cocoapods'
|
2
|
+
require 'tempfile'
|
3
|
+
|
2
4
|
require_relative '../lib/pod/command/check'
|
3
5
|
|
4
6
|
describe Pod::Command::Check do
|
@@ -59,26 +61,56 @@ describe Pod::Command::Check do
|
|
59
61
|
expect(results).to eq([ 'pod_three newly added', 'pod_two 2.0 -> 3.0' ])
|
60
62
|
end
|
61
63
|
|
62
|
-
it 'handles development pods' do
|
64
|
+
it 'handles development pods with changes' do
|
63
65
|
check = Pod::Command::Check.new(CLAide::ARGV.new([]))
|
64
66
|
|
65
|
-
config = create_config({ :pod_one => '1.0', :pod_two =>
|
67
|
+
config = create_config({ :pod_one => '1.0', :pod_two => '1.0' }, { :pod_one => '1.0', :pod_two => '1.0' })
|
66
68
|
|
67
|
-
|
68
|
-
|
69
|
+
# Make an actual file because 'check' needs the modified time
|
70
|
+
lockfile_path = Tempfile.new('dev-pod-test-lockfile').path
|
71
|
+
allow(config.lockfile).to receive(:defined_in_file).and_return(lockfile_path)
|
72
|
+
|
73
|
+
# Ensure development pod modified time is after lockfile modified time
|
74
|
+
sleep(1)
|
75
|
+
|
76
|
+
# Create a temp dir with a temp file and run the check in that context
|
77
|
+
Dir.mktmpdir('dev-pod-test-dir') do |dir|
|
78
|
+
source_file = Tempfile.new('some-pod-file', dir)
|
69
79
|
|
70
|
-
|
80
|
+
File.write("#{dir}/foo.podspec", "Pod::Spec.new do |s| s.source_files = '#{File.basename(source_file)}' end")
|
81
|
+
puts(File.read("#{dir}/foo.podspec"))
|
82
|
+
|
83
|
+
development_pods = { :pod_two => { :path => "#{dir}/foo.podspec" } }
|
84
|
+
results = check.find_differences(config, development_pods)
|
85
|
+
|
86
|
+
expect(results).to eq([ '~pod_two' ])
|
87
|
+
end
|
71
88
|
end
|
72
89
|
|
73
|
-
it 'handles development pods
|
74
|
-
check = Pod::Command::Check.new(CLAide::ARGV.new([
|
90
|
+
it 'handles development pods no changes reported' do
|
91
|
+
check = Pod::Command::Check.new(CLAide::ARGV.new([]))
|
75
92
|
|
76
|
-
config = create_config({ :pod_one => '1.0', :pod_two =>
|
93
|
+
config = create_config({ :pod_one => '1.0', :pod_two => '1.0' }, { :pod_one => '1.0', :pod_two => '1.0' })
|
77
94
|
|
78
|
-
|
79
|
-
|
95
|
+
# Create a temp dir with a temp file and run the check in that context
|
96
|
+
Dir.mktmpdir('dev-pod-test-dir') do |dir|
|
97
|
+
Tempfile.new('some-pod-file', dir)
|
98
|
+
|
99
|
+
# Ensure lockfile modified time is after development pod modified time
|
100
|
+
sleep(1)
|
101
|
+
|
102
|
+
# Make an actual file because 'check' needs the modified time
|
103
|
+
lockfile_path = Tempfile.new('dev-pod-test-lockfile').path
|
104
|
+
allow(config.lockfile).to receive(:defined_in_file).and_return(lockfile_path)
|
80
105
|
|
81
|
-
|
106
|
+
puts("#{dir}/foo.podspec")
|
107
|
+
File.write("#{dir}/foo.podspec", "Pod::Spec.new do |s| s.source_files = 'ack' end")
|
108
|
+
|
109
|
+
development_pods = { :pod_two => { :path => "#{dir}/foo.podspec" } }
|
110
|
+
results = check.find_differences(config, development_pods)
|
111
|
+
|
112
|
+
expect(results).to eq([])
|
113
|
+
end
|
82
114
|
end
|
83
115
|
|
84
116
|
def create_config(lockfile_hash, manifest_hash)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1.beta.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Di Iorio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: '1.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
61
|
+
version: 1.0.0.beta.3
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
68
|
+
version: 1.0.0.beta.3
|
69
69
|
description: "'check' plugin for CocoaPods"
|
70
70
|
email:
|
71
71
|
- doo@squareup.com
|
@@ -74,6 +74,7 @@ extensions: []
|
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
76
|
- ".gitignore"
|
77
|
+
- CONTRIBUTING.md
|
77
78
|
- Gemfile
|
78
79
|
- LICENSE
|
79
80
|
- README.md
|
@@ -97,9 +98,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
97
98
|
version: '0'
|
98
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
100
|
requirements:
|
100
|
-
- - "
|
101
|
+
- - ">"
|
101
102
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
103
|
+
version: 1.3.1
|
103
104
|
requirements: []
|
104
105
|
rubyforge_project:
|
105
106
|
rubygems_version: 2.4.6
|