apill 3.0.3 → 3.0.4

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: 95e567a0a6bc4d16e1501552ab12128b0303b93f
4
- data.tar.gz: 181f4664d595e32a042a9a19b86de94acf9b58f8
3
+ metadata.gz: f049c1119333765ceb81d8028a413f65f24c5fd2
4
+ data.tar.gz: c580f77b5f02d714e1f922139a057cc34fdf18b2
5
5
  SHA512:
6
- metadata.gz: dde2504ce2d522ceb44b3ecc5bb3bf072927663d566881cd9c76bdfc8e8010c83a991ec7e8dcbbb4f298858e9fc46076ae37b2c299f9f61f70b9c2690691463e
7
- data.tar.gz: 82e9554fccca8006a1fe369f99db59b32cfea115cc739f44b8c05896e5f72bf990690dd57c3971568ded1d5c5deccbda60d1c626cc22b28899b536bcd37a7a81
6
+ metadata.gz: 38ab4b7bb671d868810d635dcfcba8d334d7e1e6782969ed5b06c46a8156bc07498877adc61bd6a6ded85761208fe193ebc67ad0e6f43d8a915f02dc5384d9f1
7
+ data.tar.gz: 2753cbefe2316d02c93c7bcd6b9e9452bd2548ff3cfd264cfb4b8d51e09e66d7c0633bc09c782b377f0ef3d61acd113fdce9a019e957d904c90b278319155c3a
@@ -0,0 +1,65 @@
1
+ require 'apill/resource/model'
2
+
3
+ module Apill
4
+ module ProcessableResource
5
+ module ClassMethods
6
+ def plural_resource_name
7
+ name[/(\w+)Controller\z/, 1].
8
+ underscore.
9
+ pluralize.
10
+ downcase
11
+ end
12
+
13
+ def singular_resource_name
14
+ name[/(\w+)Controller\z/, 1].
15
+ underscore.
16
+ singularize.
17
+ downcase
18
+ end
19
+ end
20
+
21
+ def self.included(base)
22
+ base.extend ClassMethods
23
+ end
24
+
25
+ def api_resource
26
+ @resource ||= Resource::Model.new(
27
+ resource: public_send(self.class.plural_resource_name),
28
+ parameters: api_resource_params)
29
+ end
30
+
31
+ def api_resource_params
32
+ params.permit(:sort,
33
+ page: %i{
34
+ number
35
+ size
36
+ offset
37
+ limit
38
+ cursor
39
+ },
40
+ filter: api_filterable_parameters)
41
+ end
42
+
43
+ def api_filterable_parameters
44
+ @api_filterable_parameters ||= begin
45
+ filter_params = params.fetch(:filter, {})
46
+ scalar_params = [:query]
47
+ array_params = {}
48
+
49
+ api_filterable_attributes.each do |api_filterable_attribute|
50
+ if filter_params[api_filterable_attribute].class == Array
51
+ array_params[api_filterable_attribute] = []
52
+ else
53
+ scalar_params << api_filterable_attribute
54
+ end
55
+ end
56
+
57
+ scalar_params << array_params
58
+ end
59
+ end
60
+
61
+ def api_filterable_attributes
62
+ []
63
+ end
64
+ end
65
+ end
@@ -1,68 +1,13 @@
1
- require 'apill/resource/model'
1
+ require 'apill/processable_resource'
2
2
  require 'human_error/rescuable_resource'
3
+ require 'human_error/verifiable_resource'
3
4
 
4
5
  module Apill
5
6
  module Resource
6
- module ClassMethods
7
- def plural_resource_name
8
- name[/(\w+)Controller\z/, 1].
9
- underscore.
10
- pluralize.
11
- downcase
12
- end
13
-
14
- def singular_resource_name
15
- name[/(\w+)Controller\z/, 1].
16
- underscore.
17
- singularize.
18
- downcase
19
- end
20
- end
21
-
22
7
  def self.included(base)
23
- base.extend ClassMethods
8
+ base.include Apill::ProcessableResource
24
9
  base.include HumanError::RescuableResource
25
10
  base.include HumanError::VerifiableResource
26
11
  end
27
-
28
- def api_resource
29
- @resource ||= Resource::Model.new(
30
- resource: public_send(self.class.plural_resource_name),
31
- parameters: api_resource_params)
32
- end
33
-
34
- def api_resource_params
35
- params.permit(:sort,
36
- page: %i{
37
- number
38
- size
39
- offset
40
- limit
41
- cursor
42
- },
43
- filter: api_filterable_parameters)
44
- end
45
-
46
- def api_filterable_parameters
47
- @api_filterable_parameters ||= begin
48
- filter_params = params.fetch(:filter, {})
49
- scalar_params = [:query]
50
- array_params = {}
51
-
52
- api_filterable_attributes.each do |api_filterable_attribute|
53
- if filter_params[api_filterable_attribute].class == Array
54
- array_params[api_filterable_attribute] = []
55
- else
56
- scalar_params << api_filterable_attribute
57
- end
58
- end
59
-
60
- scalar_params << array_params
61
- end
62
- end
63
-
64
- def api_filterable_attributes
65
- []
66
- end
67
12
  end
68
13
  end
@@ -1,3 +1,3 @@
1
1
  module Apill
2
- VERSION = '3.0.3'
2
+ VERSION = '3.0.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apill
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
4
+ version: 3.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - jfelchner
@@ -76,6 +76,7 @@ files:
76
76
  - lib/apill/parameters/index.rb
77
77
  - lib/apill/parameters/page.rb
78
78
  - lib/apill/parameters/sort.rb
79
+ - lib/apill/processable_resource.rb
79
80
  - lib/apill/requests/base.rb
80
81
  - lib/apill/requests/rack_request.rb
81
82
  - lib/apill/requests/rails_request.rb