berkshelf-api-client 3.0.0 → 4.0.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/Gemfile +5 -31
- data/README.md +14 -6
- data/berkshelf-api-client.gemspec +2 -12
- data/lib/berkshelf/api_client/chef_server_connection.rb +3 -2
- data/lib/berkshelf/api_client/connection.rb +13 -40
- data/lib/berkshelf/api_client/errors.rb +1 -1
- data/lib/berkshelf/api_client/remote_cookbook.rb +2 -1
- data/lib/berkshelf/api_client/version.rb +1 -1
- data/lib/berkshelf/ridley_compat.rb +73 -0
- data/spec/spec_helper.rb +9 -21
- data/spec/unit/berkshelf/api_client/connection_spec.rb +44 -11
- metadata +8 -140
- data/Guardfile +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c6cca0ab5fbcdaf780a643ffd05bf882111e71c
|
4
|
+
data.tar.gz: a1c9e7d31d5a5a2812ed74ad40c146735ca84fc8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '056878d2fb9267c2b4f1c1c72da60e22f05312ff323ff1f38b469af5afd753b22118d226db832433c33f523ef71427c46a188fc1764940e38c09cf8b947c9c27'
|
7
|
+
data.tar.gz: 96c8e8364cd7cf9b39685b051b71e3524c2c11ef87f3ed3e5d59f24b19f92a786b005ed9155d0cb906d5451c60133328dbec3eda1eff1384205cfd03e2f52080
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -2,35 +2,9 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
group :
|
6
|
-
gem
|
7
|
-
gem
|
8
|
-
gem
|
9
|
-
gem
|
10
|
-
gem 'guard-spork'
|
11
|
-
|
12
|
-
require 'rbconfig'
|
13
|
-
|
14
|
-
if RbConfig::CONFIG['target_os'] =~ /darwin/i
|
15
|
-
gem 'growl', require: false
|
16
|
-
gem 'rb-fsevent', require: false
|
17
|
-
|
18
|
-
if `uname`.strip == 'Darwin' && `sw_vers -productVersion`.strip >= '10.8'
|
19
|
-
gem 'terminal-notifier-guard', '~> 1.5.3', require: false
|
20
|
-
end rescue Errno::ENOENT
|
21
|
-
|
22
|
-
elsif RbConfig::CONFIG['target_os'] =~ /linux/i
|
23
|
-
gem 'libnotify', '~> 0.8.0', require: false
|
24
|
-
gem 'rb-inotify', require: false
|
25
|
-
|
26
|
-
elsif RbConfig::CONFIG['target_os'] =~ /mswin|mingw/i
|
27
|
-
gem 'rb-notifu', '>= 0.0.4', require: false
|
28
|
-
gem 'wdm', require: false
|
29
|
-
gem 'win32console', require: false
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
group :test do
|
34
|
-
gem "berkshelf-api"
|
35
|
-
gem "reel"
|
5
|
+
group :test, :development do
|
6
|
+
gem "rake"
|
7
|
+
gem "rspec"
|
8
|
+
gem "rspec-its"
|
9
|
+
gem "webmock"
|
36
10
|
end
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# Berkshelf::APIClient
|
2
|
-
|
2
|
+
|
3
|
+
[](https://travis-ci.org/berkshelf/berkshelf-api-client) [](https://badge.fury.io/rb/berkshelf-api-client)
|
3
4
|
|
4
5
|
A Ruby library for communicating with the [Berkshelf API server](https://github.com/berkshelf/berkshelf-api)
|
5
6
|
|
@@ -7,19 +8,27 @@ A Ruby library for communicating with the [Berkshelf API server](https://github.
|
|
7
8
|
|
8
9
|
Add this line to your application's Gemfile:
|
9
10
|
|
10
|
-
|
11
|
+
```ruby
|
12
|
+
gem 'berkshelf-api-client'
|
13
|
+
```
|
11
14
|
|
12
15
|
And then execute:
|
13
16
|
|
14
|
-
|
17
|
+
```shell
|
18
|
+
$ bundle
|
19
|
+
```
|
15
20
|
|
16
21
|
Or install it yourself as:
|
17
22
|
|
18
|
-
|
23
|
+
```shell
|
24
|
+
$ gem install berkshelf-api-client
|
25
|
+
```
|
19
26
|
|
20
27
|
## Usage
|
21
28
|
|
22
|
-
|
29
|
+
```ruby
|
30
|
+
require 'berkshelf/api-client'
|
31
|
+
```
|
23
32
|
|
24
33
|
## Contributing
|
25
34
|
|
@@ -28,4 +37,3 @@ Or install it yourself as:
|
|
28
37
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
29
38
|
4. Push to the branch (`git push origin my-new-feature`)
|
30
39
|
5. Create new Pull Request
|
31
|
-
|
@@ -20,22 +20,12 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.summary = spec.description
|
21
21
|
spec.homepage = "http://berkshelf.com"
|
22
22
|
spec.license = "Apache 2.0"
|
23
|
-
spec.required_ruby_version = ">= 2.
|
23
|
+
spec.required_ruby_version = ">= 2.3"
|
24
24
|
|
25
25
|
spec.files = `git ls-files`.split($/)
|
26
26
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
27
27
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
|
-
spec.add_dependency "
|
31
|
-
spec.add_dependency "httpclient", "~> 2.7"
|
32
|
-
spec.add_dependency "ridley", ">= 4.5", "< 6.0"
|
33
|
-
|
34
|
-
spec.add_development_dependency "bundler"
|
35
|
-
spec.add_development_dependency "rake"
|
36
|
-
spec.add_development_dependency "fuubar"
|
37
|
-
spec.add_development_dependency "rspec"
|
38
|
-
spec.add_development_dependency "rspec-its"
|
39
|
-
spec.add_development_dependency "spork"
|
40
|
-
spec.add_development_dependency "yard"
|
30
|
+
spec.add_dependency "chef", ">= 12.0"
|
41
31
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'berkshelf/ridley_compat'
|
1
2
|
|
2
3
|
module Berkshelf::APIClient
|
3
4
|
require_relative 'errors'
|
@@ -6,12 +7,12 @@ module Berkshelf::APIClient
|
|
6
7
|
attr_reader :client
|
7
8
|
|
8
9
|
def initialize(*args)
|
9
|
-
@client =
|
10
|
+
@client = Berkshelf::RidleyCompat.new(*args)
|
10
11
|
@url = args[0][:server_url]
|
11
12
|
end
|
12
13
|
|
13
14
|
def universe
|
14
|
-
response = client.universe
|
15
|
+
response = client.get("universe")
|
15
16
|
|
16
17
|
[].tap do |cookbooks|
|
17
18
|
response.each do |name, versions|
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require '
|
1
|
+
require 'berkshelf/ridley_compat'
|
2
2
|
|
3
3
|
module Berkshelf::APIClient
|
4
4
|
require_relative 'errors'
|
5
5
|
|
6
|
-
class Connection
|
6
|
+
class Connection
|
7
7
|
# @return [String]
|
8
8
|
attr_reader :url
|
9
9
|
|
@@ -26,29 +26,15 @@ module Berkshelf::APIClient
|
|
26
26
|
# @option options [Float] :retry_interval (0.5)
|
27
27
|
# how long to wait (in seconds) between each retry
|
28
28
|
def initialize(url, options = {})
|
29
|
+
# it looks like Faraday mutates the URI argument it is given, when we ripped Faraday out of this
|
30
|
+
# API it stopped doing that. this may or may not be a breaking change (it broke some fairly
|
31
|
+
# brittle berkshelf tests). if it causes too much berkshelf chaos we could revert by uncommenting
|
32
|
+
# the next line. as it is removing this behavior feels more like fixing a bug.
|
33
|
+
#@url = url.normalize! if url.is_a?(Addressable::URI)
|
29
34
|
options = {retries: 3, retry_interval: 0.5, open_timeout: 30, timeout: 30}.merge(options)
|
30
|
-
|
31
|
-
@retries = options.delete(:retries)
|
32
|
-
@retry_interval = options.delete(:retry_interval)
|
35
|
+
options[:server_url] = url
|
33
36
|
|
34
|
-
|
35
|
-
b.response :parse_json
|
36
|
-
b.request :retry,
|
37
|
-
max: self.retries,
|
38
|
-
interval: self.retry_interval,
|
39
|
-
exceptions: [
|
40
|
-
Faraday::Error::TimeoutError,
|
41
|
-
Errno::ETIMEDOUT
|
42
|
-
]
|
43
|
-
|
44
|
-
b.adapter :httpclient
|
45
|
-
end
|
46
|
-
|
47
|
-
open_timeout = options.delete(:open_timeout)
|
48
|
-
timeout = options.delete(:timeout)
|
49
|
-
super(self.url, options)
|
50
|
-
@options[:open_timeout] = open_timeout
|
51
|
-
@options[:timeout] = timeout
|
37
|
+
@client = Berkshelf::RidleyCompatJSON.new(**options)
|
52
38
|
end
|
53
39
|
|
54
40
|
# Retrieves the entire universe of known cookbooks from the API source
|
@@ -57,26 +43,13 @@ module Berkshelf::APIClient
|
|
57
43
|
#
|
58
44
|
# @return [Array<APIClient::RemoteCookbook>]
|
59
45
|
def universe
|
60
|
-
response = get("universe")
|
46
|
+
response = @client.get("universe")
|
61
47
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
response.body.each do |name, versions|
|
66
|
-
versions.each { |version, attributes| cookbooks << RemoteCookbook.new(name, version, attributes) }
|
67
|
-
end
|
48
|
+
[].tap do |cookbooks|
|
49
|
+
response.each do |name, versions|
|
50
|
+
versions.each { |version, attributes| cookbooks << RemoteCookbook.new(name, version, attributes) }
|
68
51
|
end
|
69
|
-
when 404
|
70
|
-
raise ServiceNotFound, "service not found at: #{url}"
|
71
|
-
when 500..504
|
72
|
-
raise ServiceUnavaiable, "service unavailable at: #{url}"
|
73
|
-
else
|
74
|
-
raise BadResponse, "bad response #{response.inspect}"
|
75
52
|
end
|
76
|
-
rescue Faraday::Error::TimeoutError, Errno::ETIMEDOUT
|
77
|
-
raise TimeoutError, "Unable to connect to: #{url}"
|
78
|
-
rescue Faraday::Error::ConnectionFailed => ex
|
79
|
-
raise ServiceUnavaiable, ex
|
80
53
|
end
|
81
54
|
end
|
82
55
|
end
|
@@ -4,7 +4,7 @@ module Berkshelf
|
|
4
4
|
module APIClient
|
5
5
|
class TimeoutError < APIClientError; end
|
6
6
|
class BadResponse < APIClientError; end
|
7
|
-
class
|
7
|
+
class ServiceUnavailable < APIClientError; end
|
8
8
|
class ServiceNotFound < APIClientError; end
|
9
9
|
end
|
10
10
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'chef/mash'
|
2
3
|
|
3
4
|
module Berkshelf::APIClient
|
4
5
|
# A representation of cookbook metadata indexed by a Berkshelf API Server. Returned
|
@@ -16,7 +17,7 @@ module Berkshelf::APIClient
|
|
16
17
|
def initialize(name, version, attributes = {})
|
17
18
|
@name = name
|
18
19
|
@version = version
|
19
|
-
@attributes = attributes
|
20
|
+
@attributes = ::Mash.new(attributes)
|
20
21
|
end
|
21
22
|
|
22
23
|
# @return [Hash]
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'chef/server_api'
|
2
|
+
require 'chef/http/simple_json'
|
3
|
+
require 'chef/http/simple'
|
4
|
+
require 'berkshelf/api_client/errors'
|
5
|
+
|
6
|
+
module Berkshelf
|
7
|
+
module RidleyCompatAPI
|
8
|
+
def initialize(**opts)
|
9
|
+
opts = opts.dup
|
10
|
+
opts[:ssl] ||= {}
|
11
|
+
chef_opts = {
|
12
|
+
rest_timeout: opts[:timeout], # opts[:open_timeout] is ignored on purpose
|
13
|
+
client_name: opts[:client_name],
|
14
|
+
signing_key_filename: opts[:client_key],
|
15
|
+
ssl_verify_mode: opts[:verify] ? :verify_none : :verify_peer,
|
16
|
+
ssl_ca_path: opts[:ssl][:ca_path],
|
17
|
+
ssl_ca_file: opts[:ssl][:ca_file],
|
18
|
+
ssl_client_cert: opts[:ssl][:client_cert],
|
19
|
+
ssl_client_key: opts[:ssl][:client_key],
|
20
|
+
}
|
21
|
+
super(opts[:server_url].to_s, **chef_opts)
|
22
|
+
end
|
23
|
+
|
24
|
+
def get(url)
|
25
|
+
super(url)
|
26
|
+
rescue Net::HTTPExceptions => e
|
27
|
+
case e.response.code
|
28
|
+
when "404"
|
29
|
+
raise Berkshelf::APIClient::ServiceNotFound, "service not found at: #{url}"
|
30
|
+
when /^5/
|
31
|
+
raise Berkshelf::APIClient::ServiceUnavailable, "service unavailable at: #{url}"
|
32
|
+
else
|
33
|
+
raise Berkshelf::APIClient::BadResponse, "bad response #{e.response}"
|
34
|
+
end
|
35
|
+
rescue Errno::ETIMEDOUT, Timeout::Error
|
36
|
+
raise Berkshelf::APIClient::TimeoutError, "Unable to connect to: #{url}"
|
37
|
+
rescue Errno::EHOSTUNREACH, Errno::ECONNREFUSED => e
|
38
|
+
raise Berkshelf::APIClient::ServiceUnavailable, e
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class RidleyCompatSimple < Chef::ServerAPI
|
43
|
+
use Chef::HTTP::Decompressor
|
44
|
+
use Chef::HTTP::CookieManager
|
45
|
+
use Chef::HTTP::ValidateContentLength
|
46
|
+
|
47
|
+
include RidleyCompatAPI
|
48
|
+
end
|
49
|
+
|
50
|
+
class RidleyCompatJSON < Chef::HTTP::SimpleJSON
|
51
|
+
use Chef::HTTP::JSONInput
|
52
|
+
use Chef::HTTP::JSONOutput
|
53
|
+
use Chef::HTTP::CookieManager
|
54
|
+
use Chef::HTTP::Decompressor
|
55
|
+
use Chef::HTTP::RemoteRequestID
|
56
|
+
use Chef::HTTP::ValidateContentLength
|
57
|
+
|
58
|
+
include RidleyCompatAPI
|
59
|
+
end
|
60
|
+
|
61
|
+
class RidleyCompat < Chef::HTTP::Simple
|
62
|
+
use Chef::HTTP::JSONInput
|
63
|
+
use Chef::HTTP::JSONOutput
|
64
|
+
use Chef::HTTP::CookieManager
|
65
|
+
use Chef::HTTP::Decompressor
|
66
|
+
use Chef::HTTP::Authenticator
|
67
|
+
use Chef::HTTP::RemoteRequestID
|
68
|
+
use Chef::HTTP::APIVersions
|
69
|
+
use Chef::HTTP::ValidateContentLength
|
70
|
+
|
71
|
+
include RidleyCompatAPI
|
72
|
+
end
|
73
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,28 +1,16 @@
|
|
1
|
-
require 'bundler'
|
2
1
|
require 'rspec'
|
3
2
|
require 'rspec/its'
|
4
|
-
require '
|
5
|
-
require 'berkshelf/api
|
3
|
+
require 'webmock/rspec'
|
4
|
+
require 'berkshelf/api-client'
|
6
5
|
|
7
|
-
|
8
|
-
Dir[File.join(File.expand_path("../../spec/support/**/*.rb", __FILE__))].each { |f| require f }
|
6
|
+
WebMock.disable_net_connect!(allow_localhost: false)
|
9
7
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
config.expect_with :rspec do |c|
|
14
|
-
c.syntax = :expect
|
15
|
-
end
|
16
|
-
|
17
|
-
config.mock_with :rspec
|
18
|
-
config.filter_run focus: true
|
19
|
-
config.run_all_when_everything_filtered = true
|
20
|
-
|
21
|
-
config.before(:suite) { Berkshelf::API::RSpec::Server.start }
|
22
|
-
config.before(:all) { Berkshelf::API::Logging.init(location: '/dev/null') }
|
8
|
+
RSpec.configure do |config|
|
9
|
+
config.expect_with :rspec do |c|
|
10
|
+
c.syntax = :expect
|
23
11
|
end
|
24
|
-
end
|
25
12
|
|
26
|
-
|
27
|
-
|
13
|
+
config.mock_with :rspec
|
14
|
+
config.filter_run focus: true
|
15
|
+
config.run_all_when_everything_filtered = true
|
28
16
|
end
|
@@ -1,13 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Berkshelf::APIClient::Connection do
|
4
|
-
let(:instance) { described_class.new("http://
|
4
|
+
let(:instance) { described_class.new("http://supermarket.getchef.com") }
|
5
5
|
|
6
6
|
describe "#universe" do
|
7
7
|
before do
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
body_response = %Q{{"ruby":{"1.2.3":{"endpoint_priority":0,"platforms":{},"dependencies":{"build-essential":">= 1.2.2"},"location_type":"supermarket","location_path":"https://supermarket.getchef.com/"},"2.0.0":{"endpoint_priority":0,"platforms":{},"dependencies":{"build-essential":">= 1.2.2"},"location_type":"supermarket","location_path":"https://supermarket.getchef.com/"}},"elixir":{"1.0.0":{"endpoint_priority":0,"platforms":{"CentOS":"= 6.0.0"},"dependencies":{},"location_type":"supermarket","location_path":"https://supermarket.getchef.com/"}}}}
|
9
|
+
|
10
|
+
stub_request(:get, "http://supermarket.getchef.com/universe")
|
11
|
+
.to_return(status: 200, body: body_response, headers: { "Content-Type" => "application/json; charset=utf-8" })
|
11
12
|
end
|
12
13
|
|
13
14
|
subject { instance.universe }
|
@@ -53,15 +54,47 @@ describe Berkshelf::APIClient::Connection do
|
|
53
54
|
expect(remote.location_type).to_not be_nil
|
54
55
|
end
|
55
56
|
end
|
57
|
+
end
|
56
58
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
59
|
+
describe "non-200s" do
|
60
|
+
before do
|
61
|
+
Chef::Config[:http_retry_delay] = 0.001
|
62
|
+
Chef::Config[:http_retry_count] = 0
|
63
|
+
end
|
61
64
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
+
subject { instance.universe }
|
66
|
+
|
67
|
+
it "follows 301 redirects correctly" do
|
68
|
+
stub_request(:get, "http://supermarket.getchef.com/universe").to_return(:status => 301, :headers => { 'Location' => "http://arglebargle.com/universe" })
|
69
|
+
body_response = %Q{{"ruby":{"1.2.3":{"endpoint_priority":0,"platforms":{},"dependencies":{"build-essential":">= 1.2.2"},"location_type":"supermarket","location_path":"https://supermarket.getchef.com/"},"2.0.0":{"endpoint_priority":0,"platforms":{},"dependencies":{"build-essential":">= 1.2.2"},"location_type":"supermarket","location_path":"https://supermarket.getchef.com/"}},"elixir":{"1.0.0":{"endpoint_priority":0,"platforms":{"CentOS":"= 6.0.0"},"dependencies":{},"location_type":"supermarket","location_path":"https://supermarket.getchef.com/"}}}}
|
70
|
+
stub_request(:get, "http://arglebargle.com/universe")
|
71
|
+
.to_return(status: 200, body: body_response, headers: { "Content-Type" => "application/json; charset=utf-8" })
|
72
|
+
expect(subject.size).to eq(3)
|
73
|
+
end
|
74
|
+
|
75
|
+
it "raises Berkshelf::APIClient::ServiceUnavailable for 500s" do
|
76
|
+
stub_request(:get, "http://supermarket.getchef.com/universe").to_return(:status => [500, "Internal Server Error"])
|
77
|
+
expect { subject }.to raise_error(Berkshelf::APIClient::ServiceUnavailable)
|
78
|
+
end
|
79
|
+
|
80
|
+
it "raises Berkshelf::APIClient::ServiceNotFound for 404s" do
|
81
|
+
stub_request(:get, "http://supermarket.getchef.com/universe").to_return(:status => [404, "Not Found"])
|
82
|
+
expect { subject }.to raise_error(Berkshelf::APIClient::ServiceNotFound)
|
83
|
+
end
|
84
|
+
|
85
|
+
it "raises Net::HTTPBadRequest for 400s" do
|
86
|
+
stub_request(:get, "http://supermarket.getchef.com/universe").to_return(:status => [400, "Bad Request"])
|
87
|
+
expect { subject }.to raise_error(Berkshelf::APIClient::BadResponse)
|
88
|
+
end
|
89
|
+
|
90
|
+
it "raises Berkshelf::APIClient::TimeoutError for timeouts" do
|
91
|
+
stub_request(:get, "http://supermarket.getchef.com/universe").to_timeout
|
92
|
+
expect { subject }.to raise_error(Berkshelf::APIClient::TimeoutError)
|
93
|
+
end
|
94
|
+
|
95
|
+
it "raises Berkshelf::APIClient::TimeoutError for timeouts" do
|
96
|
+
stub_request(:get, "http://supermarket.getchef.com/universe").to_raise(Errno::ECONNREFUSED)
|
97
|
+
expect { subject }.to raise_error(Berkshelf::APIClient::ServiceUnavailable)
|
65
98
|
end
|
66
99
|
end
|
67
100
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: berkshelf-api-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamie Winsor
|
@@ -10,154 +10,22 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2017-06-19 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
requirements:
|
19
|
-
- - "~>"
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0.9'
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
requirements:
|
26
|
-
- - "~>"
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
version: '0.9'
|
29
|
-
- !ruby/object:Gem::Dependency
|
30
|
-
name: httpclient
|
31
|
-
requirement: !ruby/object:Gem::Requirement
|
32
|
-
requirements:
|
33
|
-
- - "~>"
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version: '2.7'
|
36
|
-
type: :runtime
|
37
|
-
prerelease: false
|
38
|
-
version_requirements: !ruby/object:Gem::Requirement
|
39
|
-
requirements:
|
40
|
-
- - "~>"
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: '2.7'
|
43
|
-
- !ruby/object:Gem::Dependency
|
44
|
-
name: ridley
|
16
|
+
name: chef
|
45
17
|
requirement: !ruby/object:Gem::Requirement
|
46
18
|
requirements:
|
47
19
|
- - ">="
|
48
20
|
- !ruby/object:Gem::Version
|
49
|
-
version: '
|
50
|
-
- - "<"
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: '6.0'
|
21
|
+
version: '12.0'
|
53
22
|
type: :runtime
|
54
23
|
prerelease: false
|
55
24
|
version_requirements: !ruby/object:Gem::Requirement
|
56
25
|
requirements:
|
57
26
|
- - ">="
|
58
27
|
- !ruby/object:Gem::Version
|
59
|
-
version: '
|
60
|
-
- - "<"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '6.0'
|
63
|
-
- !ruby/object:Gem::Dependency
|
64
|
-
name: bundler
|
65
|
-
requirement: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - ">="
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
70
|
-
type: :development
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '0'
|
77
|
-
- !ruby/object:Gem::Dependency
|
78
|
-
name: rake
|
79
|
-
requirement: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
84
|
-
type: :development
|
85
|
-
prerelease: false
|
86
|
-
version_requirements: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - ">="
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '0'
|
91
|
-
- !ruby/object:Gem::Dependency
|
92
|
-
name: fuubar
|
93
|
-
requirement: !ruby/object:Gem::Requirement
|
94
|
-
requirements:
|
95
|
-
- - ">="
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
version: '0'
|
98
|
-
type: :development
|
99
|
-
prerelease: false
|
100
|
-
version_requirements: !ruby/object:Gem::Requirement
|
101
|
-
requirements:
|
102
|
-
- - ">="
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: '0'
|
105
|
-
- !ruby/object:Gem::Dependency
|
106
|
-
name: rspec
|
107
|
-
requirement: !ruby/object:Gem::Requirement
|
108
|
-
requirements:
|
109
|
-
- - ">="
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0'
|
112
|
-
type: :development
|
113
|
-
prerelease: false
|
114
|
-
version_requirements: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - ">="
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '0'
|
119
|
-
- !ruby/object:Gem::Dependency
|
120
|
-
name: rspec-its
|
121
|
-
requirement: !ruby/object:Gem::Requirement
|
122
|
-
requirements:
|
123
|
-
- - ">="
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
126
|
-
type: :development
|
127
|
-
prerelease: false
|
128
|
-
version_requirements: !ruby/object:Gem::Requirement
|
129
|
-
requirements:
|
130
|
-
- - ">="
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: '0'
|
133
|
-
- !ruby/object:Gem::Dependency
|
134
|
-
name: spork
|
135
|
-
requirement: !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - ">="
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: '0'
|
140
|
-
type: :development
|
141
|
-
prerelease: false
|
142
|
-
version_requirements: !ruby/object:Gem::Requirement
|
143
|
-
requirements:
|
144
|
-
- - ">="
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: '0'
|
147
|
-
- !ruby/object:Gem::Dependency
|
148
|
-
name: yard
|
149
|
-
requirement: !ruby/object:Gem::Requirement
|
150
|
-
requirements:
|
151
|
-
- - ">="
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: '0'
|
154
|
-
type: :development
|
155
|
-
prerelease: false
|
156
|
-
version_requirements: !ruby/object:Gem::Requirement
|
157
|
-
requirements:
|
158
|
-
- - ">="
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
version: '0'
|
28
|
+
version: '12.0'
|
161
29
|
description: API Client for communicating with a Berkshelf API server
|
162
30
|
email:
|
163
31
|
- jamie@vialstudios.com
|
@@ -170,7 +38,6 @@ files:
|
|
170
38
|
- ".gitignore"
|
171
39
|
- ".travis.yml"
|
172
40
|
- Gemfile
|
173
|
-
- Guardfile
|
174
41
|
- LICENSE
|
175
42
|
- README.md
|
176
43
|
- Rakefile
|
@@ -182,6 +49,7 @@ files:
|
|
182
49
|
- lib/berkshelf/api_client/errors.rb
|
183
50
|
- lib/berkshelf/api_client/remote_cookbook.rb
|
184
51
|
- lib/berkshelf/api_client/version.rb
|
52
|
+
- lib/berkshelf/ridley_compat.rb
|
185
53
|
- spec/spec_helper.rb
|
186
54
|
- spec/unit/berkshelf/api_client/connection_spec.rb
|
187
55
|
- spec/unit/berkshelf/api_client/remote_cookbook_spec.rb
|
@@ -198,7 +66,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
198
66
|
requirements:
|
199
67
|
- - ">="
|
200
68
|
- !ruby/object:Gem::Version
|
201
|
-
version: '2.
|
69
|
+
version: '2.3'
|
202
70
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
203
71
|
requirements:
|
204
72
|
- - ">="
|
@@ -206,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
206
74
|
version: '0'
|
207
75
|
requirements: []
|
208
76
|
rubyforge_project:
|
209
|
-
rubygems_version: 2.
|
77
|
+
rubygems_version: 2.6.11
|
210
78
|
signing_key:
|
211
79
|
specification_version: 4
|
212
80
|
summary: API Client for communicating with a Berkshelf API server
|
data/Guardfile
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
guard 'spork' do
|
2
|
-
watch('Gemfile')
|
3
|
-
watch('spec/spec_helper.rb') { :rspec }
|
4
|
-
end
|
5
|
-
|
6
|
-
guard 'rspec', cli: '--color --drb --format Fuubar', all_on_start: false, all_after_pass: false do
|
7
|
-
watch(%r{^spec/unit/.+_spec\.rb$})
|
8
|
-
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/unit/#{m[1]}_spec.rb" }
|
9
|
-
watch('spec/spec_helper.rb') { 'spec' }
|
10
|
-
end
|