pod-synchronize 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/Gemfile.lock +2 -2
- data/README.md +5 -1
- data/lib/updater/configuration.rb +1 -1
- data/lib/updater/git.rb +7 -7
- data/lib/updater/pod.rb +15 -5
- data/lib/updater/specs.rb +4 -4
- data/lib/updater/synchronize.rb +21 -18
- data/lib/updater/version.rb +2 -2
- data/pod-synchronize.gemspec +3 -1
- data/spec/configuration_spec.rb +3 -3
- data/spec/git_spec.rb +10 -10
- data/spec/pod_spec.rb +7 -7
- data/spec/specs_spec.rb +8 -8
- data/spec/synchronize_spec.rb +1 -1
- data/spec/version_spec.rb +4 -4
- metadata +18 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b16be6a9a8e7d320e48e029f941e6d7d5941467d
|
4
|
+
data.tar.gz: d9dae73dbfa6cfeb9daaec790d7dbeccc295c71d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0e675a437ef7d068e9f451b912dcee3bf1907f3dd6c56c351398ff576540e2addba6546a16db2fb1a33b06735e2069ea8246751efb4fa659e1033d36c9634b4
|
7
|
+
data.tar.gz: 48d606004c288529d3b4b404a242abffea79c946eec764cbe46b5d6b7eac0c565f1eae0d7850d43d3ba9b02171eba3bef48b777bebfbcf4d73c2fc0a6f13d724
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
[![Build Status](https://travis-ci.org/xing/XNGPodsSynchronizer.svg?branch=master)](https://travis-ci.org/xing/XNGPodSynchronizer)
|
4
4
|
[![Coverage Status](https://coveralls.io/repos/xing/XNGPodsSynchronizer/badge.svg?branch=master)](https://coveralls.io/r/xing/XNGPodSynchronizer?branch=master)
|
5
5
|
|
6
|
-
XNGPodSynchronizer reads `Podfile.locks` of your projects, copies the `.podspec`s from the CocoaPods master repository and mirrors it to your own `git` repository (e.g. GitHub Enterprise). This helps you get independent from `github.com
|
6
|
+
XNGPodSynchronizer reads `Podfile.locks` of your projects, copies the `.podspec`s from the CocoaPods master repository and mirrors it to your own `git` repository (e.g. GitHub Enterprise). This helps you get independent from `github.com` and avoids the need of cloning the full CocoaPods master repository, which might speed up your builds on CI.
|
7
7
|
|
8
8
|
## Installation
|
9
9
|
|
@@ -58,6 +58,10 @@ We use Jenkins to run the synchronize process twice daily. To do that use the fo
|
|
58
58
|
$ pod-synchronize synchronize config.yml
|
59
59
|
```
|
60
60
|
|
61
|
+
## Known issues
|
62
|
+
|
63
|
+
At the moment this gem only handles `git` [sources](https://guides.cocoapods.org/syntax/podspec.html#source) correctly. `HTTP` sources are partly supported (see [#12](https://github.com/xing/XNGPodsSynchronizer/pull/12)) and `svn`, `hg` support is missing.
|
64
|
+
|
61
65
|
## TODO
|
62
66
|
|
63
67
|
* Support Gitlab [#1](https://github.com/xing/XNGPodSynchronizer/issue/1)
|
data/lib/updater/git.rb
CHANGED
@@ -1,28 +1,28 @@
|
|
1
1
|
class Git
|
2
2
|
attr_accessor :path
|
3
3
|
|
4
|
-
def initialize(path
|
4
|
+
def initialize(path = Dir.pwd)
|
5
5
|
@path = path
|
6
6
|
end
|
7
7
|
|
8
|
-
def commit(message
|
8
|
+
def commit(message)
|
9
9
|
execute('git add', '--all')
|
10
10
|
execute('git commit', '-m', "'#{message}'")
|
11
11
|
end
|
12
12
|
|
13
|
-
def push(remote
|
13
|
+
def push(remote = 'origin master', options = nil)
|
14
14
|
execute('git push', remote, options)
|
15
15
|
end
|
16
16
|
|
17
|
-
def clone(url
|
17
|
+
def clone(url, options = '.')
|
18
18
|
execute('git clone', url, options)
|
19
19
|
end
|
20
20
|
|
21
|
-
def set_origin(url
|
21
|
+
def set_origin(url)
|
22
22
|
execute('git remote', 'set-url origin', url)
|
23
23
|
end
|
24
24
|
|
25
|
-
def create_github_repo(access_token
|
25
|
+
def create_github_repo(access_token, org, name, endpoint)
|
26
26
|
execute('curl',
|
27
27
|
"#{endpoint}/orgs/#{org}/repos?access_token=#{access_token}",
|
28
28
|
'-d', "'{\"name\":\"#{name}\"}'")
|
@@ -37,4 +37,4 @@ class Git
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
end
|
40
|
+
end
|
data/lib/updater/pod.rb
CHANGED
@@ -1,19 +1,29 @@
|
|
1
|
+
require 'uri'
|
2
|
+
|
1
3
|
class Pod
|
2
4
|
attr_reader :path, :name
|
3
5
|
|
4
|
-
def initialize(path
|
6
|
+
def initialize(path)
|
5
7
|
@path = path
|
6
8
|
@name = @path.split(File::SEPARATOR).last
|
7
9
|
end
|
8
10
|
|
9
11
|
def versions
|
10
12
|
@versions ||= Dir.glob(File.join(@path, '*')).map do |version_path|
|
11
|
-
Version.new(
|
13
|
+
Version.new(version_path)
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
17
|
def git_source
|
16
|
-
versions.sort.last.contents["source"]["git"]
|
18
|
+
source = versions.sort.last.contents["source"]["git"]
|
19
|
+
source ||= begin
|
20
|
+
http_source = versions.sort.last.contents["source"]["http"]
|
21
|
+
uri = URI.parse(http_source)
|
22
|
+
host = uri.host.match(/www.(.*)/).captures.first
|
23
|
+
scheme = "git"
|
24
|
+
path = uri.path.split("/").take(3).join("/").concat(".git")
|
25
|
+
URI::Generic.build({scheme: scheme, host: host, path: path}).to_s
|
26
|
+
end
|
17
27
|
end
|
18
28
|
|
19
29
|
def save
|
@@ -21,7 +31,7 @@ class Pod
|
|
21
31
|
end
|
22
32
|
|
23
33
|
def git
|
24
|
-
@git ||= Git.new(
|
34
|
+
@git ||= Git.new(@path)
|
25
35
|
end
|
26
36
|
|
27
|
-
end
|
37
|
+
end
|
data/lib/updater/specs.rb
CHANGED
@@ -3,7 +3,7 @@ require 'fileutils'
|
|
3
3
|
class Specs
|
4
4
|
attr_reader :path, :whitelist, :specs_root
|
5
5
|
|
6
|
-
def initialize(path
|
6
|
+
def initialize(path, whitelist = [], specs_root = '')
|
7
7
|
@path = path
|
8
8
|
@whitelist = whitelist
|
9
9
|
@specs_root = File.join(@path, specs_root)
|
@@ -11,7 +11,7 @@ class Specs
|
|
11
11
|
|
12
12
|
def pods
|
13
13
|
@pods ||= traverse(@specs_root).flatten.map do |pod_path|
|
14
|
-
pod = Pod.new(
|
14
|
+
pod = Pod.new(pod_path)
|
15
15
|
@whitelist.any? && !@whitelist.include?(pod.name) ? nil : pod
|
16
16
|
end.compact
|
17
17
|
end
|
@@ -24,7 +24,7 @@ class Specs
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def git
|
27
|
-
@git ||= Git.new(
|
27
|
+
@git ||= Git.new(@path)
|
28
28
|
end
|
29
29
|
|
30
30
|
private
|
@@ -43,4 +43,4 @@ class Specs
|
|
43
43
|
pods
|
44
44
|
end
|
45
45
|
|
46
|
-
end
|
46
|
+
end
|
data/lib/updater/synchronize.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'open-uri'
|
2
|
+
require 'openssl'
|
2
3
|
|
3
4
|
module PodSynchronize
|
4
5
|
class Command
|
@@ -18,15 +19,15 @@ module PodSynchronize
|
|
18
19
|
raise Informative, "Please specify a valid CONFIG path" unless @yml_path
|
19
20
|
end
|
20
21
|
|
21
|
-
def setup(temp_path
|
22
|
-
@config = Configuration.new(
|
23
|
-
@master_specs = Specs.new(
|
24
|
-
@internal_specs = Specs.new(
|
22
|
+
def setup(temp_path)
|
23
|
+
@config = Configuration.new(@yml_path)
|
24
|
+
@master_specs = Specs.new(File.join(temp_path, 'master'), dependencies, 'Specs')
|
25
|
+
@internal_specs = Specs.new(File.join(temp_path, 'local'), [], '.')
|
25
26
|
end
|
26
27
|
|
27
28
|
def bootstrap
|
28
|
-
@internal_specs.git.clone(
|
29
|
-
@master_specs.git.clone(
|
29
|
+
@internal_specs.git.clone(@config.mirror.specs_push_url)
|
30
|
+
@master_specs.git.clone(@config.master_repo, '. --depth 1')
|
30
31
|
end
|
31
32
|
|
32
33
|
def update_specs
|
@@ -40,7 +41,7 @@ module PodSynchronize
|
|
40
41
|
end
|
41
42
|
pod.save
|
42
43
|
end
|
43
|
-
@internal_specs.git.commit(
|
44
|
+
@internal_specs.git.commit(commit_message)
|
44
45
|
@internal_specs.git.push
|
45
46
|
end
|
46
47
|
|
@@ -49,18 +50,18 @@ module PodSynchronize
|
|
49
50
|
"Update #{time_str}"
|
50
51
|
end
|
51
52
|
|
52
|
-
def update_sources(temp_path
|
53
|
+
def update_sources(temp_path)
|
53
54
|
@master_specs.pods.each do |pod|
|
54
55
|
pod.git.path = File.join(temp_path, 'source_cache', pod.name)
|
55
|
-
pod.git.clone(
|
56
|
+
pod.git.clone(pod.git_source, ". --bare")
|
56
57
|
pod.git.create_github_repo(
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
58
|
+
@config.mirror.github.access_token,
|
59
|
+
@config.mirror.github.organisation,
|
60
|
+
pod.name,
|
61
|
+
@config.mirror.github.endpoint
|
61
62
|
)
|
62
|
-
pod.git.set_origin(
|
63
|
-
pod.git.push(
|
63
|
+
pod.git.set_origin("#{@config.mirror.source_push_url}/#{pod.name}.git")
|
64
|
+
pod.git.push(nil, '--mirror')
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
@@ -75,15 +76,17 @@ module PodSynchronize
|
|
75
76
|
|
76
77
|
pods_dependencies.flatten!.uniq!
|
77
78
|
|
78
|
-
pods_dependencies.reject! { |dependency| @config.excluded_pods.include? dependency }
|
79
|
+
pods_dependencies.reject! { |dependency| @config.excluded_pods.include? dependency } unless @config.excluded_pods.nil?
|
80
|
+
|
81
|
+
pods_dependencies
|
79
82
|
end
|
80
83
|
|
81
84
|
def run
|
82
85
|
Dir.mktmpdir do |dir|
|
83
|
-
self.setup(
|
86
|
+
self.setup(dir)
|
84
87
|
self.bootstrap
|
85
88
|
self.update_specs
|
86
|
-
self.update_sources(
|
89
|
+
self.update_sources(dir)
|
87
90
|
end
|
88
91
|
end
|
89
92
|
end
|
data/lib/updater/version.rb
CHANGED
@@ -4,7 +4,7 @@ class Version
|
|
4
4
|
attr_reader :path, :version
|
5
5
|
attr_accessor :contents
|
6
6
|
|
7
|
-
def initialize(path
|
7
|
+
def initialize(path)
|
8
8
|
@path = path
|
9
9
|
@version = @path.split(File::SEPARATOR).last
|
10
10
|
@contents = fetch_podspec
|
@@ -35,4 +35,4 @@ class Version
|
|
35
35
|
JSON.parse(file)
|
36
36
|
end
|
37
37
|
|
38
|
-
end
|
38
|
+
end
|
data/pod-synchronize.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
Gem::Specification.new do |spec|
|
3
3
|
spec.name = "pod-synchronize"
|
4
|
-
spec.version = "0.
|
4
|
+
spec.version = "0.5.0"
|
5
5
|
spec.authors = ["Matthias Männich", "Piet Brauer", "Renzo Crisostomo"]
|
6
6
|
spec.email = ["matthias.maennich@xing.com", "piet.brauer@xing.com", "renzo.crisostomo@xing.com"]
|
7
7
|
spec.summary = %q{Mirrors CocoaPods specs}
|
@@ -19,4 +19,6 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.add_development_dependency "bundler", "~> 1.7"
|
21
21
|
spec.add_development_dependency "rake", "~> 10.0"
|
22
|
+
|
23
|
+
spec.required_ruby_version = '>= 2.0.0'
|
22
24
|
end
|
data/spec/configuration_spec.rb
CHANGED
@@ -2,17 +2,17 @@ describe Configuration do
|
|
2
2
|
|
3
3
|
describe "#initialize" do
|
4
4
|
it "loads the yaml config at the specified path" do
|
5
|
-
config = Configuration.new(
|
5
|
+
config = Configuration.new(File.join('spec', 'fixtures', 'config.yml'))
|
6
6
|
expect(config.yaml).to_not be_empty
|
7
7
|
end
|
8
8
|
|
9
9
|
it "throws an exception if the file at the path does not exist" do
|
10
|
-
expect { Configuration.new(
|
10
|
+
expect { Configuration.new('invalid/path') }.to raise_exception
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
before :all do
|
15
|
-
@config = Configuration.new(
|
15
|
+
@config = Configuration.new('spec/fixtures/config.yml')
|
16
16
|
end
|
17
17
|
|
18
18
|
it '#master_repo should exist' do
|
data/spec/git_spec.rb
CHANGED
@@ -3,7 +3,7 @@ describe Git do
|
|
3
3
|
|
4
4
|
before :all do
|
5
5
|
@specs_path = File.join('spec', 'fixtures', 'specs')
|
6
|
-
@specs = Specs.new(
|
6
|
+
@specs = Specs.new(@specs_path)
|
7
7
|
end
|
8
8
|
|
9
9
|
describe "::commit" do
|
@@ -13,7 +13,7 @@ describe Git do
|
|
13
13
|
message = "Become a programmer, they said. It'll be fun, they said."
|
14
14
|
expect(class_under_test).to receive(:system).with("git add --all")
|
15
15
|
expect(class_under_test).to receive(:system).with("git commit -m '#{message}'")
|
16
|
-
class_under_test.commit(message
|
16
|
+
class_under_test.commit(message)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -22,10 +22,10 @@ describe Git do
|
|
22
22
|
class_under_test = @specs.git
|
23
23
|
expect(class_under_test).to receive(:system).with("curl https://github.com/api/v3/orgs/ios-pods-external/repos?access_token=123 -d '{\"name\":\"mega-pod\"}'")
|
24
24
|
class_under_test.create_github_repo(
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
'123',
|
26
|
+
'ios-pods-external',
|
27
|
+
'mega-pod',
|
28
|
+
'https://github.com/api/v3'
|
29
29
|
)
|
30
30
|
end
|
31
31
|
end
|
@@ -40,21 +40,21 @@ describe Git do
|
|
40
40
|
it 'push on custom remote "production"' do
|
41
41
|
class_under_test = @specs.git
|
42
42
|
expect(class_under_test).to receive(:system).with("git push production")
|
43
|
-
class_under_test.push(
|
43
|
+
class_under_test.push('production')
|
44
44
|
end
|
45
45
|
|
46
46
|
it 'push on custom remote with options' do
|
47
47
|
class_under_test = @specs.git
|
48
48
|
expect(class_under_test).to receive(:system).with("git push develop --force")
|
49
|
-
class_under_test.push(
|
49
|
+
class_under_test.push('develop', '--force')
|
50
50
|
end
|
51
51
|
|
52
52
|
it 'push on default remote with options' do
|
53
53
|
class_under_test = @specs.git
|
54
54
|
expect(class_under_test).to receive(:system).with("git push origin master --force")
|
55
|
-
class_under_test.push(
|
55
|
+
class_under_test.push('origin master', '--force')
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
-
end
|
60
|
+
end
|
data/spec/pod_spec.rb
CHANGED
@@ -5,28 +5,28 @@ describe Pod do
|
|
5
5
|
|
6
6
|
describe '::new' do
|
7
7
|
it 'init with podspec dir' do
|
8
|
-
class_under_test = Pod.new(
|
8
|
+
class_under_test = Pod.new(@path_to_podspecs_dir)
|
9
9
|
expect(class_under_test.path).to eql(@path_to_podspecs_dir)
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
13
|
describe '#name' do
|
14
14
|
it 'gets the correct pod name' do
|
15
|
-
class_under_test = Pod.new(
|
15
|
+
class_under_test = Pod.new(@path_to_podspecs_dir)
|
16
16
|
expect(class_under_test.name).to eql("XNGAPIClient")
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
describe '#source' do
|
21
21
|
it 'gets the correct source url' do
|
22
|
-
class_under_test = Pod.new(
|
22
|
+
class_under_test = Pod.new(@path_to_podspecs_dir)
|
23
23
|
expect(class_under_test.git_source).to eql("https://github.com/xing/XNGAPIClient.git")
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
27
|
describe '#versions' do
|
28
28
|
it 'should return all versions for that pod' do
|
29
|
-
class_under_test = Pod.new(
|
29
|
+
class_under_test = Pod.new(@path_to_podspecs_dir)
|
30
30
|
versions = class_under_test.versions
|
31
31
|
expected_versions = [
|
32
32
|
'0.1.0', '0.2.0', '0.2.1', '0.2.2', '0.3.0', '0.3.1',
|
@@ -40,15 +40,15 @@ describe Pod do
|
|
40
40
|
|
41
41
|
describe '#git' do
|
42
42
|
it 'should add the pod path as the default git path' do
|
43
|
-
class_under_test = Pod.new(
|
43
|
+
class_under_test = Pod.new(@path_to_podspecs_dir)
|
44
44
|
expect(class_under_test.git.path).to eql(@path_to_podspecs_dir)
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'should be able to set a custom path' do
|
48
|
-
class_under_test = Pod.new(
|
48
|
+
class_under_test = Pod.new(@path_to_podspecs_dir)
|
49
49
|
expected_path = "./some/other/path"
|
50
50
|
class_under_test.git.path = expected_path
|
51
51
|
expect(class_under_test.git.path).to eql(expected_path)
|
52
52
|
end
|
53
53
|
end
|
54
|
-
end
|
54
|
+
end
|
data/spec/specs_spec.rb
CHANGED
@@ -7,40 +7,40 @@ describe Specs do
|
|
7
7
|
|
8
8
|
describe '::new' do
|
9
9
|
it 'should init with a path' do
|
10
|
-
class_under_test = Specs.new(
|
10
|
+
class_under_test = Specs.new(@specs_path)
|
11
11
|
expect(class_under_test.path).to eql(@specs_path)
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
describe '#pods' do
|
16
16
|
it 'should fetch all pods' do
|
17
|
-
class_under_test = Specs.new(
|
17
|
+
class_under_test = Specs.new(@specs_path)
|
18
18
|
expect(class_under_test.pods.count).to eql(3)
|
19
19
|
expect(class_under_test.pods.map(&:name)).to eql(['NBNRealmBrowser', 'XNGAPIClient', 'XNGOAuth1Client'])
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'should fetch 1 pod from whitelist' do
|
23
|
-
class_under_test = Specs.new(
|
23
|
+
class_under_test = Specs.new(@specs_path, ['XNGAPIClient'])
|
24
24
|
expect(class_under_test.pods.count).to eql(1)
|
25
25
|
expect(class_under_test.pods.map(&:name)).to eql(['XNGAPIClient'])
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'should fetch 2 pods from whitelist' do
|
29
|
-
class_under_test = Specs.new(
|
29
|
+
class_under_test = Specs.new(@specs_path, ['XNGAPIClient', 'XNGOAuth1Client'])
|
30
30
|
expect(class_under_test.pods.count).to eql(2)
|
31
31
|
expect(class_under_test.pods.map(&:name)).to eql(['XNGAPIClient', 'XNGOAuth1Client'])
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'should fetch no pods that are not on the whitelist' do
|
35
|
-
class_under_test = Specs.new(
|
35
|
+
class_under_test = Specs.new(@specs_path, ['PodThatDoesntExist'])
|
36
36
|
expect(class_under_test.pods.count).to eql(0)
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
40
|
describe '#merge_pods' do
|
41
41
|
it 'should add all pods from one spec to another' do
|
42
|
-
specs = Specs.new(
|
43
|
-
other_specs = Specs.new(
|
42
|
+
specs = Specs.new(@specs_path)
|
43
|
+
other_specs = Specs.new(@other_specs_path, ['NBNPhotoChooser'])
|
44
44
|
expected_path = File.join(@other_specs_path, 'NBNPhotoChooser')
|
45
45
|
|
46
46
|
expect(FileUtils).to receive(:cp_r).with(expected_path, specs.path)
|
@@ -48,4 +48,4 @@ describe Specs do
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
end
|
51
|
+
end
|
data/spec/synchronize_spec.rb
CHANGED
@@ -2,7 +2,7 @@ describe PodSynchronize::Command::Synchronize do
|
|
2
2
|
|
3
3
|
before :all do
|
4
4
|
@sync = PodSynchronize::Command::Synchronize.new(CLAide::ARGV.new(['./spec/fixtures/api_client_config.yml']))
|
5
|
-
Dir.mktmpdir { |dir| @sync.setup(
|
5
|
+
Dir.mktmpdir { |dir| @sync.setup(dir) }
|
6
6
|
end
|
7
7
|
|
8
8
|
describe "#dependencies" do
|
data/spec/version_spec.rb
CHANGED
@@ -5,7 +5,7 @@ describe Version do
|
|
5
5
|
|
6
6
|
describe '::new' do
|
7
7
|
it 'initializes with a versions dir' do
|
8
|
-
version = Version.new(
|
8
|
+
version = Version.new(@path_to_version_dir)
|
9
9
|
|
10
10
|
expect(version.path).to eql(@path_to_version_dir)
|
11
11
|
end
|
@@ -13,7 +13,7 @@ describe Version do
|
|
13
13
|
|
14
14
|
describe '#podspec_path' do
|
15
15
|
it 'gets the corred podspec filepath' do
|
16
|
-
version = Version.new(
|
16
|
+
version = Version.new(@path_to_version_dir)
|
17
17
|
expected_path = File.join(@path_to_version_dir, 'XNGAPIClient.podspec.json')
|
18
18
|
actual_path = version.send(:podspec_path)
|
19
19
|
expect(actual_path).to eql(expected_path)
|
@@ -22,7 +22,7 @@ describe Version do
|
|
22
22
|
|
23
23
|
describe '#contents' do
|
24
24
|
it 'gets the fetches the podspec correctly' do
|
25
|
-
version = Version.new(
|
25
|
+
version = Version.new(@path_to_version_dir)
|
26
26
|
expected_contents = {
|
27
27
|
"name"=>"XNGAPIClient",
|
28
28
|
"version"=>"1.2.0",
|
@@ -42,4 +42,4 @@ describe Version do
|
|
42
42
|
expect(version.contents).to eql(expected_contents)
|
43
43
|
end
|
44
44
|
end
|
45
|
-
end
|
45
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pod-synchronize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthias Männich
|
@@ -10,62 +10,62 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2017-06-20 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: claide
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 0.8.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - ~>
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: 0.8.1
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: colored
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - ~>
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: '1.2'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - ~>
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '1.2'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: bundler
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ~>
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '1.7'
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - ~>
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '1.7'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: rake
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- -
|
61
|
+
- - ~>
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '10.0'
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - ~>
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '10.0'
|
71
71
|
description: Synchronizes the public CocoaPods Specs repo with your internal mirror.
|
@@ -78,10 +78,10 @@ executables:
|
|
78
78
|
extensions: []
|
79
79
|
extra_rdoc_files: []
|
80
80
|
files:
|
81
|
-
-
|
82
|
-
-
|
83
|
-
-
|
84
|
-
-
|
81
|
+
- .gitignore
|
82
|
+
- .rspec
|
83
|
+
- .simplecov
|
84
|
+
- .travis.yml
|
85
85
|
- Gemfile
|
86
86
|
- Gemfile.lock
|
87
87
|
- LICENSE
|
@@ -141,17 +141,17 @@ require_paths:
|
|
141
141
|
- lib
|
142
142
|
required_ruby_version: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
|
-
- -
|
144
|
+
- - '>='
|
145
145
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
146
|
+
version: 2.0.0
|
147
147
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
|
-
- -
|
149
|
+
- - '>='
|
150
150
|
- !ruby/object:Gem::Version
|
151
151
|
version: '0'
|
152
152
|
requirements: []
|
153
153
|
rubyforge_project:
|
154
|
-
rubygems_version: 2.6.
|
154
|
+
rubygems_version: 2.6.12
|
155
155
|
signing_key:
|
156
156
|
specification_version: 4
|
157
157
|
summary: Mirrors CocoaPods specs
|