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.
Files changed (40) hide show
  1. data/.gitignore +4 -0
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +6 -1
  4. data/lib/librarian/action/persist_resolution_mixin.rb +51 -0
  5. data/lib/librarian/action/resolve.rb +3 -38
  6. data/lib/librarian/action/update.rb +4 -38
  7. data/lib/librarian/chef/dsl.rb +1 -0
  8. data/lib/librarian/chef/source.rb +1 -0
  9. data/lib/librarian/chef/source/github.rb +27 -0
  10. data/lib/librarian/chef/source/site.rb +51 -51
  11. data/lib/librarian/cli.rb +31 -23
  12. data/lib/librarian/cli/manifest_presenter.rb +36 -22
  13. data/lib/librarian/dependency.rb +60 -0
  14. data/lib/librarian/environment.rb +13 -1
  15. data/lib/librarian/linter/source_linter.rb +55 -0
  16. data/lib/librarian/lockfile/parser.rb +39 -16
  17. data/lib/librarian/manifest.rb +8 -0
  18. data/lib/librarian/manifest_set.rb +5 -7
  19. data/lib/librarian/mock/source/mock.rb +4 -21
  20. data/lib/librarian/resolution.rb +1 -1
  21. data/lib/librarian/resolver.rb +15 -12
  22. data/lib/librarian/resolver/implementation.rb +166 -75
  23. data/lib/librarian/source/basic_api.rb +45 -0
  24. data/lib/librarian/source/git.rb +4 -22
  25. data/lib/librarian/source/git/repository.rb +1 -1
  26. data/lib/librarian/source/local.rb +0 -7
  27. data/lib/librarian/source/path.rb +4 -22
  28. data/lib/librarian/version.rb +1 -1
  29. data/librarian.gemspec +3 -3
  30. data/spec/functional/chef/source/site_spec.rb +150 -100
  31. data/spec/functional/source/git/repository_spec.rb +2 -1
  32. data/spec/{functional → integration}/chef/source/git_spec.rb +12 -3
  33. data/spec/integration/chef/source/site_spec.rb +217 -0
  34. data/spec/support/cli_macro.rb +4 -12
  35. data/spec/support/method_patch_macro.rb +30 -0
  36. data/spec/unit/config/database_spec.rb +8 -0
  37. data/spec/unit/dependency_spec.rb +176 -0
  38. data/spec/unit/environment_spec.rb +76 -7
  39. data/spec/unit/resolver_spec.rb +2 -2
  40. metadata +52 -46
@@ -63,19 +63,11 @@ module CliMacro
63
63
  end
64
64
 
65
65
  def cli!(*args)
66
- Dir.chdir(pwd) do
67
- described_class.with_environment do |environment|
68
- begin
69
- @shell = FakeShell.new
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
@@ -123,7 +123,7 @@ module Librarian
123
123
 
124
124
  let(:resolution) { resolver.resolve(spec) }
125
125
 
126
- specify { resolution.should_not be_correct }
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.should_not be_correct }
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.25
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-10-12 00:00:00.000000000 Z
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
- requirement: !ruby/object:Gem::Requirement
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
- requirements:
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
- requirement: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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
- requirement: !ruby/object:Gem::Requirement
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: 3137632899221484598
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