apiphobic-resource 1.1.0 → 1.1.1

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
  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