vendor 0.0.4 → 0.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.
- data/CHANGELOG.md +22 -0
- data/Gemfile.lock +9 -1
- data/Guardfile +12 -0
- data/LICENSE +2 -0
- data/Readme.markdown +39 -23
- data/TODO.md +26 -0
- data/VERSION +1 -0
- data/lib/vendor.rb +6 -0
- data/lib/vendor/api.rb +61 -7
- data/lib/vendor/cli/app.rb +4 -4
- data/lib/vendor/cli/console.rb +7 -0
- data/lib/vendor/spec.rb +98 -0
- data/lib/vendor/templates/Vendorfile +3 -1
- data/lib/vendor/templates/vendorspec +15 -10
- data/lib/vendor/vendor_file.rb +5 -4
- data/lib/vendor/vendor_file/dependency_graph.rb +135 -0
- data/lib/vendor/vendor_file/dsl.rb +2 -0
- data/lib/vendor/vendor_file/library/base.rb +178 -29
- data/lib/vendor/vendor_file/library/git.rb +5 -1
- data/lib/vendor/vendor_file/library/local.rb +11 -1
- data/lib/vendor/vendor_file/library/remote.rb +134 -2
- data/lib/vendor/vendor_file/loader.rb +13 -11
- data/lib/vendor/vendor_spec/builder.rb +4 -7
- data/lib/vendor/version.rb +172 -1
- data/lib/vendor/xcode/project.rb +213 -4
- data/lib/vendor/xcode/proxy.rb +1 -0
- data/lib/vendor/xcode/proxy/pbx_frameworks_build_phase.rb +6 -0
- data/lib/vendor/xcode/proxy/pbx_reference_proxy.rb +7 -0
- data/lib/vendor/xcode/proxy/pbx_resources_build_phase.rb +8 -0
- data/lib/vendor/xcode/proxy/pbx_shell_script_build_phase.rb +8 -0
- data/lib/vendor/xcode/proxy/pbx_sources_build_phase.rb +6 -0
- data/spec/lib/vendor/api_spec.rb +54 -0
- data/spec/lib/vendor/spec_spec.rb +121 -0
- data/spec/lib/vendor/vendor_file/dependency_graph_spec.rb +129 -0
- data/spec/lib/vendor/vendor_file/library/base_spec.rb +174 -14
- data/spec/lib/vendor/vendor_file/library/remote_spec.rb +154 -4
- data/spec/lib/vendor/vendor_file/loader_spec.rb +4 -2
- data/spec/lib/vendor/vendor_spec/builder_spec.rb +2 -2
- data/spec/lib/vendor/version_spec.rb +168 -0
- data/spec/lib/vendor/xcode/project_spec.rb +175 -4
- data/spec/lib/vendor_spec.rb +15 -0
- data/spec/spec_helper.rb +3 -2
- data/spec/support/api_stubs.rb +57 -0
- data/spec/support/resources/cache/base/{DKBenchmark-Manifest → DKBenchmark-0.1-Manifest}/data/DKBenchmark.h +0 -0
- data/spec/support/resources/cache/base/{DKBenchmark-Manifest → DKBenchmark-0.1-Manifest}/data/DKBenchmark.m +0 -0
- data/spec/support/resources/cache/base/DKBenchmark-0.1-Manifest/vendor.json +1 -0
- data/spec/support/resources/cache/base/{DKBenchmark-Vendorspec → DKBenchmark-0.1-Nothing}/DKBenchmark.h +0 -0
- data/spec/support/resources/cache/base/{DKBenchmark-Vendorspec → DKBenchmark-0.1-Nothing}/DKBenchmark.m +0 -0
- data/spec/support/resources/cache/base/DKBenchmark-0.1-Nothing/DKBenchmark.vendorspec +16 -0
- data/spec/support/resources/cache/base/DKBenchmark-0.1-Vendorspec/DKBenchmark.h +18 -0
- data/spec/support/resources/cache/base/DKBenchmark-0.1-Vendorspec/DKBenchmark.m +73 -0
- data/spec/support/resources/cache/base/DKBenchmark-0.1-Vendorspec/DKBenchmark.vendorspec +24 -0
- data/spec/support/resources/projects/MultipleTargets/MultipleTargets.xcodeproj/project.pbxproj +624 -0
- data/spec/support/resources/projects/RestKitProject/RestKitProject.xcodeproj/project.pbxproj +479 -0
- data/spec/support/resources/projects/UtilityApplication/UtilityApplication.xcodeproj/project.pbxproj +16 -7
- data/spec/support/resources/vendors/DKBenchmark/DKBenchmark.vendorspec +24 -8
- data/spec/support/resources/vendors/DKBenchmarkUnsafe/DKBenchmark.vendorspec +17 -8
- data/vendor.gemspec +4 -2
- metadata +93 -39
- data/lib/vendor/vendor_spec/dsl.rb +0 -39
- data/lib/vendor/vendor_spec/loader.rb +0 -23
- data/spec/lib/vendor/vendor_spec/dsl_spec.rb +0 -67
- data/spec/lib/vendor/vendor_spec/loader_spec.rb +0 -41
- data/spec/support/resources/cache/base/DKBenchmark-Manifest/vendor.json +0 -1
- data/spec/support/resources/cache/base/DKBenchmark-Vendorspec/DKBenchmark.vendorspec +0 -11
@@ -1,39 +0,0 @@
|
|
1
|
-
module Vendor
|
2
|
-
module VendorSpec
|
3
|
-
|
4
|
-
class DSL
|
5
|
-
|
6
|
-
attr_reader :vendor_spec
|
7
|
-
|
8
|
-
def initialize
|
9
|
-
@vendor_spec = Hash.new
|
10
|
-
end
|
11
|
-
|
12
|
-
def method_missing(name, *args)
|
13
|
-
if name.to_s.match(/\=$/) || args.length > 0
|
14
|
-
without_equals = name.to_s.gsub(/=$/, '')
|
15
|
-
|
16
|
-
@vendor_spec[without_equals.to_sym] = args.length == 1 ? args.first : args
|
17
|
-
else
|
18
|
-
@vendor_spec[name.to_sym]
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def validate!
|
23
|
-
[ :name, :version, :email, :files ].each do |key|
|
24
|
-
value = @vendor_spec[key]
|
25
|
-
|
26
|
-
if value.respond_to?(:empty?) ? value.empty? : !value
|
27
|
-
raise StandardError.new("Specification is missing the `#{key}` option")
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def to_json
|
33
|
-
vendor_spec.to_json
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module Vendor
|
2
|
-
module VendorSpec
|
3
|
-
|
4
|
-
class Loader
|
5
|
-
|
6
|
-
attr_reader :dsl
|
7
|
-
|
8
|
-
def initialize
|
9
|
-
@dsl = Vendor::VendorSpec::DSL.new
|
10
|
-
end
|
11
|
-
|
12
|
-
def vendor(&block)
|
13
|
-
@dsl.instance_eval &block
|
14
|
-
end
|
15
|
-
|
16
|
-
def load(filename)
|
17
|
-
@dsl.instance_eval(File.read(filename), filename)
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Vendor::VendorSpec::DSL do
|
4
|
-
|
5
|
-
let! (:dsl) { Vendor::VendorSpec::DSL.new }
|
6
|
-
|
7
|
-
context '#vendor_spec' do
|
8
|
-
|
9
|
-
it 'should load all the properties into the vendor spec' do
|
10
|
-
dsl.foo "foo"
|
11
|
-
dsl.cheese "is good"
|
12
|
-
|
13
|
-
dsl.vendor_spec.should == { :foo => "foo", :cheese => "is good" }
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
context '#validate' do
|
19
|
-
|
20
|
-
before :each do
|
21
|
-
dsl.name = "Vendor"
|
22
|
-
dsl.files = "Something"
|
23
|
-
dsl.email = "foo@bar.com"
|
24
|
-
dsl.version = "0.1"
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'should thorw an error if no name is defined' do
|
28
|
-
expect do
|
29
|
-
dsl.name = nil
|
30
|
-
dsl.validate!
|
31
|
-
end.should raise_error("Specification is missing the `name` option")
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'should thorw an error if no email is defined' do
|
35
|
-
expect do
|
36
|
-
dsl.email = nil
|
37
|
-
dsl.validate!
|
38
|
-
end.should raise_error("Specification is missing the `email` option")
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'should thorw an error if no version is defined' do
|
42
|
-
expect do
|
43
|
-
dsl.version = nil
|
44
|
-
dsl.validate!
|
45
|
-
end.should raise_error("Specification is missing the `version` option")
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'should thorw an error if no files are defined' do
|
49
|
-
expect do
|
50
|
-
dsl.files = nil
|
51
|
-
dsl.validate!
|
52
|
-
end.should raise_error("Specification is missing the `files` option")
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
|
57
|
-
context '#to_json' do
|
58
|
-
|
59
|
-
it 'should return the vendor spec as a JSON string' do
|
60
|
-
dsl.foo "foo"
|
61
|
-
|
62
|
-
dsl.to_json.should == dsl.vendor_spec.to_json
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Vendor::VendorSpec::Loader do
|
4
|
-
|
5
|
-
let (:loader) { Vendor::VendorSpec::Loader.new }
|
6
|
-
|
7
|
-
context "#initialize" do
|
8
|
-
|
9
|
-
it "should create a dsl" do
|
10
|
-
loader.dsl.should be_kind_of(Vendor::VendorSpec::DSL)
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
context "#vendor" do
|
16
|
-
|
17
|
-
it "should allow you to pass a block and define vendor spec properties" do
|
18
|
-
loader.vendor do
|
19
|
-
name "Something"
|
20
|
-
files [ "Foo", "Bar" ]
|
21
|
-
end
|
22
|
-
|
23
|
-
loader.dsl.name.should == "Something"
|
24
|
-
loader.dsl.files.should == [ "Foo", "Bar" ]
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
context "#load" do
|
30
|
-
|
31
|
-
it "should allow you to load from a file" do
|
32
|
-
loader.load File.join(VENDOR_RESOURCE_PATH, "DKBenchmark", "DKBenchmark.vendorspec")
|
33
|
-
|
34
|
-
loader.dsl.name.should == "DKBenchmark"
|
35
|
-
loader.dsl.authors.should == "keithpitt"
|
36
|
-
loader.dsl.email.should == "me@keithpitt.com"
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
{"name":"DKBenchmark","version":"0.1","authors":"keithpitt","email":"me@keithpitt.com","homepage":"http://www.keithpitt.com","description":"Easy benchmarking in Objective-C using blocks","github":"https://github.com/keithpitt/DKBenchmark","files":["DKBenchmark.h","DKBenchmark.m"]}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
name "DKBenchmark"
|
2
|
-
version "0.1"
|
3
|
-
|
4
|
-
authors "keithpitt"
|
5
|
-
email "me@keithpitt.com"
|
6
|
-
homepage "http://www.keithpitt.com"
|
7
|
-
description "Easy benchmarking in Objective-C using blocks"
|
8
|
-
|
9
|
-
github "https://github.com/keithpitt/DKBenchmark"
|
10
|
-
|
11
|
-
files [ "DKBenchmark.h", "DKBenchmark.m" ]
|