rest-in-peace 1.1.1 → 1.2.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.
data/README.md CHANGED
@@ -87,8 +87,8 @@ class Resource
87
87
  end
88
88
  end
89
89
 
90
- resource = Resource.find(1) # calls "GET /rip/1"
91
- resource = Resource.find_on_other(42, 1337) # calls "GET /other/42/rip/1337"
90
+ resource = Resource.find(id: 1) # calls "GET /rip/1"
91
+ resource = Resource.find_on_other(other_id: 42, id: 1337) # calls "GET /other/42/rip/1337"
92
92
  ```
93
93
 
94
94
  #### Pagination
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.1
1
+ 1.2.0
@@ -10,19 +10,8 @@ module RESTinPeace
10
10
 
11
11
  def get(method_name, url_template, default_params = {})
12
12
  @target.rip_registry[:collection] << { method: :get, name: method_name, url: url_template }
13
- @target.send(:define_singleton_method, method_name) do |*args|
14
- if args.last.is_a?(Hash)
15
- params = default_params.merge(args.pop)
16
- else
17
- params = default_params.dup
18
- end
19
-
20
- if args.any?
21
- tokens = RESTinPeace::TemplateSanitizer.new(url_template, {}).tokens
22
- tokens.each do |token|
23
- params.merge!(token.to_sym => args.shift)
24
- end
25
- end
13
+ @target.send(:define_singleton_method, method_name) do |given_params|
14
+ params = default_params.merge(given_params)
26
15
 
27
16
  call = RESTinPeace::ApiCall.new(api, url_template, self, params)
28
17
  call.extend(params.delete(:paginate_with)) if params[:paginate_with]
@@ -41,7 +41,7 @@ describe RESTinPeace::DefinitionProxy::CollectionMethodDefinitions do
41
41
  expect(api_call_double).to_not receive(:extend)
42
42
 
43
43
  subject.get(:find, '/a/:id', default_params)
44
- target.find(1)
44
+ target.find(id: 1)
45
45
  end
46
46
  end
47
47
 
@@ -50,30 +50,12 @@ describe RESTinPeace::DefinitionProxy::CollectionMethodDefinitions do
50
50
  expect(api_call_double).to receive(:extend)
51
51
 
52
52
  subject.get(:find, '/a/:id', default_params.merge(paginate_with: Module))
53
- target.find(1)
53
+ target.find(id: 1)
54
54
  end
55
55
  end
56
56
 
57
57
  describe 'parameter and arguments handling' do
58
- it 'converts the parameters' do
59
- expect(RESTinPeace::ApiCall).to receive(:new).
60
- with(target.api, '/a/:id', target, {id: 1}).
61
- and_return(api_call_double)
62
-
63
- subject.get(:find, '/a/:id', default_params)
64
- target.find(1)
65
- end
66
-
67
- it 'handles mixed parameters' do
68
- expect(RESTinPeace::ApiCall).to receive(:new).
69
- with(target.api, '/a/:id', target, id: 1, embed: %w(extra_field1)).
70
- and_return(api_call_double)
71
-
72
- subject.get(:find, '/a/:id', default_params)
73
- target.find(1, embed: %w(extra_field1))
74
- end
75
-
76
- it 'appends the given attributes' do
58
+ it 'uses the given attributes' do
77
59
  expect(RESTinPeace::ApiCall).to receive(:new).
78
60
  with(target.api, '/a', target, {name: 'daniele', last_name: 'in der o'}).
79
61
  and_return(api_call_double)
@@ -85,7 +67,7 @@ describe RESTinPeace::DefinitionProxy::CollectionMethodDefinitions do
85
67
  it 'does not modify the default params' do
86
68
  default_params = { per_page: 250 }
87
69
  subject.get(:find, '/a/:id', default_params)
88
- target.find(1)
70
+ target.find(id: 1)
89
71
  expect(default_params).to eq({ per_page: 250 })
90
72
  end
91
73
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rest-in-peace
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: