dry_object_mapper 0.1.0 → 0.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: 8c8af17b6fc995377722b1461d2c95b0d208265c8806e3c33a61ef022249623a
4
- data.tar.gz: e9acfbd42a0898e9d93642a3ff15108bd2a3e708122f2093ebef03d95fab9294
3
+ metadata.gz: 82834093edf9adf78b3af171b018c4696c199442fe7074cdbb19be91b5fa997c
4
+ data.tar.gz: be54f12b0aea46fe40b93ad73b16082a1d8d5c6867065e743733f04c2d6bfcaf
5
5
  SHA512:
6
- metadata.gz: b51d6e2f6a83bf0b1ad4e2359109406546dd6d0b39e7fcb6e88dd6b3d645ec156b6700d8c20d8ba61b480ece971cd33f658938e83ac01f8185c5f5a9856441b7
7
- data.tar.gz: 7f9517076c23639e0a8b486bdf7352684932587ed3412b60bae1ce99a85054fb58a3fca5886ce4470e001843548867fdc4729ce08bb86fb3996dafd379c35b11
6
+ metadata.gz: 97b1ecf9fc8defe38f3b814660acfc432755cd5e9f70d22b81bcbc423375e3702453d1841bcdceb7ae5a6e8384a1aa89bbfacb241c8bd658b88a7cd7402fa77f
7
+ data.tar.gz: e742a62109b06214ede759c9c3f29a2fa698e33db9df4ce564b12e1956f25f50b5ea5379d305271fe83338d4803529f683e80177130135efb28a1a8e0f859c3c
data/.rubocop.yml CHANGED
@@ -1,5 +1,8 @@
1
1
  AllCops:
2
2
  TargetRubyVersion: 2.6
3
+ Exclude:
4
+ - 'spec/**/*.rb'
5
+ - 'vendor/bundle/**/*'
3
6
 
4
7
  Style/StringLiterals:
5
8
  Enabled: true
@@ -11,3 +14,27 @@ Style/StringLiteralsInInterpolation:
11
14
 
12
15
  Layout/LineLength:
13
16
  Max: 120
17
+
18
+ Metrics/MethodLength:
19
+ Max: 20
20
+
21
+ Documentation:
22
+ Enabled: false
23
+
24
+ Metrics/AbcSize:
25
+ Enabled: false
26
+
27
+ Metrics/BlockLength:
28
+ Max: 40
29
+
30
+ Metrics/ClassLength:
31
+ Max: 200
32
+
33
+ Metrics/PerceivedComplexity:
34
+ Max: 15
35
+
36
+ Metrics/CyclomaticComplexity:
37
+ Max: 10
38
+
39
+ Style/ClassVars:
40
+ Enabled: false
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module DryObjectMapper
2
4
  class Mapper
3
5
  @@definitions = {}
@@ -16,7 +18,9 @@ module DryObjectMapper
16
18
 
17
19
  if model_object.respond_to?(:each)
18
20
  model_object = model_object.to_a
19
- result = model_object.map {|it| struct_dto.new(get_model_hash_from_definition(it, schema_definition, options)) }
21
+ result = model_object.map do |it|
22
+ struct_dto.new(get_model_hash_from_definition(it, schema_definition, options))
23
+ end
20
24
  else
21
25
  result = struct_dto.new(get_model_hash_from_definition(model_object, schema_definition, options))
22
26
  end
@@ -27,11 +31,16 @@ module DryObjectMapper
27
31
  def self.get_model_hash_from_definition(model_object, schema_definition, options)
28
32
  result = {}
29
33
  schema_definition.each do |field_name, definition|
30
- if options&.dig(field_name) && !options.dig(field_name).is_a?(Hash)
34
+ if options&.dig(field_name) && !options[field_name].is_a?(Hash)
31
35
  result[field_name] = options[field_name]
32
- elsif definition[:type] == 'hash'
33
- result[field_name] = get_model_hash_from_definition(model_object.send(field_name), definition[:keys], options&.dig(field_name))
34
- elsif definition[:type] == 'array' && !definition[:keys]&.empty?
36
+ elsif definition[:type] == "hash"
37
+ if model_object.send(field_name).nil?
38
+ result[field_name] = nil
39
+ else
40
+ result[field_name] =
41
+ get_model_hash_from_definition(model_object.send(field_name), definition[:keys], options&.dig(field_name))
42
+ end
43
+ elsif definition[:type] == "array" && !definition[:keys]&.empty?
35
44
  result[field_name] = []
36
45
  model_object.send(field_name).each do |object|
37
46
  result[field_name] << get_model_hash_from_definition(object, definition[:keys], options&.dig(field_name))
@@ -44,4 +53,4 @@ module DryObjectMapper
44
53
  result
45
54
  end
46
55
  end
47
- end
56
+ end
@@ -1,7 +1,9 @@
1
- require 'dry-types'
1
+ # frozen_string_literal: true
2
+
3
+ require "dry-types"
2
4
 
3
5
  module DryObjectMapper
4
6
  class Types
5
7
  include Dry.Types()
6
8
  end
7
- end
9
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DryObjectMapper
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry_object_mapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jane-Terziev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-17 00:00:00.000000000 Z
11
+ date: 2024-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-struct