blanket_wrapper 1.0.0 → 1.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.
- checksums.yaml +4 -4
- data/.yardopts +7 -0
- data/blanket.gemspec +1 -0
- data/lib/blanket.rb +3 -63
- data/lib/blanket/response.rb +7 -2
- data/lib/blanket/version.rb +2 -1
- data/lib/blanket/wrapper.rb +86 -0
- data/spec/blanket/wrapper_spec.rb +159 -0
- data/spec/blanket_spec.rb +3 -152
- metadata +21 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4028f6fe83d360d8cdc4bc7af5d2c25b1c9b30f1
|
4
|
+
data.tar.gz: f94aded281f1b23a9e2f4a311dcee1ae071a23f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e2b774f5d56de52201ff07bcae76b2b85ccd1c9cbda67d7c2f7cb8de488e6e69acd35dcf45adc40f1540e1538782ac0454995c162ecddd90a1eb4fe49555efa
|
7
|
+
data.tar.gz: 56f747dd7b792f21ecc8df6bc028d802e85a3b00bc9d43d04e40c4da448b7f7fe5cf06ab1aa4adc98141c5aeaae1db1f1cdca814fb9f060539ad0f0a7dfc26a5
|
data/.yardopts
ADDED
data/blanket.gemspec
CHANGED
data/lib/blanket.rb
CHANGED
@@ -1,71 +1,11 @@
|
|
1
1
|
require "blanket/version"
|
2
2
|
require "blanket/response"
|
3
|
+
require "blanket/wrapper"
|
3
4
|
require 'httparty'
|
4
5
|
|
5
6
|
module Blanket
|
7
|
+
# Wraps an API using Blanket::Wrapper
|
6
8
|
def self.wrap(*args)
|
7
|
-
|
8
|
-
end
|
9
|
-
|
10
|
-
class Blanket
|
11
|
-
attr_accessor :headers
|
12
|
-
attr_accessor :extension
|
13
|
-
|
14
|
-
def initialize(base_uri, options={})
|
15
|
-
@base_uri = base_uri
|
16
|
-
@uri_parts = []
|
17
|
-
@headers = (options[:headers].nil?) ? {} : options[:headers]
|
18
|
-
@extension = options[:extension]
|
19
|
-
end
|
20
|
-
|
21
|
-
# RESTful actions
|
22
|
-
[:get, :post, :put, :patch, :delete].each do |action|
|
23
|
-
define_method(action) do |id=nil, options={}|
|
24
|
-
request(action, id, options)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def method_missing(method, *args, &block)
|
29
|
-
Blanket.new uri_from_parts([method, args.first]), {
|
30
|
-
headers: @headers,
|
31
|
-
extension: @extension
|
32
|
-
}
|
33
|
-
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
def request(method, id=nil, options={})
|
38
|
-
if id.is_a? Hash
|
39
|
-
options = id
|
40
|
-
id = nil
|
41
|
-
end
|
42
|
-
|
43
|
-
headers = merged_headers(options[:headers])
|
44
|
-
uri = uri_from_parts([id])
|
45
|
-
|
46
|
-
if @extension
|
47
|
-
uri = "#{uri}.#{extension}"
|
48
|
-
end
|
49
|
-
|
50
|
-
response = HTTParty.send(method, uri, {
|
51
|
-
query: options[:params],
|
52
|
-
headers: headers
|
53
|
-
}.reject { |k, v| v.nil? || v.empty? })
|
54
|
-
|
55
|
-
body = (response.respond_to? :body) ? response.body : nil
|
56
|
-
|
57
|
-
(body.is_a? Array) ? body.map(Response.new) : Response.new(body)
|
58
|
-
end
|
59
|
-
|
60
|
-
def merged_headers(headers)
|
61
|
-
headers = @headers.merge(headers != nil ? headers : {})
|
62
|
-
end
|
63
|
-
|
64
|
-
def uri_from_parts(parts)
|
65
|
-
parts
|
66
|
-
.clone
|
67
|
-
.compact
|
68
|
-
.inject(@base_uri.clone) { |memo, part| memo << "/#{part}" }
|
69
|
-
end
|
9
|
+
Wrapper.new *args
|
70
10
|
end
|
71
11
|
end
|
data/lib/blanket/response.rb
CHANGED
@@ -3,13 +3,20 @@ require 'json'
|
|
3
3
|
|
4
4
|
module Blanket
|
5
5
|
class Response
|
6
|
+
# Attribute reader for the original JSON payload string
|
6
7
|
attr_reader :payload
|
7
8
|
|
9
|
+
# A Blanket HTTP response wrapper.
|
10
|
+
# @param [String] json_string A string containing data in the JSON format
|
11
|
+
# @return [Blanket::Response] The wrapped Response object
|
8
12
|
def initialize(json_string)
|
9
13
|
json_string ||= "{}"
|
10
14
|
@payload = payload_from_json(JSON.parse(json_string))
|
11
15
|
end
|
12
16
|
|
17
|
+
private
|
18
|
+
|
19
|
+
# Allows accessing the payload's JSON keys through methods.
|
13
20
|
def method_missing(method, *args, &block)
|
14
21
|
if payload.respond_to? method
|
15
22
|
payload.send method, *args, &block
|
@@ -18,8 +25,6 @@ module Blanket
|
|
18
25
|
end
|
19
26
|
end
|
20
27
|
|
21
|
-
private
|
22
|
-
|
23
28
|
def payload_from_json(json)
|
24
29
|
if json
|
25
30
|
parsed = [json].flatten.map do |item|
|
data/lib/blanket/version.rb
CHANGED
@@ -0,0 +1,86 @@
|
|
1
|
+
module Blanket
|
2
|
+
class Wrapper
|
3
|
+
class << self
|
4
|
+
private
|
5
|
+
# @macro [attach] REST action
|
6
|
+
# @method $1()
|
7
|
+
# Performs a $1 request on the wrapped URL
|
8
|
+
# @param [String, Symbol, Numeric] id The resource identifier to attach to the last part of the request
|
9
|
+
# @param [Hash] options An options hash with values for :headers, :extension and :params
|
10
|
+
# @return [Blanket::Response, Array] A wrapped Blanket::Response or an Array
|
11
|
+
def add_action(action)
|
12
|
+
define_method(action) do |id=nil, options={}|
|
13
|
+
request(action, id, options)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# Attribute accessor for HTTP Headers that
|
19
|
+
# should be applied to all requests
|
20
|
+
attr_accessor :headers
|
21
|
+
|
22
|
+
# Attribute accessor for file extension that
|
23
|
+
# should be appended to all requests
|
24
|
+
attr_accessor :extension
|
25
|
+
|
26
|
+
add_action :get
|
27
|
+
add_action :post
|
28
|
+
add_action :put
|
29
|
+
add_action :patch
|
30
|
+
add_action :delete
|
31
|
+
|
32
|
+
# Wraps the base URL for an API
|
33
|
+
# @param [String, Symbol] base_uri The root URL of the API you wish to wrap.
|
34
|
+
# @param [Hash] options An options hash with global values for :headers and :extension
|
35
|
+
# @return [Blanket] The Blanket object wrapping the API
|
36
|
+
def initialize(base_uri, options={})
|
37
|
+
@base_uri = base_uri
|
38
|
+
@uri_parts = []
|
39
|
+
@headers = (options[:headers].nil?) ? {} : options[:headers]
|
40
|
+
@extension = options[:extension]
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def method_missing(method, *args, &block)
|
46
|
+
Wrapper.new uri_from_parts([method, args.first]), {
|
47
|
+
headers: @headers,
|
48
|
+
extension: @extension
|
49
|
+
}
|
50
|
+
end
|
51
|
+
|
52
|
+
def request(method, id=nil, options={})
|
53
|
+
if id.is_a? Hash
|
54
|
+
options = id
|
55
|
+
id = nil
|
56
|
+
end
|
57
|
+
|
58
|
+
headers = merged_headers(options[:headers])
|
59
|
+
uri = uri_from_parts([id])
|
60
|
+
|
61
|
+
if @extension
|
62
|
+
uri = "#{uri}.#{extension}"
|
63
|
+
end
|
64
|
+
|
65
|
+
response = HTTParty.send(method, uri, {
|
66
|
+
query: options[:params],
|
67
|
+
headers: headers
|
68
|
+
}.reject { |k, v| v.nil? || v.empty? })
|
69
|
+
|
70
|
+
body = (response.respond_to? :body) ? response.body : nil
|
71
|
+
|
72
|
+
(body.is_a? Array) ? body.map(Response.new) : Response.new(body)
|
73
|
+
end
|
74
|
+
|
75
|
+
def merged_headers(headers)
|
76
|
+
headers = @headers.merge(headers != nil ? headers : {})
|
77
|
+
end
|
78
|
+
|
79
|
+
def uri_from_parts(parts)
|
80
|
+
parts
|
81
|
+
.clone
|
82
|
+
.compact
|
83
|
+
.inject(@base_uri.clone) { |memo, part| memo << "/#{part}" }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,159 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'blanket/wrapper'
|
3
|
+
|
4
|
+
describe "Blanket::Wrapper" do
|
5
|
+
let :api do
|
6
|
+
Blanket::wrap("http://api.example.org")
|
7
|
+
end
|
8
|
+
|
9
|
+
describe 'Making Requests' do
|
10
|
+
before :each do
|
11
|
+
allow(HTTParty).to receive(:get)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'resets after performing a request' do
|
15
|
+
api.users.get()
|
16
|
+
api.videos.get()
|
17
|
+
|
18
|
+
expect(HTTParty).to have_received(:get).with("http://api.example.org/videos", anything())
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "Response" do
|
22
|
+
before :each do
|
23
|
+
stub_request(:get, "http://api.example.org/users").to_return(:body => '{"title": "Something"}')
|
24
|
+
end
|
25
|
+
|
26
|
+
let :response do
|
27
|
+
api.users.get()
|
28
|
+
end
|
29
|
+
|
30
|
+
it "returns a Blanket::Response instance" do
|
31
|
+
expect(response).to be_kind_of(Blanket::Response)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe 'Resource identification' do
|
36
|
+
context 'When using a resource method' do
|
37
|
+
it 'allows identifying a resource' do
|
38
|
+
api.users(55).get()
|
39
|
+
|
40
|
+
expect(HTTParty).to have_received(:get).with("http://api.example.org/users/55", anything())
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'only allows one identifier per resource' do
|
44
|
+
api.users(55, 37).get()
|
45
|
+
|
46
|
+
expect(HTTParty).not_to have_received(:get).with("http://api.example.org/users/55/37", anything())
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'When using #get' do
|
51
|
+
it 'allows identifying the last resource' do
|
52
|
+
api.users(55).videos.get(15)
|
53
|
+
|
54
|
+
expect(HTTParty).to have_received(:get).with("http://api.example.org/users/55/videos/15", anything())
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe 'Headers' do
|
60
|
+
it 'allows sending headers in a request' do
|
61
|
+
api.users(55).get(headers: {foo: 'bar'})
|
62
|
+
|
63
|
+
expect(HTTParty).to have_received(:get).with('http://api.example.org/users/55', headers: {foo: 'bar'})
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'allows setting headers globally' do
|
67
|
+
api = Blanket::wrap("http://api.example.org", headers: {token: 'my secret token'})
|
68
|
+
api.users(55).get()
|
69
|
+
|
70
|
+
expect(HTTParty).to have_received(:get).with('http://api.example.org/users/55', headers: {token: 'my secret token'})
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe 'Parameters' do
|
75
|
+
it 'allows sending parameters in a request' do
|
76
|
+
api.users(55).get(params: {foo: 'bar'})
|
77
|
+
|
78
|
+
expect(HTTParty).to have_received(:get).with('http://api.example.org/users/55', query: {foo: 'bar'})
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe 'URL Extension' do
|
83
|
+
it 'allows setting an extension for a request', :wip => true do
|
84
|
+
users_endpoint = api.users(55)
|
85
|
+
users_endpoint.extension = :json
|
86
|
+
users_endpoint.get
|
87
|
+
|
88
|
+
expect(HTTParty).to have_received(:get).with('http://api.example.org/users/55.json', anything())
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'allows setting an extension globally' do
|
92
|
+
api = Blanket::wrap("http://api.example.org", extension: :xml)
|
93
|
+
api.users(55).get
|
94
|
+
|
95
|
+
expect(HTTParty).to have_received(:get).with('http://api.example.org/users/55.xml', anything())
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe '#get' do
|
101
|
+
before :each do
|
102
|
+
allow(HTTParty).to receive(:get)
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'GETs a resource' do
|
106
|
+
api.users.get()
|
107
|
+
|
108
|
+
expect(HTTParty).to have_received(:get).with("http://api.example.org/users", anything())
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
describe '#post' do
|
113
|
+
before :each do
|
114
|
+
allow(HTTParty).to receive(:post)
|
115
|
+
end
|
116
|
+
|
117
|
+
it 'POSTs a resource' do
|
118
|
+
api.users.post()
|
119
|
+
|
120
|
+
expect(HTTParty).to have_received(:post).with("http://api.example.org/users", anything())
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
describe '#put' do
|
125
|
+
before :each do
|
126
|
+
allow(HTTParty).to receive(:put)
|
127
|
+
end
|
128
|
+
|
129
|
+
it 'PUTs a resource' do
|
130
|
+
api.users.put()
|
131
|
+
|
132
|
+
expect(HTTParty).to have_received(:put).with("http://api.example.org/users", anything())
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
describe '#patch' do
|
137
|
+
before :each do
|
138
|
+
allow(HTTParty).to receive(:patch)
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'PATCHes a resource' do
|
142
|
+
api.users.patch()
|
143
|
+
|
144
|
+
expect(HTTParty).to have_received(:patch).with("http://api.example.org/users", anything())
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
describe '#delete' do
|
149
|
+
before :each do
|
150
|
+
allow(HTTParty).to receive(:delete)
|
151
|
+
end
|
152
|
+
|
153
|
+
it 'DELETEs a resource' do
|
154
|
+
api.users.delete()
|
155
|
+
|
156
|
+
expect(HTTParty).to have_received(:delete).with("http://api.example.org/users", anything())
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
data/spec/blanket_spec.rb
CHANGED
@@ -1,158 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Blanket do
|
4
|
-
|
5
|
-
Blanket::
|
6
|
-
|
7
|
-
|
8
|
-
describe 'Making Requests' do
|
9
|
-
before :each do
|
10
|
-
allow(HTTParty).to receive(:get)
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'resets after performing a request' do
|
14
|
-
api.users.get()
|
15
|
-
api.videos.get()
|
16
|
-
|
17
|
-
expect(HTTParty).to have_received(:get).with("http://api.example.org/videos", anything())
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "Response" do
|
21
|
-
before :each do
|
22
|
-
stub_request(:get, "http://api.example.org/users").to_return(:body => '{"title": "Something"}')
|
23
|
-
end
|
24
|
-
|
25
|
-
let :response do
|
26
|
-
api.users.get()
|
27
|
-
end
|
28
|
-
|
29
|
-
it "returns a Blanket::Response instance" do
|
30
|
-
expect(response).to be_kind_of(Blanket::Response)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
describe 'Resource identification' do
|
35
|
-
context 'When using a resource method' do
|
36
|
-
it 'allows identifying a resource' do
|
37
|
-
api.users(55).get()
|
38
|
-
|
39
|
-
expect(HTTParty).to have_received(:get).with("http://api.example.org/users/55", anything())
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'only allows one identifier per resource' do
|
43
|
-
api.users(55, 37).get()
|
44
|
-
|
45
|
-
expect(HTTParty).not_to have_received(:get).with("http://api.example.org/users/55/37", anything())
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
context 'When using #get' do
|
50
|
-
it 'allows identifying the last resource' do
|
51
|
-
api.users(55).videos.get(15)
|
52
|
-
|
53
|
-
expect(HTTParty).to have_received(:get).with("http://api.example.org/users/55/videos/15", anything())
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
describe 'Headers' do
|
59
|
-
it 'allows sending headers in a request' do
|
60
|
-
api.users(55).get(headers: {foo: 'bar'})
|
61
|
-
|
62
|
-
expect(HTTParty).to have_received(:get).with('http://api.example.org/users/55', headers: {foo: 'bar'})
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'allows setting headers globally' do
|
66
|
-
api = Blanket::wrap("http://api.example.org", headers: {token: 'my secret token'})
|
67
|
-
api.users(55).get()
|
68
|
-
|
69
|
-
expect(HTTParty).to have_received(:get).with('http://api.example.org/users/55', headers: {token: 'my secret token'})
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
describe 'Parameters' do
|
74
|
-
it 'allows sending parameters in a request' do
|
75
|
-
api.users(55).get(params: {foo: 'bar'})
|
76
|
-
|
77
|
-
expect(HTTParty).to have_received(:get).with('http://api.example.org/users/55', query: {foo: 'bar'})
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
describe 'URL Extension' do
|
82
|
-
it 'allows setting an extension for a request', :wip => true do
|
83
|
-
users_endpoint = api.users(55)
|
84
|
-
users_endpoint.extension = :json
|
85
|
-
users_endpoint.get
|
86
|
-
|
87
|
-
expect(HTTParty).to have_received(:get).with('http://api.example.org/users/55.json', anything())
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'allows setting an extension globally' do
|
91
|
-
api = Blanket::wrap("http://api.example.org", extension: :xml)
|
92
|
-
api.users(55).get
|
93
|
-
|
94
|
-
expect(HTTParty).to have_received(:get).with('http://api.example.org/users/55.xml', anything())
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
describe '#get' do
|
100
|
-
before :each do
|
101
|
-
allow(HTTParty).to receive(:get)
|
102
|
-
end
|
103
|
-
|
104
|
-
it 'GETs a resource' do
|
105
|
-
api.users.get()
|
106
|
-
|
107
|
-
expect(HTTParty).to have_received(:get).with("http://api.example.org/users", anything())
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
describe '#post' do
|
112
|
-
before :each do
|
113
|
-
allow(HTTParty).to receive(:post)
|
114
|
-
end
|
115
|
-
|
116
|
-
it 'POSTs a resource' do
|
117
|
-
api.users.post()
|
118
|
-
|
119
|
-
expect(HTTParty).to have_received(:post).with("http://api.example.org/users", anything())
|
120
|
-
end
|
121
|
-
end
|
122
|
-
|
123
|
-
describe '#put' do
|
124
|
-
before :each do
|
125
|
-
allow(HTTParty).to receive(:put)
|
126
|
-
end
|
127
|
-
|
128
|
-
it 'PUTs a resource' do
|
129
|
-
api.users.put()
|
130
|
-
|
131
|
-
expect(HTTParty).to have_received(:put).with("http://api.example.org/users", anything())
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
describe '#patch' do
|
136
|
-
before :each do
|
137
|
-
allow(HTTParty).to receive(:patch)
|
138
|
-
end
|
139
|
-
|
140
|
-
it 'PATCHes a resource' do
|
141
|
-
api.users.patch()
|
142
|
-
|
143
|
-
expect(HTTParty).to have_received(:patch).with("http://api.example.org/users", anything())
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
describe '#delete' do
|
148
|
-
before :each do
|
149
|
-
allow(HTTParty).to receive(:delete)
|
150
|
-
end
|
151
|
-
|
152
|
-
it 'DELETEs a resource' do
|
153
|
-
api.users.delete()
|
154
|
-
|
155
|
-
expect(HTTParty).to have_received(:delete).with("http://api.example.org/users", anything())
|
4
|
+
describe '.wrap' do
|
5
|
+
it "creates a new Blanket::Wrapper instance" do
|
6
|
+
expect(Blanket.wrap("a_url")).to be_kind_of(Blanket::Wrapper)
|
156
7
|
end
|
157
8
|
end
|
158
9
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blanket_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bruno Abrantes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -192,6 +192,20 @@ dependencies:
|
|
192
192
|
- - '>='
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: yard
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - '>='
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - '>='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
195
209
|
description:
|
196
210
|
email:
|
197
211
|
- bruno@brunoabrantes.com
|
@@ -202,6 +216,7 @@ files:
|
|
202
216
|
- .coveralls.yml
|
203
217
|
- .gitignore
|
204
218
|
- .travis.yml
|
219
|
+
- .yardopts
|
205
220
|
- Gemfile
|
206
221
|
- Guardfile
|
207
222
|
- LICENSE
|
@@ -212,7 +227,9 @@ files:
|
|
212
227
|
- lib/blanket.rb
|
213
228
|
- lib/blanket/response.rb
|
214
229
|
- lib/blanket/version.rb
|
230
|
+
- lib/blanket/wrapper.rb
|
215
231
|
- spec/blanket/response_spec.rb
|
232
|
+
- spec/blanket/wrapper_spec.rb
|
216
233
|
- spec/blanket_spec.rb
|
217
234
|
- spec/spec_helper.rb
|
218
235
|
homepage: https://github.com/inf0rmer/blanket
|
@@ -241,5 +258,7 @@ specification_version: 4
|
|
241
258
|
summary: A dead simple API wrapper. Access your data with style.
|
242
259
|
test_files:
|
243
260
|
- spec/blanket/response_spec.rb
|
261
|
+
- spec/blanket/wrapper_spec.rb
|
244
262
|
- spec/blanket_spec.rb
|
245
263
|
- spec/spec_helper.rb
|
264
|
+
has_rdoc:
|