relax 0.2.1 → 0.3.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 +7 -0
- data/.github/workflows/build.yml +36 -0
- data/.gitignore +1 -0
- data/.rspec +1 -2
- data/.travis.yml +5 -0
- data/Appraisals +7 -0
- data/CHANGELOG.md +11 -0
- data/README.md +15 -3
- data/examples/delicious.rb +15 -4
- data/examples/flickr.rb +11 -7
- data/examples/vimeo.rb +6 -0
- data/gemfiles/faraday_2.0.gemfile +7 -0
- data/gemfiles/faraday_2.7.gemfile +7 -0
- data/lib/relax/client.rb +1 -16
- data/lib/relax/config.rb +9 -3
- data/lib/relax/configurable.rb +12 -0
- data/lib/relax/version.rb +1 -1
- data/lib/relax.rb +1 -0
- data/relax.gemspec +16 -12
- data/spec/relax/client_spec.rb +8 -24
- data/spec/relax/config_spec.rb +32 -11
- data/spec/relax/configurable_spec.rb +24 -0
- data/spec/relax/delegator_spec.rb +7 -8
- data/spec/relax/resource_spec.rb +23 -17
- data/spec/spec_helper.rb +0 -1
- metadata +47 -31
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e9a6f87140b7758340b4a69166c801d0953f84bb0f820f23d3d817e281985d4c
|
4
|
+
data.tar.gz: a11fd29fd730571425e4c4160e04a199e94cbab9488babd5485e8012454a694c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 950f73a57eb7f5f7373c862e150a323814d5aba741b9ea4c62aed447f8cd9bb2dea48f8cb0213d8ee74c8e527853514bab77353ae7d16916b53c1c2a9508fcbb
|
7
|
+
data.tar.gz: e0e08e5b49c6b926d79e8910762e56cd73f0762b789fc22149c95038d6250bf0fec294205872979af7d71edbcc878ebe3ee999999f569e9adbad40ea490e8f09
|
@@ -0,0 +1,36 @@
|
|
1
|
+
name: Build
|
2
|
+
on:
|
3
|
+
- push
|
4
|
+
- pull_request
|
5
|
+
|
6
|
+
jobs:
|
7
|
+
build:
|
8
|
+
name: Ruby ${{ matrix.ruby }} / Faraday ${{ matrix.faraday }}
|
9
|
+
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
10
|
+
strategy:
|
11
|
+
fail-fast: false
|
12
|
+
matrix:
|
13
|
+
ruby:
|
14
|
+
- "2.6"
|
15
|
+
- "2.7"
|
16
|
+
- "3.0"
|
17
|
+
- "3.1"
|
18
|
+
faraday:
|
19
|
+
- "2.0"
|
20
|
+
- "2.7"
|
21
|
+
|
22
|
+
runs-on: "ubuntu-latest"
|
23
|
+
|
24
|
+
env:
|
25
|
+
BUNDLE_GEMFILE: gemfiles/faraday_${{ matrix.faraday }}.gemfile
|
26
|
+
RUBYOPT: "--disable-error_highlight"
|
27
|
+
|
28
|
+
steps:
|
29
|
+
- uses: actions/checkout@v2
|
30
|
+
- uses: ruby/setup-ruby@v1
|
31
|
+
with:
|
32
|
+
ruby-version: ${{ matrix.ruby }}
|
33
|
+
- name: Setup project
|
34
|
+
run: bundle install
|
35
|
+
- name: Run tests
|
36
|
+
run: bundle exec rspec
|
data/.gitignore
CHANGED
data/.rspec
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
--
|
2
|
-
--format progress
|
1
|
+
--require spec_helper
|
data/.travis.yml
ADDED
data/Appraisals
ADDED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.3.0 - November 17, 2022
|
4
|
+
|
5
|
+
* Support Faraday ~> 2.0
|
6
|
+
* Require Ruby >= 2.6
|
7
|
+
|
8
|
+
## 0.2.2 – June 7, 2012
|
9
|
+
|
10
|
+
* Move default configuration into `Config`.
|
11
|
+
* Add `Configurable` module to encapsulate `#config` and `#configure`.
|
12
|
+
* Improve documentation and examples.
|
13
|
+
|
3
14
|
## 0.2.1 – May 30, 2012
|
4
15
|
|
5
16
|
* Add a timeout configuration option and use it on the resource connection
|
data/README.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Relax
|
2
2
|
|
3
|
+
[![Build Status][travis-image]][travis]
|
4
|
+
|
5
|
+
[travis]: http://travis-ci.org/tylerhunt/relax
|
6
|
+
[travis-image]: https://secure.travis-ci.org/tylerhunt/relax.png
|
7
|
+
|
3
8
|
A library of simple modules for building web service wrappers.
|
4
9
|
|
5
10
|
|
@@ -21,6 +26,11 @@ Relax is made up of three primary modules:
|
|
21
26
|
* `Relax::Delegator` — delegates class methods to an instance of the client
|
22
27
|
allowing for simple client usage
|
23
28
|
|
29
|
+
It also includes a basic configuration class, `Relax::Config`, which defines
|
30
|
+
some of client defaults and can used as the basis for your own custom
|
31
|
+
configuration classes.
|
32
|
+
|
33
|
+
|
24
34
|
### Example
|
25
35
|
|
26
36
|
``` ruby
|
@@ -28,6 +38,8 @@ require 'relax'
|
|
28
38
|
require 'faraday_middleware' # for JSON response parsing
|
29
39
|
|
30
40
|
module Vimeo
|
41
|
+
extend Relax::Delegator[:client]
|
42
|
+
|
31
43
|
class Client
|
32
44
|
include Relax::Client
|
33
45
|
|
@@ -58,9 +70,9 @@ module Vimeo
|
|
58
70
|
end
|
59
71
|
end
|
60
72
|
|
61
|
-
|
62
|
-
|
63
|
-
|
73
|
+
def self.client
|
74
|
+
@client ||= Client.new
|
75
|
+
end
|
64
76
|
end
|
65
77
|
|
66
78
|
Vimeo.user(ENV['VIMEO_USERNAME']).videos
|
data/examples/delicious.rb
CHANGED
@@ -1,19 +1,30 @@
|
|
1
|
+
# This example shows:
|
2
|
+
#
|
3
|
+
# - inheriting from Relax::Config and overriding Client#config to use it
|
4
|
+
# - customizing the resource to use basic auth and XML response parsing
|
5
|
+
# - instantiating multiple clients with distinct configurations
|
6
|
+
# - modifying a client instance endpoint to point to a different API
|
7
|
+
|
1
8
|
require 'relax'
|
2
9
|
require 'multi_xml'
|
3
10
|
require 'faraday_middleware'
|
4
11
|
|
5
12
|
module Delicious
|
6
|
-
|
13
|
+
class Config < Relax::Config
|
7
14
|
attr :username, true
|
8
15
|
attr :password, true
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
super
|
19
|
+
self.base_uri = 'https://api.del.icio.us/v1'
|
20
|
+
end
|
9
21
|
end
|
10
22
|
|
11
23
|
class Client
|
12
24
|
include Relax::Client
|
13
25
|
|
14
|
-
def
|
15
|
-
config
|
16
|
-
config.extend(Config)
|
26
|
+
def config
|
27
|
+
@config ||= Config.new
|
17
28
|
end
|
18
29
|
|
19
30
|
def posts
|
data/examples/flickr.rb
CHANGED
@@ -1,9 +1,15 @@
|
|
1
|
+
# This example shows:
|
2
|
+
#
|
3
|
+
# - overriding the default configuration values in Client#initialize
|
4
|
+
# - extending the configuration with custom values using config.extend
|
5
|
+
# - overriding Resource#get to merge in custom parameters
|
6
|
+
# - customizing the resource to use JSON response parsing
|
7
|
+
# - providing a module-level client accessor without using delegation
|
8
|
+
|
1
9
|
require 'relax'
|
2
10
|
require 'faraday_middleware'
|
3
11
|
|
4
12
|
module Flickr
|
5
|
-
extend Relax::Delegator[:client]
|
6
|
-
|
7
13
|
module Config
|
8
14
|
attr :api_key, true
|
9
15
|
end
|
@@ -36,9 +42,7 @@ module Flickr
|
|
36
42
|
end
|
37
43
|
|
38
44
|
def connection
|
39
|
-
super
|
40
|
-
builder.response(:json)
|
41
|
-
end
|
45
|
+
super { |builder| builder.response(:json) }
|
42
46
|
end
|
43
47
|
end
|
44
48
|
|
@@ -57,10 +61,10 @@ module Flickr
|
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
60
|
-
Flickr.configure do |config|
|
64
|
+
Flickr.client.configure do |config|
|
61
65
|
config.api_key = ENV['FLICKR_API_KEY']
|
62
66
|
end
|
63
67
|
|
64
|
-
photos = Flickr.search.photos('ruby')
|
68
|
+
photos = Flickr.client.search.photos('ruby')
|
65
69
|
|
66
70
|
puts photos.first(10).collect { |photo| photo['title'] }
|
data/examples/vimeo.rb
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# This example shows:
|
2
|
+
#
|
3
|
+
# - using Relax::Delegator to make the root module behave like a client
|
4
|
+
# - how to create resources that accept options for resource-level defaults
|
5
|
+
# - customizing the resource to use JSON response parsing
|
6
|
+
|
1
7
|
require 'relax'
|
2
8
|
require 'faraday_middleware'
|
3
9
|
|
data/lib/relax/client.rb
CHANGED
@@ -1,20 +1,5 @@
|
|
1
|
-
require 'faraday'
|
2
|
-
|
3
1
|
module Relax
|
4
2
|
module Client
|
5
|
-
|
6
|
-
TIMEOUT = 60
|
7
|
-
|
8
|
-
def config
|
9
|
-
@config ||= Config.new.configure do |config|
|
10
|
-
config.adapter = Faraday.default_adapter
|
11
|
-
config.user_agent = USER_AGENT
|
12
|
-
config.timeout = TIMEOUT
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def configure(&block)
|
17
|
-
config.configure(&block)
|
18
|
-
end
|
3
|
+
include Configurable
|
19
4
|
end
|
20
5
|
end
|
data/lib/relax/config.rb
CHANGED
@@ -1,13 +1,19 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
|
1
3
|
module Relax
|
2
4
|
class Config
|
5
|
+
USER_AGENT = "Relax Ruby Gem Client #{Relax::VERSION}"
|
6
|
+
TIMEOUT = 60
|
7
|
+
|
3
8
|
attr :adapter, true
|
4
9
|
attr :base_uri, true
|
5
10
|
attr :timeout, true
|
6
11
|
attr :user_agent, true
|
7
12
|
|
8
|
-
def
|
9
|
-
|
10
|
-
self
|
13
|
+
def initialize
|
14
|
+
self.adapter = Faraday.default_adapter
|
15
|
+
self.user_agent = USER_AGENT
|
16
|
+
self.timeout = TIMEOUT
|
11
17
|
end
|
12
18
|
end
|
13
19
|
end
|
data/lib/relax/version.rb
CHANGED
data/lib/relax.rb
CHANGED
data/relax.gemspec
CHANGED
@@ -1,17 +1,21 @@
|
|
1
1
|
require './lib/relax/version'
|
2
2
|
|
3
|
-
Gem::Specification.new do |
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
3
|
+
Gem::Specification.new do |spec|
|
4
|
+
spec.name = 'relax'
|
5
|
+
spec.version = Relax::VERSION
|
6
|
+
spec.authors = ['Tyler Hunt']
|
7
|
+
spec.summary = 'A flexible library for creating web service consumers.'
|
8
|
+
spec.homepage = 'http://github.com/tylerhunt/relax'
|
9
|
+
spec.license = 'MIT'
|
9
10
|
|
10
|
-
|
11
|
-
gem.add_development_dependency 'rspec', '~> 2.6'
|
11
|
+
spec.required_ruby_version = '>= 2.6'
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
spec.add_dependency 'faraday', '~> 2.0'
|
14
|
+
spec.add_development_dependency 'rspec', '~> 3.12'
|
15
|
+
spec.add_development_dependency 'appraisal', '~> 2.4'
|
16
|
+
|
17
|
+
spec.files = `git ls-files`.split($\)
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
|
+
spec.require_paths = ['lib']
|
17
21
|
end
|
data/spec/relax/client_spec.rb
CHANGED
@@ -1,40 +1,24 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
describe Relax::Client do
|
4
|
-
let(:client) { Class.new { include Relax::Client }.new }
|
5
|
-
|
6
|
-
subject { client }
|
1
|
+
RSpec.describe Relax::Client do
|
2
|
+
subject(:client) { Class.new { include Relax::Client }.new }
|
7
3
|
|
8
4
|
context '#config' do
|
9
5
|
it 'returns an instance of Relax::Config' do
|
10
|
-
|
6
|
+
expect(client.config).to be_a Relax::Config
|
11
7
|
end
|
12
8
|
|
13
9
|
it 'memoizes the configuration' do
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'defaults' do
|
18
|
-
subject { client.config }
|
19
|
-
|
20
|
-
its(:adapter) { should == Faraday.default_adapter }
|
21
|
-
its(:base_uri) { should be_nil }
|
22
|
-
its(:timeout) { should == 60 }
|
23
|
-
its(:user_agent) { should == "Relax Ruby Gem Client #{Relax::VERSION}" }
|
10
|
+
expect(client.config).to eq client.config
|
24
11
|
end
|
25
12
|
end
|
26
13
|
|
27
14
|
context '#configure' do
|
28
15
|
it 'yields an instance of the configuration' do
|
29
|
-
expect {
|
30
|
-
|
31
|
-
config.base_uri = 'http://api.example.com/v2'
|
32
|
-
end
|
33
|
-
}.to change(subject.config, :base_uri).to('http://api.example.com/v2')
|
16
|
+
expect { |block| client.configure &block }
|
17
|
+
.to yield_with_args(client.config)
|
34
18
|
end
|
35
19
|
|
36
|
-
it 'returns
|
37
|
-
|
20
|
+
it 'returns self' do
|
21
|
+
expect(client.configure {}).to eq client
|
38
22
|
end
|
39
23
|
end
|
40
24
|
end
|
data/spec/relax/config_spec.rb
CHANGED
@@ -1,17 +1,38 @@
|
|
1
|
-
|
1
|
+
RSpec.describe Relax::Config do
|
2
|
+
{
|
3
|
+
USER_AGENT: "Relax Ruby Gem Client #{Relax::VERSION}",
|
4
|
+
TIMEOUT: 60
|
5
|
+
}.each do |constant, value|
|
6
|
+
context "::#{constant}" do
|
7
|
+
subject { described_class.const_get(constant) }
|
2
8
|
|
3
|
-
|
4
|
-
context '#configure' do
|
5
|
-
it 'yields an instance of the configuration' do
|
6
|
-
expect {
|
7
|
-
subject.configure do |config|
|
8
|
-
config.base_uri = 'http://api.example.com/v2'
|
9
|
-
end
|
10
|
-
}.to change(subject, :base_uri).to('http://api.example.com/v2')
|
9
|
+
it { is_expected.to eq value }
|
11
10
|
end
|
11
|
+
end
|
12
|
+
|
13
|
+
subject(:config) { described_class.new }
|
14
|
+
|
15
|
+
context '#adapter' do
|
16
|
+
it 'defaults to Faraday’s default adapter' do
|
17
|
+
expect(config.adapter).to eq Faraday.default_adapter
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context '#base_uri' do
|
22
|
+
it 'defaults to nil' do
|
23
|
+
expect(config.base_uri).to be_nil
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context '#adapter' do
|
28
|
+
it 'has a default value' do
|
29
|
+
expect(config.timeout).to eq 60
|
30
|
+
end
|
31
|
+
end
|
12
32
|
|
13
|
-
|
14
|
-
|
33
|
+
context '#adapter' do
|
34
|
+
it 'has a default value' do
|
35
|
+
expect(config.user_agent).to eq "Relax Ruby Gem Client #{Relax::VERSION}"
|
15
36
|
end
|
16
37
|
end
|
17
38
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
RSpec.describe Relax::Configurable do
|
2
|
+
subject(:configurable) { Class.new { include Relax::Configurable }.new }
|
3
|
+
|
4
|
+
context '#config' do
|
5
|
+
it 'returns an instance of Relax::Config' do
|
6
|
+
expect(configurable.config).to be_a Relax::Config
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'memoizes the configuration' do
|
10
|
+
expect(configurable.config).to eq configurable.config
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context '#configure' do
|
15
|
+
it 'yields an instance of the configuration' do
|
16
|
+
expect { |block| configurable.configure &block }
|
17
|
+
.to yield_with_args(configurable.config)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'returns self' do
|
21
|
+
expect(configurable.configure {}).to eq configurable
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,9 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
describe Relax::Delegator do
|
1
|
+
RSpec.describe Relax::Delegator do
|
4
2
|
let(:client) { Class.new { include Relax::Client } }
|
5
3
|
|
6
|
-
subject do
|
4
|
+
subject(:delegator) do
|
7
5
|
Class.new do
|
8
6
|
extend Relax::Delegator[:client]
|
9
7
|
|
@@ -13,19 +11,20 @@ describe Relax::Delegator do
|
|
13
11
|
end
|
14
12
|
end
|
15
13
|
|
16
|
-
before {
|
14
|
+
before { delegator.client = client.new }
|
17
15
|
|
18
16
|
context '.[]' do
|
19
17
|
it 'accepts a client method name and returns a module' do
|
20
|
-
described_class[:client].
|
18
|
+
expect(described_class[:client]).to be_a Module
|
21
19
|
end
|
22
20
|
end
|
23
21
|
|
24
22
|
context 'delegation' do
|
25
23
|
Relax::Client.instance_methods.each do |method|
|
26
24
|
it "delegates .#{method} to the client" do
|
27
|
-
|
28
|
-
|
25
|
+
expect(delegator.client).to receive(method)
|
26
|
+
|
27
|
+
delegator.send method
|
29
28
|
end
|
30
29
|
end
|
31
30
|
end
|
data/spec/relax/resource_spec.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
describe Relax::Resource do
|
1
|
+
RSpec.describe Relax::Resource do
|
4
2
|
let(:client) do
|
5
3
|
Class.new do
|
6
4
|
include Relax::Client
|
@@ -13,7 +11,7 @@ describe Relax::Resource do
|
|
13
11
|
|
14
12
|
let(:resource_class) { Class.new { include Relax::Resource } }
|
15
13
|
|
16
|
-
subject { resource_class.new(client) }
|
14
|
+
subject(:resource) { resource_class.new(client) }
|
17
15
|
|
18
16
|
context '.new' do
|
19
17
|
it 'accepts an options hash' do
|
@@ -22,42 +20,50 @@ describe Relax::Resource do
|
|
22
20
|
end
|
23
21
|
|
24
22
|
context '#connection' do
|
25
|
-
let(:connection) {
|
23
|
+
let(:connection) { resource.send(:connection) }
|
26
24
|
|
27
25
|
it 'returns an instance of Faraday::Connection' do
|
28
|
-
connection.
|
26
|
+
expect(connection).to be_a Faraday::Connection
|
29
27
|
end
|
30
28
|
|
31
29
|
it 'uses the configured base URI as the URL' do
|
32
|
-
connection.url_prefix.
|
30
|
+
expect(connection.url_prefix).to eq URI.parse(client.config.base_uri)
|
33
31
|
end
|
34
32
|
|
35
33
|
it 'uses the configured timeout' do
|
36
|
-
connection.options[:timeout].
|
34
|
+
expect(connection.options[:timeout]).to eq client.config.timeout
|
37
35
|
end
|
38
36
|
|
39
37
|
it 'accepts an options hash to be passed to Faraday::Connection' do
|
40
38
|
headers = { user_agent: "#{described_class} Test" }
|
41
|
-
connection =
|
42
|
-
|
39
|
+
connection = resource.send(:connection, headers: headers)
|
40
|
+
|
41
|
+
expect(connection.headers['User-Agent']).to eq headers[:user_agent]
|
43
42
|
end
|
44
43
|
|
45
44
|
it 'yields a builder to allow the middleware to be customized' do
|
46
|
-
|
47
|
-
builder.use
|
48
|
-
|
45
|
+
connection = resource.send(:connection) { |builder|
|
46
|
+
builder.use Faraday::Response::Logger
|
47
|
+
}
|
48
|
+
|
49
|
+
expect(connection.builder.handlers).to include Faraday::Response::Logger
|
49
50
|
end
|
50
51
|
end
|
51
52
|
|
52
53
|
context 'connection delegation' do
|
53
|
-
let(:connection) {
|
54
|
+
let(:connection) { double(:connection) }
|
54
55
|
|
55
|
-
before
|
56
|
+
before do
|
57
|
+
allow(resource)
|
58
|
+
.to receive(:connection)
|
59
|
+
.and_return(connection)
|
60
|
+
end
|
56
61
|
|
57
62
|
Faraday::Connection::METHODS.each do |method|
|
58
63
|
it "delegates ##{method} to #connection" do
|
59
|
-
connection.
|
60
|
-
|
64
|
+
expect(connection).to receive(method)
|
65
|
+
|
66
|
+
resource.send method
|
61
67
|
end
|
62
68
|
end
|
63
69
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,56 +1,68 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Tyler Hunt
|
9
|
-
autorequire:
|
8
|
+
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2022-11-18 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: faraday
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: '2.0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
26
|
+
version: '2.0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- - ~>
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: '
|
33
|
+
version: '3.12'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- - ~>
|
38
|
+
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: '
|
46
|
-
|
47
|
-
|
40
|
+
version: '3.12'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: appraisal
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.4'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.4'
|
55
|
+
description:
|
56
|
+
email:
|
48
57
|
executables: []
|
49
58
|
extensions: []
|
50
59
|
extra_rdoc_files: []
|
51
60
|
files:
|
52
|
-
- .
|
53
|
-
- .
|
61
|
+
- ".github/workflows/build.yml"
|
62
|
+
- ".gitignore"
|
63
|
+
- ".rspec"
|
64
|
+
- ".travis.yml"
|
65
|
+
- Appraisals
|
54
66
|
- CHANGELOG.md
|
55
67
|
- Gemfile
|
56
68
|
- LICENSE
|
@@ -59,45 +71,49 @@ files:
|
|
59
71
|
- examples/delicious.rb
|
60
72
|
- examples/flickr.rb
|
61
73
|
- examples/vimeo.rb
|
74
|
+
- gemfiles/faraday_2.0.gemfile
|
75
|
+
- gemfiles/faraday_2.7.gemfile
|
62
76
|
- lib/relax.rb
|
63
77
|
- lib/relax/client.rb
|
64
78
|
- lib/relax/config.rb
|
79
|
+
- lib/relax/configurable.rb
|
65
80
|
- lib/relax/delegator.rb
|
66
81
|
- lib/relax/resource.rb
|
67
82
|
- lib/relax/version.rb
|
68
83
|
- relax.gemspec
|
69
84
|
- spec/relax/client_spec.rb
|
70
85
|
- spec/relax/config_spec.rb
|
86
|
+
- spec/relax/configurable_spec.rb
|
71
87
|
- spec/relax/delegator_spec.rb
|
72
88
|
- spec/relax/resource_spec.rb
|
73
89
|
- spec/spec_helper.rb
|
74
90
|
homepage: http://github.com/tylerhunt/relax
|
75
|
-
licenses:
|
76
|
-
|
91
|
+
licenses:
|
92
|
+
- MIT
|
93
|
+
metadata: {}
|
94
|
+
post_install_message:
|
77
95
|
rdoc_options: []
|
78
96
|
require_paths:
|
79
97
|
- lib
|
80
98
|
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
99
|
requirements:
|
83
|
-
- -
|
100
|
+
- - ">="
|
84
101
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
102
|
+
version: '2.6'
|
86
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
-
none: false
|
88
104
|
requirements:
|
89
|
-
- -
|
105
|
+
- - ">="
|
90
106
|
- !ruby/object:Gem::Version
|
91
107
|
version: '0'
|
92
108
|
requirements: []
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
specification_version: 3
|
109
|
+
rubygems_version: 3.3.7
|
110
|
+
signing_key:
|
111
|
+
specification_version: 4
|
97
112
|
summary: A flexible library for creating web service consumers.
|
98
113
|
test_files:
|
99
114
|
- spec/relax/client_spec.rb
|
100
115
|
- spec/relax/config_spec.rb
|
116
|
+
- spec/relax/configurable_spec.rb
|
101
117
|
- spec/relax/delegator_spec.rb
|
102
118
|
- spec/relax/resource_spec.rb
|
103
119
|
- spec/spec_helper.rb
|