zoid 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be2a5ab67b3e8e4659ba8f10fbb3e84c36605c57
4
- data.tar.gz: 1fb44606a91f464a6bdb64e855b6e8be30f575aa
3
+ metadata.gz: 78a8b8d4dca24858ec3a2f4b731622f40fafbe7b
4
+ data.tar.gz: 2ac2958de0e04adf0a7822584fd6d29a2cc47583
5
5
  SHA512:
6
- metadata.gz: 2098eb4aaa5debd2916c046e0d57b2b5d8d565204bd4abdd67030bde172c66943406a83c79b44e9b649ad93f0ae00036cc2010ff692ca30fcd9c984bf8c5069f
7
- data.tar.gz: 4fb80ccca5296992d595f867e7b9e20fa8cb174ac81fa98b5a539d1e2cc0d8bea926a4a08457b5ba33eac8c919699e7b9e43059f857de541ff4da0d5117d751d
6
+ metadata.gz: 049fca773682604d4c454b5e8e38f7c6abafa5d4af75018911a39162b9e267f15f7245770fcb0d209e977d0c905a1e65cee235740a3e3fb6134439cec989bdc1
7
+ data.tar.gz: 40f2d5efad678f35e5465dad77202b0f14cda7d47c104e7aa2aa1590a8644c6cd71523fed81f318e9ee83d8eb4ed307223b59f2505e0cf27ac8bab4e5ad4c622
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Zoid
1
+ # Zoid — Friendly JSON API consumer
2
2
 
3
- Friendly Json API consumer.
3
+ ![zoid](http://pre12.deviantart.net/81ba/th/pre/f/2013/022/e/1/why_not_zoidberg___by_claustrophobias-d5sbjw8.png)
4
4
 
5
5
  ## Usage
6
6
 
@@ -26,6 +26,18 @@ titles = closed_issues.map { |issue| issue.title }
26
26
  puts titles
27
27
  ```
28
28
 
29
+ ### Configuring the connection
30
+
31
+ Zoid agent uses Faraday to communicate with remote servers,
32
+ and it doesn't try to hide this fact. For example, you
33
+ can use your favorite faraday middlewares with Zoid
34
+
35
+ ``` rb
36
+ Zoid::Agent.new("https://api.github.com") do |faraday|
37
+ faraday.use FaradayMiddleware::OAuth2, 'TOKEN'
38
+ end
39
+ ```
40
+
29
41
  ## Installation
30
42
 
31
43
  Add this line to your application's Gemfile:
@@ -4,9 +4,11 @@ require "httpclient"
4
4
 
5
5
  module Zoid
6
6
  class Agent
7
- def initialize(url, options = {})
7
+ def initialize(url, options = {}, &connection_builder)
8
8
  @url = url
9
+
9
10
  @options = options
11
+ @builder = connection_builder
10
12
  end
11
13
 
12
14
  def get(path, params = {})
@@ -23,12 +25,18 @@ module Zoid
23
25
 
24
26
  private
25
27
 
26
- def connection
27
- @connection ||= Faraday.new(@options.merge(:url => @url)) do |builder|
28
+ def connection(&block)
29
+ @connection ||= Faraday.new(connection_options) do |builder|
28
30
  builder.response :json
29
31
 
32
+ @builder.call(builder) if @builder
33
+
30
34
  builder.adapter :httpclient
31
35
  end
32
36
  end
37
+
38
+ def connection_options
39
+ @options.merge(:url => @url)
40
+ end
33
41
  end
34
42
  end
@@ -1,3 +1,3 @@
1
1
  module Zoid
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_dependency "faraday", "~> 0.9"
23
23
  spec.add_dependency "faraday_middleware", "~> 0.9"
24
- spec.add_dependency "httpclient", "~> 0.1"
24
+ spec.add_dependency "httpclient", "~> 2.6"
25
25
 
26
26
  spec.add_development_dependency "bundler", "~> 1.9"
27
27
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Sarcevic
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.1'
47
+ version: '2.6'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.1'
54
+ version: '2.6'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement