librarian 0.0.25 → 0.0.26
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/.gitignore +4 -0
- data/CHANGELOG.md +21 -0
- data/README.md +6 -1
- data/lib/librarian/action/persist_resolution_mixin.rb +51 -0
- data/lib/librarian/action/resolve.rb +3 -38
- data/lib/librarian/action/update.rb +4 -38
- data/lib/librarian/chef/dsl.rb +1 -0
- data/lib/librarian/chef/source.rb +1 -0
- data/lib/librarian/chef/source/github.rb +27 -0
- data/lib/librarian/chef/source/site.rb +51 -51
- data/lib/librarian/cli.rb +31 -23
- data/lib/librarian/cli/manifest_presenter.rb +36 -22
- data/lib/librarian/dependency.rb +60 -0
- data/lib/librarian/environment.rb +13 -1
- data/lib/librarian/linter/source_linter.rb +55 -0
- data/lib/librarian/lockfile/parser.rb +39 -16
- data/lib/librarian/manifest.rb +8 -0
- data/lib/librarian/manifest_set.rb +5 -7
- data/lib/librarian/mock/source/mock.rb +4 -21
- data/lib/librarian/resolution.rb +1 -1
- data/lib/librarian/resolver.rb +15 -12
- data/lib/librarian/resolver/implementation.rb +166 -75
- data/lib/librarian/source/basic_api.rb +45 -0
- data/lib/librarian/source/git.rb +4 -22
- data/lib/librarian/source/git/repository.rb +1 -1
- data/lib/librarian/source/local.rb +0 -7
- data/lib/librarian/source/path.rb +4 -22
- data/lib/librarian/version.rb +1 -1
- data/librarian.gemspec +3 -3
- data/spec/functional/chef/source/site_spec.rb +150 -100
- data/spec/functional/source/git/repository_spec.rb +2 -1
- data/spec/{functional → integration}/chef/source/git_spec.rb +12 -3
- data/spec/integration/chef/source/site_spec.rb +217 -0
- data/spec/support/cli_macro.rb +4 -12
- data/spec/support/method_patch_macro.rb +30 -0
- data/spec/unit/config/database_spec.rb +8 -0
- data/spec/unit/dependency_spec.rb +176 -0
- data/spec/unit/environment_spec.rb +76 -7
- data/spec/unit/resolver_spec.rb +2 -2
- metadata +52 -46
data/spec/support/cli_macro.rb
CHANGED
@@ -63,19 +63,11 @@ module CliMacro
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def cli!(*args)
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
@exit_status = nil
|
66
|
+
@shell = FakeShell.new
|
67
|
+
@exit_status = Dir.chdir(pwd) do
|
68
|
+
described_class.with_environment do
|
69
|
+
described_class.returning_status do
|
71
70
|
described_class.start args, :shell => @shell
|
72
|
-
@exit_status = 0
|
73
|
-
rescue Librarian::Error => e
|
74
|
-
environment.ui.error e.message
|
75
|
-
environment.ui.debug e.backtrace.join("\n")
|
76
|
-
@exit_status = e.respond_to?(:status_code) ? e.status_code : 1
|
77
|
-
rescue Exception => e
|
78
|
-
@exit_status = 1
|
79
71
|
end
|
80
72
|
end
|
81
73
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "securerandom"
|
2
|
+
|
3
|
+
module MethodPatchMacro
|
4
|
+
|
5
|
+
def self.included(base)
|
6
|
+
base.extend ClassMethods
|
7
|
+
end
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
def with_module_method(mod, meth, &block)
|
11
|
+
tag = SecureRandom.hex(8)
|
12
|
+
orig_meth = "_#{tag}_#{meth}".to_sym
|
13
|
+
around do |example|
|
14
|
+
mod.module_eval do
|
15
|
+
alias_method orig_meth, meth
|
16
|
+
define_method meth, &block
|
17
|
+
end
|
18
|
+
begin
|
19
|
+
example.run
|
20
|
+
ensure
|
21
|
+
mod.module_eval do
|
22
|
+
alias_method meth, orig_meth
|
23
|
+
remove_method orig_meth
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -4,10 +4,18 @@ require "yaml"
|
|
4
4
|
|
5
5
|
require "fakefs/spec_helpers"
|
6
6
|
|
7
|
+
require "support/method_patch_macro"
|
8
|
+
|
7
9
|
require "librarian/config/database"
|
8
10
|
|
9
11
|
describe Librarian::Config::Database do
|
10
12
|
include FakeFS::SpecHelpers
|
13
|
+
include MethodPatchMacro
|
14
|
+
|
15
|
+
# FakeFS seems to need this because Kernel#Pathname was changed in 1.9.3-p286.
|
16
|
+
# It used to indicate the Pathname class by name, but now it references the
|
17
|
+
# Pathname class directly by object. FakeFS relies on the old behavior.
|
18
|
+
with_module_method(Kernel, :Pathname){|s| Pathname.new(s)}
|
11
19
|
|
12
20
|
def write_yaml!(path, *yamlables)
|
13
21
|
path = Pathname(path)
|
@@ -33,4 +33,180 @@ describe Librarian::Dependency do
|
|
33
33
|
|
34
34
|
end
|
35
35
|
|
36
|
+
describe "#consistent_with?" do
|
37
|
+
def req(s) described_class::Requirement.new(s) end
|
38
|
+
def self.assert_consistent(a, b)
|
39
|
+
/^(.+):(\d+):in `(.+)'$/ =~ caller.first
|
40
|
+
line = $2.to_i
|
41
|
+
|
42
|
+
title = "is consistent with #{a.inspect} and #{b.inspect}"
|
43
|
+
module_eval <<-CODE, __FILE__, line
|
44
|
+
it #{title.inspect} do
|
45
|
+
a, b = req(#{a.inspect}), req(#{b.inspect})
|
46
|
+
expect(a).to be_consistent_with(b)
|
47
|
+
expect(a).to_not be_inconsistent_with(b)
|
48
|
+
expect(b).to be_consistent_with(a)
|
49
|
+
expect(b).to_not be_inconsistent_with(a)
|
50
|
+
end
|
51
|
+
CODE
|
52
|
+
end
|
53
|
+
def self.refute_consistent(a, b)
|
54
|
+
/^(.+):(\d+):in `(.+)'$/ =~ caller.first
|
55
|
+
line = $2.to_i
|
56
|
+
|
57
|
+
title = "is inconsistent with #{a.inspect} and #{b.inspect}"
|
58
|
+
module_eval <<-CODE, __FILE__, line
|
59
|
+
it #{title.inspect} do
|
60
|
+
a, b = req(#{a.inspect}), req(#{b.inspect})
|
61
|
+
expect(a).to_not be_consistent_with(b)
|
62
|
+
expect(a).to be_inconsistent_with(b)
|
63
|
+
expect(b).to_not be_consistent_with(a)
|
64
|
+
expect(b).to be_inconsistent_with(a)
|
65
|
+
end
|
66
|
+
CODE
|
67
|
+
end
|
68
|
+
|
69
|
+
# = =
|
70
|
+
assert_consistent "3", "3"
|
71
|
+
refute_consistent "3", "4"
|
72
|
+
refute_consistent "3", "0"
|
73
|
+
refute_consistent "0", "3"
|
74
|
+
|
75
|
+
# = !=
|
76
|
+
assert_consistent "3", "!= 4"
|
77
|
+
assert_consistent "3", "!= 0"
|
78
|
+
refute_consistent "3", "!= 3"
|
79
|
+
|
80
|
+
# = >
|
81
|
+
assert_consistent "3", "> 2"
|
82
|
+
refute_consistent "3", "> 3"
|
83
|
+
refute_consistent "3", "> 4"
|
84
|
+
|
85
|
+
# = <
|
86
|
+
assert_consistent "3", "< 4"
|
87
|
+
refute_consistent "3", "< 3"
|
88
|
+
refute_consistent "3", "< 2"
|
89
|
+
|
90
|
+
# = >=
|
91
|
+
assert_consistent "3", ">= 2"
|
92
|
+
assert_consistent "3", ">= 3"
|
93
|
+
refute_consistent "3", ">= 4"
|
94
|
+
|
95
|
+
# = <=
|
96
|
+
assert_consistent "3", "<= 4"
|
97
|
+
assert_consistent "3", "<= 3"
|
98
|
+
refute_consistent "3", "<= 2"
|
99
|
+
|
100
|
+
# = ~>
|
101
|
+
assert_consistent "3.4.1", "~> 3.4.1"
|
102
|
+
assert_consistent "3.4.2", "~> 3.4.1"
|
103
|
+
refute_consistent "3.4", "~> 3.4.1"
|
104
|
+
refute_consistent "3.5", "~> 3.4.1"
|
105
|
+
|
106
|
+
# != !=
|
107
|
+
assert_consistent "!= 3", "!= 3"
|
108
|
+
assert_consistent "!= 3", "!= 4"
|
109
|
+
|
110
|
+
# != >
|
111
|
+
assert_consistent "!= 3", "> 2"
|
112
|
+
assert_consistent "!= 3", "> 3"
|
113
|
+
assert_consistent "!= 3", "> 4"
|
114
|
+
|
115
|
+
# != <
|
116
|
+
assert_consistent "!= 3", "< 2"
|
117
|
+
assert_consistent "!= 3", "< 3"
|
118
|
+
assert_consistent "!= 3", "< 4"
|
119
|
+
|
120
|
+
# != >=
|
121
|
+
assert_consistent "!= 3", ">= 2"
|
122
|
+
assert_consistent "!= 3", ">= 3"
|
123
|
+
assert_consistent "!= 3", ">= 4"
|
124
|
+
|
125
|
+
# != <=
|
126
|
+
assert_consistent "!= 3", "<= 2"
|
127
|
+
assert_consistent "!= 3", "<= 3"
|
128
|
+
assert_consistent "!= 3", "<= 4"
|
129
|
+
|
130
|
+
# != ~>
|
131
|
+
assert_consistent "!= 3.4.1", "~> 3.4.1"
|
132
|
+
assert_consistent "!= 3.4.2", "~> 3.4.1"
|
133
|
+
assert_consistent "!= 3.5", "~> 3.4.1"
|
134
|
+
|
135
|
+
# > >
|
136
|
+
assert_consistent "> 3", "> 2"
|
137
|
+
assert_consistent "> 3", "> 3"
|
138
|
+
assert_consistent "> 3", "> 4"
|
139
|
+
|
140
|
+
# > <
|
141
|
+
assert_consistent "> 3", "< 4"
|
142
|
+
refute_consistent "> 3", "< 3"
|
143
|
+
refute_consistent "> 3", "< 2"
|
144
|
+
|
145
|
+
# > >=
|
146
|
+
assert_consistent "> 3", ">= 2"
|
147
|
+
assert_consistent "> 3", ">= 3"
|
148
|
+
assert_consistent "> 3", ">= 4"
|
149
|
+
|
150
|
+
# > <=
|
151
|
+
assert_consistent "> 3", "<= 4"
|
152
|
+
refute_consistent "> 3", "<= 3"
|
153
|
+
refute_consistent "> 3", "<= 2"
|
154
|
+
|
155
|
+
# > ~>
|
156
|
+
assert_consistent "> 3.3", "~> 3.4.1"
|
157
|
+
assert_consistent "> 3.4.1", "~> 3.4.1"
|
158
|
+
assert_consistent "> 3.4.2", "~> 3.4.1"
|
159
|
+
refute_consistent "> 3.5", "~> 3.4.1"
|
160
|
+
|
161
|
+
# < <
|
162
|
+
assert_consistent "< 3", "< 2"
|
163
|
+
assert_consistent "< 3", "< 3"
|
164
|
+
assert_consistent "< 3", "< 4"
|
165
|
+
|
166
|
+
# < >=
|
167
|
+
assert_consistent "< 3", ">= 2"
|
168
|
+
refute_consistent "< 3", ">= 3"
|
169
|
+
refute_consistent "< 3", ">= 4"
|
170
|
+
|
171
|
+
# < <=
|
172
|
+
assert_consistent "< 3", "<= 2"
|
173
|
+
assert_consistent "< 3", "<= 3"
|
174
|
+
assert_consistent "< 3", "<= 4"
|
175
|
+
|
176
|
+
# >= >=
|
177
|
+
assert_consistent ">= 3", ">= 2"
|
178
|
+
assert_consistent ">= 3", ">= 3"
|
179
|
+
assert_consistent ">= 3", ">= 4"
|
180
|
+
|
181
|
+
# >= <=
|
182
|
+
assert_consistent ">= 3", "<= 4"
|
183
|
+
assert_consistent ">= 3", "<= 3"
|
184
|
+
refute_consistent ">= 3", "<= 2"
|
185
|
+
|
186
|
+
# >= ~>
|
187
|
+
assert_consistent ">= 3.3", "~> 3.4.1"
|
188
|
+
assert_consistent ">= 3.4.1", "~> 3.4.1"
|
189
|
+
assert_consistent ">= 3.4.2", "~> 3.4.1"
|
190
|
+
refute_consistent ">= 3.5", "~> 3.4.1"
|
191
|
+
|
192
|
+
# <= <=
|
193
|
+
assert_consistent "<= 3", "<= 2"
|
194
|
+
assert_consistent "<= 3", "<= 3"
|
195
|
+
assert_consistent "<= 3", "<= 4"
|
196
|
+
|
197
|
+
# <= ~>
|
198
|
+
assert_consistent "<= 3.5", "~> 3.4.1"
|
199
|
+
assert_consistent "<= 3.4.1", "~> 3.4.1"
|
200
|
+
assert_consistent "<= 3.4.2", "~> 3.4.1"
|
201
|
+
refute_consistent "<= 3.3", "~> 3.4.1"
|
202
|
+
|
203
|
+
# ~> ~>
|
204
|
+
assert_consistent "~> 3.4.1", "~> 3.4.1"
|
205
|
+
assert_consistent "~> 3.4.2", "~> 3.4.1"
|
206
|
+
assert_consistent "~> 3.3", "~> 3.4.1"
|
207
|
+
refute_consistent "~> 3.3.3", "~> 3.4.1"
|
208
|
+
refute_consistent "~> 3.5", "~> 3.4.1"
|
209
|
+
refute_consistent "~> 3.5.4", "~> 3.4.1"
|
210
|
+
end
|
211
|
+
|
36
212
|
end
|
@@ -51,36 +51,39 @@ module Librarian
|
|
51
51
|
end
|
52
52
|
|
53
53
|
describe "#net_http_class" do
|
54
|
-
|
54
|
+
let(:proxied_host) { "www.example.com" }
|
55
55
|
context "sanity" do
|
56
56
|
with_env "http_proxy" => nil
|
57
57
|
|
58
58
|
it "should have the normal class" do
|
59
|
-
env.net_http_class.should be Net::HTTP
|
59
|
+
env.net_http_class(proxied_host).should be Net::HTTP
|
60
60
|
end
|
61
61
|
|
62
62
|
it "should not be marked as a proxy class" do
|
63
|
-
env.net_http_class.should_not be_proxy_class
|
63
|
+
env.net_http_class(proxied_host).should_not be_proxy_class
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
67
|
context "with a complex proxy" do
|
68
68
|
with_env "http_proxy" => "admin:secret@example.com"
|
69
69
|
|
70
|
+
it "should not by marked as a proxy class for localhost" do
|
71
|
+
env.net_http_class('localhost').should_not be_proxy_class
|
72
|
+
end
|
70
73
|
it "should not have the normal class" do
|
71
|
-
env.net_http_class.should_not be Net::HTTP
|
74
|
+
env.net_http_class(proxied_host).should_not be Net::HTTP
|
72
75
|
end
|
73
76
|
|
74
77
|
it "should have a subclass the normal class" do
|
75
|
-
env.net_http_class.should < Net::HTTP
|
78
|
+
env.net_http_class(proxied_host).should < Net::HTTP
|
76
79
|
end
|
77
80
|
|
78
81
|
it "should be marked as a proxy class" do
|
79
|
-
env.net_http_class.should be_proxy_class
|
82
|
+
env.net_http_class(proxied_host).should be_proxy_class
|
80
83
|
end
|
81
84
|
|
82
85
|
it "should have the expected proxy attributes" do
|
83
|
-
http = env.net_http_class.new("www.kernel.org")
|
86
|
+
http = env.net_http_class(proxied_host).new("www.kernel.org")
|
84
87
|
expected_attributes = {
|
85
88
|
"host" => env.http_proxy_uri.host,
|
86
89
|
"port" => env.http_proxy_uri.port,
|
@@ -96,6 +99,72 @@ module Librarian
|
|
96
99
|
|
97
100
|
actual_attributes.should == expected_attributes
|
98
101
|
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
context "with an excluded host" do
|
106
|
+
with_env "http_proxy" => "admin:secret@example.com",
|
107
|
+
"no_proxy" => "no.proxy.com, noproxy.com"
|
108
|
+
|
109
|
+
context "with an exact match" do
|
110
|
+
let(:proxied_host) { "noproxy.com" }
|
111
|
+
|
112
|
+
it "should have the normal class" do
|
113
|
+
env.net_http_class(proxied_host).should be Net::HTTP
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should not be marked as a proxy class" do
|
117
|
+
env.net_http_class(proxied_host).should_not be_proxy_class
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
context "with a subdomain match" do
|
122
|
+
let(:proxied_host) { "www.noproxy.com" }
|
123
|
+
|
124
|
+
it "should have the normal class" do
|
125
|
+
env.net_http_class(proxied_host).should be Net::HTTP
|
126
|
+
end
|
127
|
+
|
128
|
+
it "should not be marked as a proxy class" do
|
129
|
+
env.net_http_class(proxied_host).should_not be_proxy_class
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
context "with localhost" do
|
134
|
+
let(:proxied_host) { "localhost" }
|
135
|
+
|
136
|
+
it "should have the normal class" do
|
137
|
+
env.net_http_class(proxied_host).should be Net::HTTP
|
138
|
+
end
|
139
|
+
|
140
|
+
it "should not be marked as a proxy class" do
|
141
|
+
env.net_http_class(proxied_host).should_not be_proxy_class
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
context "with 127.0.0.1" do
|
146
|
+
let(:proxied_host) { "127.0.0.1" }
|
147
|
+
|
148
|
+
it "should have the normal class" do
|
149
|
+
env.net_http_class(proxied_host).should be Net::HTTP
|
150
|
+
end
|
151
|
+
|
152
|
+
it "should not be marked as a proxy class" do
|
153
|
+
env.net_http_class(proxied_host).should_not be_proxy_class
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
context "with a mismatch" do
|
158
|
+
let(:proxied_host) { "www.example.com" }
|
159
|
+
|
160
|
+
it "should have a subclass the normal class" do
|
161
|
+
env.net_http_class(proxied_host).should < Net::HTTP
|
162
|
+
end
|
163
|
+
|
164
|
+
it "should be marked as a proxy class" do
|
165
|
+
env.net_http_class(proxied_host).should be_proxy_class
|
166
|
+
end
|
167
|
+
end
|
99
168
|
end
|
100
169
|
|
101
170
|
end
|
data/spec/unit/resolver_spec.rb
CHANGED
@@ -123,7 +123,7 @@ module Librarian
|
|
123
123
|
|
124
124
|
let(:resolution) { resolver.resolve(spec) }
|
125
125
|
|
126
|
-
specify { resolution.
|
126
|
+
specify { resolution.should be_nil }
|
127
127
|
|
128
128
|
end
|
129
129
|
|
@@ -151,7 +151,7 @@ module Librarian
|
|
151
151
|
|
152
152
|
let(:resolution) { resolver.resolve(spec) }
|
153
153
|
|
154
|
-
specify { resolution.
|
154
|
+
specify { resolution.should be_nil }
|
155
155
|
|
156
156
|
end
|
157
157
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: librarian
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.26
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,136 +9,136 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
+
prerelease: false
|
15
16
|
name: thor
|
16
|
-
|
17
|
-
none: false
|
17
|
+
version_requirements: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '0.15'
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
22
|
none: false
|
23
|
+
requirement: !ruby/object:Gem::Requirement
|
26
24
|
requirements:
|
27
25
|
- - ~>
|
28
26
|
- !ruby/object:Gem::Version
|
29
27
|
version: '0.15'
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: rake
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
38
|
-
type: :development
|
29
|
+
type: :runtime
|
30
|
+
- !ruby/object:Gem::Dependency
|
39
31
|
prerelease: false
|
32
|
+
name: rake
|
40
33
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
34
|
requirements:
|
43
35
|
- - ! '>='
|
44
36
|
- !ruby/object:Gem::Version
|
45
37
|
version: '0'
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: rspec
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
38
|
none: false
|
39
|
+
requirement: !ruby/object:Gem::Requirement
|
50
40
|
requirements:
|
51
41
|
- - ! '>='
|
52
42
|
- !ruby/object:Gem::Version
|
53
43
|
version: '0'
|
44
|
+
none: false
|
54
45
|
type: :development
|
46
|
+
- !ruby/object:Gem::Dependency
|
55
47
|
prerelease: false
|
48
|
+
name: rspec
|
56
49
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
50
|
requirements:
|
59
51
|
- - ! '>='
|
60
52
|
- !ruby/object:Gem::Version
|
61
53
|
version: '0'
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: webmock
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
65
54
|
none: false
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
66
56
|
requirements:
|
67
57
|
- - ! '>='
|
68
58
|
- !ruby/object:Gem::Version
|
69
59
|
version: '0'
|
60
|
+
none: false
|
70
61
|
type: :development
|
62
|
+
- !ruby/object:Gem::Dependency
|
71
63
|
prerelease: false
|
64
|
+
name: webmock
|
72
65
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
66
|
requirements:
|
75
67
|
- - ! '>='
|
76
68
|
- !ruby/object:Gem::Version
|
77
69
|
version: '0'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: fakefs
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
70
|
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
82
72
|
requirements:
|
83
73
|
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
76
|
+
none: false
|
86
77
|
type: :development
|
78
|
+
- !ruby/object:Gem::Dependency
|
87
79
|
prerelease: false
|
80
|
+
name: fakefs
|
88
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
89
86
|
none: false
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
90
88
|
requirements:
|
91
89
|
- - ! '>='
|
92
90
|
- !ruby/object:Gem::Version
|
93
91
|
version: '0'
|
92
|
+
none: false
|
93
|
+
type: :development
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
+
prerelease: false
|
95
96
|
name: chef
|
96
|
-
|
97
|
-
none: false
|
97
|
+
version_requirements: !ruby/object:Gem::Requirement
|
98
98
|
requirements:
|
99
99
|
- - ! '>='
|
100
100
|
- !ruby/object:Gem::Version
|
101
101
|
version: '0.10'
|
102
|
-
type: :runtime
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
102
|
none: false
|
103
|
+
requirement: !ruby/object:Gem::Requirement
|
106
104
|
requirements:
|
107
105
|
- - ! '>='
|
108
106
|
- !ruby/object:Gem::Version
|
109
107
|
version: '0.10'
|
108
|
+
none: false
|
109
|
+
type: :runtime
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
|
+
prerelease: false
|
111
112
|
name: highline
|
112
|
-
|
113
|
-
none: false
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ! '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
118
|
none: false
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
122
120
|
requirements:
|
123
121
|
- - ! '>='
|
124
122
|
- !ruby/object:Gem::Version
|
125
123
|
version: '0'
|
124
|
+
none: false
|
125
|
+
type: :runtime
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
+
prerelease: false
|
127
128
|
name: archive-tar-minitar
|
128
|
-
|
129
|
-
none: false
|
129
|
+
version_requirements: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
131
|
- - ! '>='
|
132
132
|
- !ruby/object:Gem::Version
|
133
133
|
version: 0.5.2
|
134
|
-
type: :runtime
|
135
|
-
prerelease: false
|
136
|
-
version_requirements: !ruby/object:Gem::Requirement
|
137
134
|
none: false
|
135
|
+
requirement: !ruby/object:Gem::Requirement
|
138
136
|
requirements:
|
139
137
|
- - ! '>='
|
140
138
|
- !ruby/object:Gem::Version
|
141
139
|
version: 0.5.2
|
140
|
+
none: false
|
141
|
+
type: :runtime
|
142
142
|
description: Librarian
|
143
143
|
email:
|
144
144
|
- y_feldblum@yahoo.com
|
@@ -164,6 +164,7 @@ files:
|
|
164
164
|
- lib/librarian/action/clean.rb
|
165
165
|
- lib/librarian/action/ensure.rb
|
166
166
|
- lib/librarian/action/install.rb
|
167
|
+
- lib/librarian/action/persist_resolution_mixin.rb
|
167
168
|
- lib/librarian/action/resolve.rb
|
168
169
|
- lib/librarian/action/update.rb
|
169
170
|
- lib/librarian/chef.rb
|
@@ -175,6 +176,7 @@ files:
|
|
175
176
|
- lib/librarian/chef/manifest_reader.rb
|
176
177
|
- lib/librarian/chef/source.rb
|
177
178
|
- lib/librarian/chef/source/git.rb
|
179
|
+
- lib/librarian/chef/source/github.rb
|
178
180
|
- lib/librarian/chef/source/local.rb
|
179
181
|
- lib/librarian/chef/source/path.rb
|
180
182
|
- lib/librarian/chef/source/site.rb
|
@@ -193,6 +195,7 @@ files:
|
|
193
195
|
- lib/librarian/environment.rb
|
194
196
|
- lib/librarian/error.rb
|
195
197
|
- lib/librarian/helpers.rb
|
198
|
+
- lib/librarian/linter/source_linter.rb
|
196
199
|
- lib/librarian/lockfile.rb
|
197
200
|
- lib/librarian/lockfile/compiler.rb
|
198
201
|
- lib/librarian/lockfile/parser.rb
|
@@ -211,6 +214,7 @@ files:
|
|
211
214
|
- lib/librarian/resolver.rb
|
212
215
|
- lib/librarian/resolver/implementation.rb
|
213
216
|
- lib/librarian/source.rb
|
217
|
+
- lib/librarian/source/basic_api.rb
|
214
218
|
- lib/librarian/source/git.rb
|
215
219
|
- lib/librarian/source/git/repository.rb
|
216
220
|
- lib/librarian/source/local.rb
|
@@ -223,10 +227,12 @@ files:
|
|
223
227
|
- lib/librarian/version.rb
|
224
228
|
- librarian.gemspec
|
225
229
|
- spec/functional/chef/cli_spec.rb
|
226
|
-
- spec/functional/chef/source/git_spec.rb
|
227
230
|
- spec/functional/chef/source/site_spec.rb
|
228
231
|
- spec/functional/source/git/repository_spec.rb
|
232
|
+
- spec/integration/chef/source/git_spec.rb
|
233
|
+
- spec/integration/chef/source/site_spec.rb
|
229
234
|
- spec/support/cli_macro.rb
|
235
|
+
- spec/support/method_patch_macro.rb
|
230
236
|
- spec/support/with_env_macro.rb
|
231
237
|
- spec/unit/action/base_spec.rb
|
232
238
|
- spec/unit/action/clean_spec.rb
|
@@ -251,20 +257,20 @@ rdoc_options: []
|
|
251
257
|
require_paths:
|
252
258
|
- lib
|
253
259
|
required_ruby_version: !ruby/object:Gem::Requirement
|
254
|
-
none: false
|
255
260
|
requirements:
|
256
261
|
- - ! '>='
|
257
262
|
- !ruby/object:Gem::Version
|
258
263
|
version: '0'
|
259
264
|
segments:
|
260
265
|
- 0
|
261
|
-
hash:
|
262
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
266
|
+
hash: -1210253581070009250
|
263
267
|
none: false
|
268
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
264
269
|
requirements:
|
265
270
|
- - ! '>='
|
266
271
|
- !ruby/object:Gem::Version
|
267
272
|
version: '0'
|
273
|
+
none: false
|
268
274
|
requirements: []
|
269
275
|
rubyforge_project: librarian
|
270
276
|
rubygems_version: 1.8.24
|