dry_object_mapper 0.1.0 → 0.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: 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