api_client_builder 1.1.0 → 1.2.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: 8fd053293f5d2e0c724f2c149c68a814099179e9
4
- data.tar.gz: 28db90774bea6b541e632e74e578b933d3a92e54
3
+ metadata.gz: 88e1b96d923ba97a2adcc4a9016c2e63fd9bdc3c
4
+ data.tar.gz: 8abe62264ede2bcf80ada8ae2a24cac37dd3b7d2
5
5
  SHA512:
6
- metadata.gz: e693b8c048a88dcd3e68332817afff076a684329b699588bac2706a450510a4c4ad7d32669c344f9fb59b0784562f4612efa84c6befa062416417eb9629b13b8
7
- data.tar.gz: c813e8124cdaaa0869ae53ee613aa97df839740b883a1a86d0076f8bd2e60cde29c0a5dbf812a12bce8d57982c10cc6dfb4b7af28e9104e76ad3a21190e1d277
6
+ metadata.gz: 19b3e2ee30df3ce75e7616a3146d392312d5540a58ae3b75d05ee41db21d344f86c9c0ae5cabaf96b0411d4331d16fd12d18013b3d749c9a037745d2053958cf
7
+ data.tar.gz: af3aaf9e2f75477a988d623a721d0818b87a0bb782e4fbaefe9515e2690f8c8fd08e72d43c6481130f25167fde7cac25459c8db92fd528f1f626d9ea2e187e03
@@ -21,7 +21,7 @@ module APIClientBuilder
21
21
  #
22
22
  # @return [URI] the fully built route
23
23
  def build_route(route, **params)
24
- string_params = route.split('/').select { |param| param.start_with?(':') }
24
+ string_params = route.split(%r{[\/=]}).select { |param| param.start_with?(':') }
25
25
  symboled_params = string_params.map { |param| param.tr(':', '').to_sym }
26
26
 
27
27
  new_route = route.clone
@@ -1,3 +1,3 @@
1
1
  module APIClientBuilder
2
- VERSION = '1.1.0'.freeze
2
+ VERSION = '1.2.0'.freeze
3
3
  end
@@ -15,6 +15,17 @@ module APIClientBuilder
15
15
 
16
16
  expect(route).to eq(URI.parse('https://www.domain.com/api/endpoints/object_one/4/4/route_to_object/10/object'))
17
17
  end
18
+
19
+ it 'replaces to route keys with their respective values in embedded params' do
20
+ url_generator = URLGenerator.new('https://www.domain.com/api/endpoints/')
21
+
22
+ route = url_generator.build_route(
23
+ 'object_one/:object_one_id/:object_one_id/object&as_user_id=:user_object_id',
24
+ object_one_id: '4',
25
+ user_object_id: '1'
26
+ )
27
+ expect(route).to eq(URI.parse('https://www.domain.com/api/endpoints/object_one/4/4/object&as_user_id=1'))
28
+ end
18
29
  end
19
30
 
20
31
  context 'route with colon params and non matching keys' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_client_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jayce Higgins
@@ -9,62 +9,62 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-06-26 00:00:00.000000000 Z
12
+ date: 2018-10-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pry
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
18
+ - - '>='
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ">="
25
+ - - '>='
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rspec
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - "~>"
32
+ - - ~>
33
33
  - !ruby/object:Gem::Version
34
34
  version: '3.7'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - "~>"
39
+ - - ~>
40
40
  - !ruby/object:Gem::Version
41
41
  version: '3.7'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rubocop
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "~>"
46
+ - - ~>
47
47
  - !ruby/object:Gem::Version
48
48
  version: 0.57.2
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "~>"
53
+ - - ~>
54
54
  - !ruby/object:Gem::Version
55
55
  version: 0.57.2
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: simplecov
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - "~>"
60
+ - - ~>
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - "~>"
67
+ - - ~>
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  description: API Client Builder provides an easy to use interface for creating HTTP
@@ -77,9 +77,9 @@ executables: []
77
77
  extensions: []
78
78
  extra_rdoc_files: []
79
79
  files:
80
- - ".gitignore"
81
- - ".rubocop.yml"
82
- - ".travis.yml"
80
+ - .gitignore
81
+ - .rubocop.yml
82
+ - .travis.yml
83
83
  - Gemfile
84
84
  - LICENSE.txt
85
85
  - README.md
@@ -117,17 +117,17 @@ require_paths:
117
117
  - lib
118
118
  required_ruby_version: !ruby/object:Gem::Requirement
119
119
  requirements:
120
- - - ">="
120
+ - - '>='
121
121
  - !ruby/object:Gem::Version
122
122
  version: '2.3'
123
123
  required_rubygems_version: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - ">="
125
+ - - '>='
126
126
  - !ruby/object:Gem::Version
127
127
  version: '0'
128
128
  requirements: []
129
129
  rubyforge_project:
130
- rubygems_version: 2.5.1
130
+ rubygems_version: 2.0.14
131
131
  signing_key:
132
132
  specification_version: 4
133
133
  summary: API Client Builder provides an easy to use interface for creating HTTP api