rest_api_client 0.1.0.pre → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7f0c78c82058975c3e44495164a19308f64dd7b5
4
- data.tar.gz: 95ef23b826ef910586cbaeee4792bb018cb09a93
3
+ metadata.gz: fb8cb470284651d4be7b3eebab9557a4ecbe78c3
4
+ data.tar.gz: d3fa11c7f03a0b967cbe18705824fe7400137ddd
5
5
  SHA512:
6
- metadata.gz: eee2a62564b5fbed3af972dd33fcab89c61e94a06dc928bb68b7960f568ce0b1aaac92374e7ec8bfdc10159cb9b080e2696ac2f8091f4972f4e6f8ec6a96bd10
7
- data.tar.gz: 68fcab358223851dfa287b55197fd574b7148de5a94de55b3bb94cf31f2816f58def676c3b042f6c54ad12443439477d8216d4072cbf0cdb6ce4135965314690
6
+ metadata.gz: fb120c9d48dfdcd1f5b580fc0441173b4defc94ead5de463a290bd1390e8b6943deff2efef46c1b48a23338d547597491aef63df5c855ef5691a326b9f0a5540
7
+ data.tar.gz: 64e52aa458076f81cc5e1dbe135bcdce190cedc5a2398ca6d5578c4990fa496f60c07f52e9075b7e6e45859df66cb00949cf47fc5fc046ab68301621b9d4f34f
data/Gemfile.lock ADDED
@@ -0,0 +1,57 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rest_api_client (0.1.0)
5
+ activesupport (>= 4.2)
6
+ faraday (~> 0.15.3)
7
+ faraday_middleware (~> 0.13.1)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activesupport (5.2.3)
13
+ concurrent-ruby (~> 1.0, >= 1.0.2)
14
+ i18n (>= 0.7, < 2)
15
+ minitest (~> 5.1)
16
+ tzinfo (~> 1.1)
17
+ concurrent-ruby (1.1.5)
18
+ diff-lcs (1.3)
19
+ fakeweb (1.3.0)
20
+ faraday (0.15.4)
21
+ multipart-post (>= 1.2, < 3)
22
+ faraday_middleware (0.13.1)
23
+ faraday (>= 0.7.4, < 1.0)
24
+ i18n (1.6.0)
25
+ concurrent-ruby (~> 1.0)
26
+ minitest (5.11.3)
27
+ multipart-post (2.1.1)
28
+ rake (10.5.0)
29
+ rspec (3.8.0)
30
+ rspec-core (~> 3.8.0)
31
+ rspec-expectations (~> 3.8.0)
32
+ rspec-mocks (~> 3.8.0)
33
+ rspec-core (3.8.0)
34
+ rspec-support (~> 3.8.0)
35
+ rspec-expectations (3.8.2)
36
+ diff-lcs (>= 1.2.0, < 2.0)
37
+ rspec-support (~> 3.8.0)
38
+ rspec-mocks (3.8.0)
39
+ diff-lcs (>= 1.2.0, < 2.0)
40
+ rspec-support (~> 3.8.0)
41
+ rspec-support (3.8.0)
42
+ thread_safe (0.3.6)
43
+ tzinfo (1.2.5)
44
+ thread_safe (~> 0.1)
45
+
46
+ PLATFORMS
47
+ ruby
48
+
49
+ DEPENDENCIES
50
+ bundler (~> 2.0)
51
+ fakeweb (~> 1.3)
52
+ rake (~> 10.0)
53
+ rest_api_client!
54
+ rspec (~> 3.0)
55
+
56
+ BUNDLED WITH
57
+ 2.0.1
data/README.md CHANGED
@@ -20,13 +20,34 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- Create your own client by subclassing RrestApiClient. Then you can use the HTTP verbs like this:
23
+ Create your own client by subclassing RrestApiClient. Provide your host url in the initializer.
24
24
 
25
25
  ```
26
- post(path, body: payload, params: params)
26
+ class Client < RestApiClient::Client
27
+ def initialize(options = {}, &block)
28
+ @url = 'http://my.site.com'
29
+ super
30
+ end
31
+
32
+ def friends(queries)
33
+ get('/friends', params: queries)
34
+ end
35
+
36
+ ## you code here...
37
+
38
+ end
39
+ ```
40
+
41
+ Then you can use the HTTP verbs like this:
42
+
43
+ ```
44
+ Client.new.friends({ gender: 'm' })
45
+
46
+ ##== curl http://my.site.com/friends?gender=m
27
47
 
28
48
  ```
29
49
 
