vendor 0.0.2 → 0.0.3
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.
- data/Gemfile.lock +1 -1
- data/Readme.markdown +8 -7
- data/lib/vendor/vendor_file/library/base.rb +1 -1
- data/lib/vendor/version.rb +1 -1
- data/lib/vendor/xcode/project.rb +6 -0
- data/spec/lib/vendor/vendor_file/library/base_spec.rb +35 -10
- data/spec/lib/vendor/xcode/project_spec.rb +8 -0
- metadata +17 -17
data/Gemfile.lock
CHANGED
data/Readme.markdown
CHANGED
@@ -125,16 +125,17 @@ running:
|
|
125
125
|
$ vendor library publish my_library.vendor
|
126
126
|
```
|
127
127
|
|
128
|
-
##
|
128
|
+
## What about CocoaPods?
|
129
129
|
|
130
130
|
During the early days of Vendor development, another dependency/package
|
131
131
|
manager called [CocoaPods](https://github.com/alloy/cocoapods) came on the seen. I had a look into the
|
132
|
-
project, but
|
133
|
-
|
134
|
-
|
135
|
-
|
132
|
+
project, but there were a few things that I didn't quite like.
|
133
|
+
I prefer all the source files for my dependencies to be stored in the project itself - not hidden in a static
|
134
|
+
library. I tend to tweak and read through those libraries, so having
|
135
|
+
the source readily available is handy. I also don't like the approach of requiring all the libraries to
|
136
|
+
be commited to a centralized git repo (similar to [homebrew](https://github.com/mxcl/homebrew)).
|
136
137
|
I think it puts alot of pressure on the maintainer to make sure that he reviews all the libs and that they're
|
137
|
-
not doing anything smelly.
|
138
|
+
not doing anything smelly. It also fattens the git repo :D
|
138
139
|
|
139
140
|
In saying that, trying to solve the problem of iOS dependency
|
140
141
|
management, is tough, and a big shout out to anyone that tries to solve
|
@@ -148,7 +149,7 @@ strengths of Vendor.
|
|
148
149
|
|
149
150
|
I also like the idea of a central site where people can upload their own
|
150
151
|
libraries - just like Rubygems. There isn't much of an ecosystem
|
151
|
-
around iOS development, just lots of isolated Github repos. I hope
|
152
|
+
around open source iOS/OSX development, just lots of isolated Github repos and blog posts. I hope
|
152
153
|
Vendor can fix this.
|
153
154
|
|
154
155
|
## History
|
data/lib/vendor/version.rb
CHANGED
data/lib/vendor/xcode/project.rb
CHANGED
@@ -81,6 +81,9 @@ module Vendor::XCode
|
|
81
81
|
:id => Vendor::XCode::Proxy::Base.generate_id,
|
82
82
|
:attributes => { 'path' => name, 'sourceTree' => '<group>', 'children' => [] })
|
83
83
|
|
84
|
+
# Set the parent
|
85
|
+
group.parent = current
|
86
|
+
|
84
87
|
@objects_by_id[group.id] = group
|
85
88
|
|
86
89
|
# This is hacky
|
@@ -183,6 +186,9 @@ module Vendor::XCode
|
|
183
186
|
:id => Vendor::XCode::Proxy::Base.generate_id,
|
184
187
|
:attributes => attributes)
|
185
188
|
|
189
|
+
# Set the parent
|
190
|
+
file.parent = group
|
191
|
+
|
186
192
|
# Add the file id to the groups children
|
187
193
|
group.attributes['children'] << file.id
|
188
194
|
|
@@ -7,6 +7,10 @@ describe Vendor::VendorFile::Library::Base do
|
|
7
7
|
let(:temp_path) { TempProject.create(File.join(PROJECT_RESOURCE_PATH, "UtilityApplication")) }
|
8
8
|
let(:project) { Vendor::XCode::Project.new(File.join(temp_path, "UtilityApplication.xcodeproj")) }
|
9
9
|
|
10
|
+
let(:lib_with_no_manifest_or_vendorspec) { Vendor::VendorFile::Library::Base.new(:name => "BingMapsIOS", :require => "MapControl") }
|
11
|
+
let(:lib_with_manifest) { Vendor::VendorFile::Library::Base.new(:name => "DKBenchmark-Manifest") }
|
12
|
+
let(:lib_with_vendorspec) { Vendor::VendorFile::Library::Base.new(:name => "DKBenchmark-Vendorspec") }
|
13
|
+
|
10
14
|
it "should have a name attribute" do
|
11
15
|
lib.name = "lib"
|
12
16
|
|
@@ -21,17 +25,42 @@ describe Vendor::VendorFile::Library::Base do
|
|
21
25
|
|
22
26
|
describe "#install" do
|
23
27
|
|
28
|
+
before :each do
|
29
|
+
Vendor.stub(:library_path).and_return CACHED_VENDOR_RESOURCE_PATH
|
30
|
+
|
31
|
+
lib_with_manifest.install project
|
32
|
+
end
|
33
|
+
|
24
34
|
context "with an existing installation" do
|
25
35
|
|
26
|
-
|
36
|
+
before :each do
|
37
|
+
# Install it again
|
38
|
+
lib_with_manifest.install project
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should add the group to the project" do
|
42
|
+
group = project.find_group("Vendor/DKBenchmark-Manifest")
|
43
|
+
group.should_not be_nil
|
44
|
+
end
|
27
45
|
|
28
|
-
it "should add the
|
46
|
+
it "should add the files to the project" do
|
47
|
+
children = project.find_group("Vendor/DKBenchmark-Manifest").children
|
48
|
+
children.length.should == 2
|
49
|
+
end
|
29
50
|
|
30
51
|
end
|
31
52
|
|
32
53
|
context "with a fresh installation" do
|
33
54
|
|
34
|
-
it "should add the
|
55
|
+
it "should add the group to the project" do
|
56
|
+
group = project.find_group("Vendor/DKBenchmark-Manifest")
|
57
|
+
group.should_not be_nil
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should add the files to the project" do
|
61
|
+
children = project.find_group("Vendor/DKBenchmark-Manifest").children
|
62
|
+
children.length.should == 2
|
63
|
+
end
|
35
64
|
|
36
65
|
end
|
37
66
|
|
@@ -47,17 +76,13 @@ describe Vendor::VendorFile::Library::Base do
|
|
47
76
|
|
48
77
|
describe "#files" do
|
49
78
|
|
50
|
-
let(:no_manifest_or_vendorspec) { Vendor::VendorFile::Library::Base.new(:name => "BingMapsIOS", :require => "MapControl") }
|
51
|
-
let(:with_manifest) { Vendor::VendorFile::Library::Base.new(:name => "DKBenchmark-Manifest") }
|
52
|
-
let(:with_vendorspec) { Vendor::VendorFile::Library::Base.new(:name => "DKBenchmark-Vendorspec") }
|
53
|
-
|
54
79
|
before :each do
|
55
80
|
Vendor.stub(:library_path).and_return CACHED_VENDOR_RESOURCE_PATH
|
56
81
|
end
|
57
82
|
|
58
83
|
context "with no manifest or vendorspec" do
|
59
84
|
|
60
|
-
let(:files) {
|
85
|
+
let(:files) { lib_with_no_manifest_or_vendorspec.files }
|
61
86
|
let(:names) { files.map { |file| File.basename(file) } }
|
62
87
|
|
63
88
|
it "should return the correct files" do
|
@@ -89,7 +114,7 @@ describe Vendor::VendorFile::Library::Base do
|
|
89
114
|
|
90
115
|
context "with a vendorspec" do
|
91
116
|
|
92
|
-
let(:files) {
|
117
|
+
let(:files) { lib_with_vendorspec.files }
|
93
118
|
let(:names) { files.map { |file| File.basename(file) } }
|
94
119
|
|
95
120
|
it "should return the correct files" do
|
@@ -117,7 +142,7 @@ describe Vendor::VendorFile::Library::Base do
|
|
117
142
|
|
118
143
|
context "with a manifest" do
|
119
144
|
|
120
|
-
let(:files) {
|
145
|
+
let(:files) { lib_with_manifest.files }
|
121
146
|
let(:names) { files.map { |file| File.basename(file) } }
|
122
147
|
|
123
148
|
it "should return the correct files" do
|
@@ -139,6 +139,10 @@ describe Vendor::XCode::Project do
|
|
139
139
|
@here_group.isa.should == 'PBXGroup'
|
140
140
|
end
|
141
141
|
|
142
|
+
it "should set the parent" do
|
143
|
+
@here_group.parent.should == @inside_group
|
144
|
+
end
|
145
|
+
|
142
146
|
end
|
143
147
|
|
144
148
|
end
|
@@ -268,6 +272,10 @@ describe Vendor::XCode::Project do
|
|
268
272
|
group.children[1].should == @second_file_added
|
269
273
|
end
|
270
274
|
|
275
|
+
it "should set the parent" do
|
276
|
+
@first_file_added.parent.should == @temp_project.find_group("Controllers/SecondViewController")
|
277
|
+
end
|
278
|
+
|
271
279
|
it 'should still save' do
|
272
280
|
@temp_project.save
|
273
281
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vendor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-11-02 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70306350501080 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70306350501080
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: fakeweb
|
27
|
-
requirement: &
|
27
|
+
requirement: &70306350500220 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70306350500220
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: ripl
|
38
|
-
requirement: &
|
38
|
+
requirement: &70306350498880 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70306350498880
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &70306350496500 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70306350496500
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: json
|
60
|
-
requirement: &
|
60
|
+
requirement: &70306350495200 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70306350495200
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: thor
|
71
|
-
requirement: &
|
71
|
+
requirement: &70306350494060 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70306350494060
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rubyzip
|
82
|
-
requirement: &
|
82
|
+
requirement: &70306350491180 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70306350491180
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rest-client
|
93
|
-
requirement: &
|
93
|
+
requirement: &70306350490260 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70306350490260
|
102
102
|
description: Vendor manages an application's dependencies
|
103
103
|
email:
|
104
104
|
- me@keithpitt.com
|