eazypi 0.0.10 → 0.0.12

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: 9e9efa2bc28eaff1516c98151428b140000ec366e4bcf5f7c0bea2d01f0bcd54
4
- data.tar.gz: 07b367a112c403bd69c99244ce06c0f884487deca152d6d8dc9d4daeb4fd6ded
3
+ metadata.gz: 244892ecf0e137179172b7cda3f78dc7f00292194434f5bb053b6246ad25a765
4
+ data.tar.gz: 158bef0052e89bde84bfe05ab5e1a2b059067aba49ddb4f6b697b68659c3aba2
5
5
  SHA512:
6
- metadata.gz: e0e655cb3bdb3062c7e09fd4caaf11d384acd0bff5e1e79f042f67294e2159dea6e9a25a1074d70a2e600309aab3db4e8c800cda03deffa5cc9be8ce0d37a10e
7
- data.tar.gz: '01795a8cc4505bc4501dcaf1a157b5068a6d6d105ed68189948ea73d7693d055deb0dcf80793cdf0a3442028a6434a529739aaf40724a3c4382d748e09dd942f'
6
+ metadata.gz: 636c5f7ce57dc6bb2b575e8d99fafe1b5d8f16bda9cab8f9fbf416600d1c319aea03cf3a2e2dcbee830c22ee0a84bc9d12af9ef55ddb034b5102b8543c2f70f0
7
+ data.tar.gz: 6d2dcfefbc061d50af85aae149aef8e107c977ace16047a2c72cec27ed32e3eb82b076d7768233f32ac53bfc663d1618b8b8aff523b828e51a07e9d2cd802c98
@@ -17,10 +17,10 @@ module Eazypi
17
17
  @required = required
18
18
  end
19
19
 
20
- def serialize(object)
21
- the_value = value(object)
20
+ def serialize(object, context)
21
+ the_value = value(object, context)
22
22
 
23
- Serializer.serialize_object(type, the_value)
23
+ Serializer.serialize_object(type, the_value, context)
24
24
  end
25
25
 
26
26
  private
@@ -33,9 +33,13 @@ module Eazypi
33
33
  end
34
34
  end
35
35
 
36
- def value(object)
36
+ def value(object, context) # rubocop:disable Metrics/MethodLength,Metrics/PerceivedComplexity
37
37
  if @method
38
- @method.call(object)
38
+ if @method.arity == 1
39
+ @method.call(object)
40
+ else
41
+ @method.call(object, context)
42
+ end
39
43
  elsif @method_name
40
44
  object.send(@method_name)
41
45
  elsif object.is_a?(Hash)
@@ -50,15 +54,16 @@ module Eazypi
50
54
  end
51
55
  end
52
56
 
53
- def initialize(object)
57
+ def initialize(object, context = nil)
54
58
  @object = object
59
+ @context = context
55
60
  end
56
61
 
57
62
  def to_json(*_args)
58
63
  return nil if @object.nil?
59
64
 
60
65
  self.class.attributes.to_h do |attribute|
61
- [attribute.name, attribute.serialize(@object)]
66
+ [attribute.name, attribute.serialize(@object, @context)]
62
67
  end
63
68
  end
64
69
 
@@ -94,23 +99,23 @@ module Eazypi
94
99
  end
95
100
 
96
101
  def self.object_name
97
- name.split("::").last
102
+ name.split("::").join
98
103
  end
99
104
  end
100
105
 
101
- def self.serialize_object(type_object, object) # rubocop:disable Metrics/MethodLength
106
+ def self.serialize_object(type_object, object, context = nil) # rubocop:disable Metrics/MethodLength
102
107
  if type_object.nil?
103
108
  nil
104
109
  elsif type_object.is_a?(Array)
105
110
  object&.map do |value|
106
- serialize_object(type_object[0], value)
111
+ serialize_object(type_object[0], value, context)
107
112
  end
108
113
  elsif [Date, Time].include?(type_object)
109
114
  object&.iso8601
110
115
  elsif [String, Integer, Float, :boolean].include?(type_object)
111
116
  object
112
117
  else
113
- type_object.new(object).to_json
118
+ type_object.new(object, context).to_json
114
119
  end
115
120
  end
116
121
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Eazypi
4
- VERSION = "0.0.10"
4
+ VERSION = "0.0.12"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eazypi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Samson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-15 00:00:00.000000000 Z
11
+ date: 2025-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  - !ruby/object:Gem::Version
99
99
  version: '0'
100
100
  requirements: []
101
- rubygems_version: 3.5.9
101
+ rubygems_version: 3.5.22
102
102
  signing_key:
103
103
  specification_version: 4
104
104
  summary: An opinionated framework to generate OpenAPI API's for Rails