apia 3.3.1 → 3.4.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
  SHA256:
3
- metadata.gz: b329db4c1e00be2afbb4160dff2feb3e3be2dfb0feab05b2b6f591045fe953b4
4
- data.tar.gz: 3eff127300b99d73b3a15d86c0edba9bdb30f404500e35890aec1498a5f73337
3
+ metadata.gz: f40c9dba04e5b064ced8833f9edb42f96efd59c9d4e9342a4fa6535a1e76c6ee
4
+ data.tar.gz: 2506e79260735d3c2029ac7eaa9733e481b975b177506f03fcdeba21760b8781
5
5
  SHA512:
6
- metadata.gz: 1d2af39e3de24f4ee4f3dbefa8206dde25648274793bcecfdca183faedfd7d6622bb60552ae7134b9abda3ccb667f285884957cc542f045ecc71b6f2da4b6138
7
- data.tar.gz: ad96bf7677bf7d8c1d8b438f79f9c3d743f4184c9351c82eceeea5e5bc7d7dd97d039cba51eca4e0c8bd013bc6be96c8558aa61de41d87de2faacb008d3fe31e
6
+ metadata.gz: 7ae74d9f396b7dda8d14513d072f3e7f0902724c5b3e8bd0a430341f8d1e91dd83e4e6aae0b377dc954e3f248c5da7ba3984da354202fa42043c1e5d8d0e5ba7
7
+ data.tar.gz: 7e735b6a11cfc48325cd60ce0d01a36cb9eb776afeb2b74c3efe8de034b02413df3c8cec149b9ffa0883af4c85d4f631d7cc9f67e63c169e3fbcaeb4d0dbe517
@@ -5,6 +5,7 @@ require 'apia/scalar'
5
5
  require 'apia/object'
6
6
  require 'apia/enum'
7
7
  require 'apia/field_spec'
8
+ require 'apia/generated_hash'
8
9
 
9
10
  module Apia
10
11
  class FieldSet < Hash
@@ -35,10 +36,12 @@ module Apia
35
36
  #
36
37
  # @param source [Object, Hash]
37
38
  # @param request [Apia::Request]
39
+ # @param object [Apia::Object] the object that this fieldset belongs to
38
40
  # @param only [Array]
39
41
  # @return [Hash]
40
- def generate_hash(source, request: nil, path: [])
41
- each_with_object({}) do |(_, field), hash|
42
+ def generate_hash(source, request: nil, path: [], object: nil)
43
+ new_hash = GeneratedHash.enabled? ? GeneratedHash.new(object, source, path: path) : {}
44
+ each_with_object(new_hash) do |(_, field), hash|
42
45
  next unless field.include?(source, request)
43
46
 
44
47
  field_path = path + [field]
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Apia
4
+ class GeneratedHash < Hash
5
+
6
+ attr_reader :object
7
+ attr_reader :source
8
+ attr_reader :path
9
+
10
+ def initialize(object, source, path: nil)
11
+ super()
12
+ @object = object
13
+ @source = source
14
+ @path = path
15
+ end
16
+
17
+ class << self
18
+
19
+ def enabled?
20
+ @enabled == true
21
+ end
22
+
23
+ def enable
24
+ @enabled = true
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+ end
data/lib/apia/object.rb CHANGED
@@ -49,7 +49,7 @@ module Apia
49
49
  # @param request [Apia::Request] the associated request
50
50
  # @return [Hash]
51
51
  def hash(request: nil, path: [])
52
- self.class.definition.fields.generate_hash(@value, request: request, path: path)
52
+ self.class.definition.fields.generate_hash(@value, object: self, request: request, path: path)
53
53
  end
54
54
 
55
55
  # Should this type be included in any output?
data/lib/apia/version.rb CHANGED
@@ -2,11 +2,6 @@
2
2
 
3
3
  module Apia
4
4
 
5
- VERSION_FILE_ROOT = File.expand_path('../../VERSION', __dir__)
6
- if File.file?(VERSION_FILE_ROOT)
7
- VERSION = File.read(VERSION_FILE_ROOT).strip.sub(/\Av/, '')
8
- else
9
- VERSION = '0.0.0.dev'
10
- end
5
+ VERSION = '3.4.0'
11
6
 
12
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apia
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.1
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Cooke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-14 00:00:00.000000000 Z
11
+ date: 2023-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -45,7 +45,6 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
- - VERSION
49
48
  - lib/apia.rb
50
49
  - lib/apia/api.rb
51
50
  - lib/apia/argument_set.rb
@@ -110,6 +109,7 @@ files:
110
109
  - lib/apia/errors/standard_error.rb
111
110
  - lib/apia/field_set.rb
112
111
  - lib/apia/field_spec.rb
112
+ - lib/apia/generated_hash.rb
113
113
  - lib/apia/helpers.rb
114
114
  - lib/apia/hook_set.rb
115
115
  - lib/apia/lookup_argument_set.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 3.3.1