apiphobic-resource 1.1.0 → 1.1.1

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
  SHA256:
3
- metadata.gz: 0dae97d487f9abece061556e3ba4cb71f1c058e7ececb8c4090a13d01ea8ba41
4
- data.tar.gz: ea0bef41133fa3c364cefb3038ce6b5520a9d88ad12777add602e77181dec244
3
+ metadata.gz: 31a78915ec7034d917d846557f5867718feeaa97f3fdbb373b7ea174a4f95c12
4
+ data.tar.gz: 31cf54f24c9111e49d0d7cc71e49189e94e17483b12b451ad249a929190b1cf0
5
5
  SHA512:
6
- metadata.gz: ea6fe96e15112cd14cd31b6a531481eac33c0d439a89ca7776464f02770b2c16b838a531fb7fb7379237fda08234f318051fdd7e3fc6a01a56a6567f2e092339
7
- data.tar.gz: e29f086828c8ac680e9a09e8b8c57c62b4f51a5e5e60bf53b528549885dd8fef22c235b6691d0e853c78d02a8ea413761efe39faefa3b6c78480288f1b2f7183
6
+ metadata.gz: 9e8ec00ebd24c69bf4859846b86695f672a468315f28dc2e30d567361072d62e818a8d313eae98b080e886c8b452878c5cc31ac17f4e2e462e44842f5182b932
7
+ data.tar.gz: 9430cc440e0093fcc8459c45c88e5dfb2d3196cf3dd44017a14ddb674dae4e21c2cfd8566923c5c6d9bcf9f5befa2b226609073fa7b476bfce1ca7d118f64945
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -6,6 +6,10 @@ module Apiphobic
6
6
  module Resource
7
7
  class Collection < Resource::Model
8
8
  DEFAULT_PROCESSORS = %w{including filtering sorting paging indexing}.freeze
9
+
10
+ def initialize(**args)
11
+ super(**args.merge(id: nil))
12
+ end
9
13
  end
10
14
  end
11
15
  end
@@ -15,25 +15,34 @@ class Model
15
15
 
16
16
  DEFAULT_PROCESSORS = %w{including}.freeze
17
17
 
18
- attr_accessor :resource,
18
+ attr_accessor :id,
19
+ :resource,
19
20
  :parameters
20
21
  attr_reader :processors
21
22
 
22
- def_delegators :resource,
23
+ def_delegators :processed,
23
24
  :assign_attributes,
24
25
  :delete,
25
26
  :save!,
26
- :save
27
+ :save,
28
+ :subscribe
27
29
 
28
- def initialize(resource:, parameters:, **options)
30
+ def initialize(resource:, id:, parameters:, **options)
31
+ self.id = id
29
32
  self.resource = resource
30
33
  self.parameters = parameters.dup
31
34
  self.processors = options.fetch(:processors, self.class::DEFAULT_PROCESSORS)
32
35
  end
33
36
 
34
37
  def processed
35
- @processed ||= processors.inject(resource) do |processed_resource, processor|
36
- processor.processed(processed_resource, parameters)
38
+ @processed ||= begin
39
+ processed = processors.inject(resource) do |processed_resource, processor|
40
+ processor.processed(processed_resource, parameters)
41
+ end
42
+
43
+ return processed if instance_of?(::Apiphobic::Resource::Collection)
44
+
45
+ processed.find_by(id: id) || processed.new
37
46
  end
38
47
  end
39
48
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Apiphobic
4
4
  module Resource
5
- VERSION = '1.1.0'
5
+ VERSION = '1.1.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apiphobic-resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - thegranddesign
@@ -31,7 +31,7 @@ cert_chain:
31
31
  Y2GAoHKstmfIVhc4XHOPpmTd2o/C29O9oaRgjrkfQEhF/KvJ/PhoV5hvokzsCyI5
32
32
  iUeXPfvrGD/itYIBCgk+fnzyQQ4QtE5hTQaWQ3o2
33
33
  -----END CERTIFICATE-----
34
- date: 2018-05-19 00:00:00.000000000 Z
34
+ date: 2018-07-09 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  version: '0'
106
106
  requirements: []
107
107
  rubyforge_project:
108
- rubygems_version: 2.7.6
108
+ rubygems_version: 2.7.7
109
109
  signing_key:
110
110
  specification_version: 4
111
111
  summary: API Resources
metadata.gz.sig CHANGED
Binary file