50
+ By default it sends and receives JSON. You can override it by passing in a block. See [Faraday configurations](https://github.com/lostisland/faraday) for details
30
51
  ## Development
31
52
 
32
53
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -1,26 +1,25 @@
1
+ require 'faraday'
2
+ require 'faraday_middleware'
3
+ require 'active_support/core_ext/object/blank.rb'
4
+ require_relative 'request'
5
+ require_relative 'configuration'
6
+ require_relative 'response'
7
+ require_relative 'error'
8
+
1
9
  module RestApiClient
2
10
  class Client
3
11
  include RestApiClient::Request
4
12
  include RestApiClient::Response
5
13
  include RestApiClient::Configuration
6
14
 
7
- class << self
8
- attr_accessor :url
9
- end
10
-
11
15
  attr_accessor :options, :connection
12
16
 
13
- def initialize (options = {})
17
+ def initialize (options = {}, &block)
14
18
  @options = default_options.merge(options)
15
- @connection = Faraday.new(@options) do |faraday|
16
- faraday.request :json
17
- faraday.request :url_encoded
18
- faraday.headers[:Accept] = 'application/json'
19
- faraday.headers['Content-Type'] = 'application/json'
20
- #faraday.options[:timeout] = 300
21
- faraday.adapter Faraday.default_adapter
22
- end
19
+ middleware_config = block_given? ? block : default_middleware_config
20
+ @connection = Faraday.new(@options, &middleware_config)
23
21
  end
22
+
24
23
  end
25
24
 
26
25
  end
@@ -1,19 +1,24 @@
1
1
  module RestApiClient
2
2
  module Configuration
3
- URL =INSURER_CONFIG["vendor"]["url"].freeze
4
3
 
5
- def default_url
6
- URL
7
- end
8
-
9
- def url
10
- self.class.url || default_url
11
- end
4
+ attr_accessor :url
12
5
 
13
6
  def default_options
14
- { url: url
7
+ {
8
+ url: url
15
9
  }
16
10
  end
17
11
 
12
+ def default_middleware_config
13
+ lambda {|faraday|
14
+ faraday.request :json
15
+ faraday.request :url_encoded
16
+ faraday.headers[:Accept] = 'application/json'
17
+ faraday.headers['Content-Type'] = 'application/json'
18
+ #faraday.options[:timeout] = 300
19
+ faraday.adapter Faraday.default_adapter
20
+ }
21
+ end
22
+
18
23
  end
19
24
  end
@@ -0,0 +1,7 @@
1
+ module RestApiClient
2
+ class Error < StandardError
3
+ def initialize(msg)
4
+ super
5
+ end
6
+ end
7
+ end
@@ -10,13 +10,12 @@ module RestApiClient
10
10
  def request(method, path, body, params, opts)
11
11
  response = connection.send(method) do | request|
12
12
  request.headers = request.headers.merge(opts[:headers]) if opts[:headers].present?
13
- request.path = URI.encode(path)
13
+ request.path = path
14
14
  request.params = params if params.present?
15
15
  request.body = body if body.present?
16
16
  end
17
+ puts connection.params
17
18
  response = Response.create(response)
18
- rescue Exception => e
19
- #handle exception
20
19
  end
21
20
 
22
21
  end
@@ -1,3 +1,3 @@
1
1
  module RestApiClient
2
- VERSION = "0.1.0.pre"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -1,5 +1,7 @@
1
1
  require 'rest_api_client/version'
2
2
  require 'rest_api_client/client'
3
+ #Dir['./rest_api_client'].each { |f| require_relative f }
4
+ Dir['./rest_api_client'].each { |f| puts f }
3
5
 
4
6
  module RestApiClient
5
7
  def self.client(options = {})
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["zorro.ej@gmail.com"]
11
11
 
12
12
  spec.summary = %q{A small client to reduce boilerplate code}
13
- spec.description = %q{Subclass this client and jump into your bizlogic straight away without worrying the HTTP call implementation.}
13
+ spec.description = %q{Subclass this client and jump into the real work of creating your awesome app straight away without worrying the nitty-gritties of HTTP call implementation.}
14
14
  spec.homepage = "https://github.com/ej2015/rest_api_client"
15
15
  spec.license = "MIT"
16
16
 
@@ -24,7 +24,13 @@ Gem::Specification.new do |spec|
24
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
25
  spec.require_paths = ["lib"]
26
26
 
27
+ spec.add_dependency "faraday", "~> 0.15.3"
28
+ spec.add_dependency "faraday_middleware", "~> 0.13.1"
29
+ spec.add_dependency "activesupport", ">=4.2"
30
+
27
31
  spec.add_development_dependency "bundler", "~> 2.0"
28
32
  spec.add_development_dependency "rake", "~> 10.0"
29
33
  spec.add_development_dependency "rspec", "~> 3.0"
34
+ spec.add_development_dependency "fakeweb", "~> 1.3"
35
+
30
36
  end
metadata CHANGED
@@ -1,15 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edgar
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-13 00:00:00.000000000 Z
11
+ date: 2019-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.15.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.15.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday_middleware
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.13.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.13.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '4.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '4.2'
13
55
  - !ruby/object:Gem::Dependency
14
56
  name: bundler
15
57
  requirement: !ruby/object:Gem::Requirement
@@ -52,8 +94,22 @@ dependencies:
52
94
  - - "~>"
53
95
  - !ruby/object:Gem::Version
54
96
  version: '3.0'
55
- description: Subclass this client and jump into your bizlogic straight away without
56
- worrying the HTTP call implementation.
97
+ - !ruby/object:Gem::Dependency
98
+ name: fakeweb
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.3'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.3'
111
+ description: Subclass this client and jump into the real work of creating your awesome
112
+ app straight away without worrying the nitty-gritties of HTTP call implementation.
57
113
  email:
58
114
  - zorro.ej@gmail.com
59
115
  executables: []
@@ -64,6 +120,7 @@ files:
64
120
  - ".rspec"
65
121
  - ".travis.yml"
66
122
  - Gemfile
123
+ - Gemfile.lock
67
124
  - LICENSE.txt
68
125
  - README.md
69
126
  - Rakefile
@@ -72,6 +129,7 @@ files:
72
129
  - lib/rest_api_client.rb
73
130
  - lib/rest_api_client/client.rb
74
131
  - lib/rest_api_client/configuration.rb
132
+ - lib/rest_api_client/error.rb
75
133
  - lib/rest_api_client/request.rb
76
134
  - lib/rest_api_client/response.rb
77
135
  - lib/rest_api_client/version.rb
@@ -91,9 +149,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
149
  version: '0'
92
150
  required_rubygems_version: !ruby/object:Gem::Requirement
93
151
  requirements:
94
- - - ">"
152
+ - - ">="
95
153
  - !ruby/object:Gem::Version
96
- version: 1.3.1
154
+ version: '0'
97
155
  requirements: []
98
156
  rubyforge_project:
99
157
  rubygems_version: 2.6.14