strum-json 0.0.3 → 0.0.6

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: dd02e3f4773ca5ddc419c0ee2e70d3711935ae9f9f36ea6a1175c94ef64eeac5
4
- data.tar.gz: ea6c95d2aec83d26fda2d6219ae724318974622b714795327bb8f90e9c3acebe
3
+ metadata.gz: 6d71979404a1b6332a733b34cb5f38ea459ea0658490b1c4744768ad02c01c1c
4
+ data.tar.gz: 494357e65f7270efca15af6f5746e3ad9092ac9ae274f5f12ca5d537119fd347
5
5
  SHA512:
6
- metadata.gz: 1ff17bb4780d881addca2b046bdd4a078c543cf4b3107d55ac54f8a396fa2c5977bf6c4226d43410da60c4d571d9f65af340cd71146f1a609f3ce55cbcfc7926
7
- data.tar.gz: b92ee5312c0396fd12797cb888405a2e7972c4a4562fb0cef5cdcc5644f0fad0eb826133bb33c7828d1f653f6116d507ca67be8a8a7d50711061f3dcd2df4e30
6
+ metadata.gz: 9f7a2c87ca88d4cc2f53cf0e3291e14861a78a10633d37fdf2f96a22b52dcf821d8f9fafc39c851ad7e5d29edeef42bf706c67c8675bcb9b37367b9e6cee49c7
7
+ data.tar.gz: 4e29c7635af0ad020874242b4069733c7b1a161c03c8dd97cb951c9bdaafce37fcfecdfa91a84087950eb2e49aae11e8789e72826ff9379fb38883b7166fcaa5
data/.gitignore CHANGED
@@ -6,7 +6,8 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
-
9
+ /.rbenv-gemsets
10
+ /.ruby-version
10
11
  # rspec failure tracking
11
12
  .rspec_status
12
13
 
data/Gemfile.lock CHANGED
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- strum-json (0.0.3)
4
+ strum-json (0.0.6)
5
5
  dry-inflector (~> 0.2.0)
6
6
  json (~> 2.3)
7
7
  json-schema (~> 2.8.1)
8
- strum-service (~> 0.1.0)
8
+ strum-service (~> 0.1)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
@@ -15,13 +15,13 @@ GEM
15
15
  ast (2.4.2)
16
16
  diff-lcs (1.4.4)
17
17
  dry-inflector (0.2.1)
18
- json (2.5.1)
18
+ json (2.6.1)
19
19
  json-schema (2.8.1)
20
20
  addressable (>= 2.4)
21
21
  parallel (1.20.1)
22
22
  parser (3.0.1.1)
23
23
  ast (~> 2.4.1)
24
- public_suffix (4.0.6)
24
+ public_suffix (4.0.7)
25
25
  rainbow (3.0.0)
26
26
  rake (13.0.3)
27
27
  regexp_parser (2.1.1)
@@ -56,7 +56,7 @@ GEM
56
56
  rubocop (~> 1.0)
57
57
  rubocop-ast (>= 1.1.0)
58
58
  ruby-progressbar (1.11.0)
59
- strum-service (0.1.2)
59
+ strum-service (0.2.2)
60
60
  unicode-display_width (2.0.0)
61
61
 
62
62
  PLATFORMS
@@ -71,4 +71,4 @@ DEPENDENCIES
71
71
  strum-json!
72
72
 
73
73
  BUNDLED WITH
74
- 2.2.24
74
+ 2.3.13
@@ -19,6 +19,7 @@ module Strum
19
19
  private
20
20
 
21
21
  def deep_transform_keys(hash)
22
+ return hash.map { |h| deep_transform_keys(h) } if hash.is_a?(Array)
22
23
  return hash unless hash.is_a?(Hash)
23
24
 
24
25
  hash.each_with_object({}) do |(key, value), result|
@@ -16,16 +16,17 @@ module Strum
16
16
  end
17
17
 
18
18
  define_method :model do
19
- return input if input.is_a?(Sequel::Model)
20
- return input if input.is_a?(Dry::Struct)
21
- return input if input.is_a?(Array) && (input.first.is_a?(Sequel::Model) || input.first.is_a?(Dry::Struct))
19
+ return input if defined?(Sequel::Model) && input.is_a?(Sequel::Model)
20
+ return input if defined?(Dry::Struct) && input.is_a?(Dry::Struct)
21
+ return input if input.is_a?(Array) && ((defined?(Sequel::Model) && input.first.is_a?(Sequel::Model)) ||
22
+ (defined?(Dry::Struct) && input.first.is_a?(Dry::Struct)))
22
23
 
23
24
  input[:model]
24
25
  end
25
26
 
26
27
  define_method :options do
27
- return {} if input.is_a?(Sequel::Model)
28
- return {} if input.is_a?(Dry::Struct)
28
+ return {} if defined?(Sequel::Model) && input.is_a?(Sequel::Model)
29
+ return {} if defined?(Dry::Struct) && input.is_a?(Dry::Struct)
29
30
  return {} if input.is_a?(Array)
30
31
 
31
32
  input.except(:model)
@@ -34,7 +35,8 @@ module Strum
34
35
  end
35
36
 
36
37
  def self.call(model, **options)
37
- const_get(model.class.name.split("::").last, false).call(options.merge(model: model))
38
+ klass = model.is_a?(Array) ? model.first.class : model.class
39
+ const_get(klass.name.split("::").last, false).call(options.merge(model: model))
38
40
  end
39
41
  end
40
42
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Strum
4
4
  module Json
5
- VERSION = "0.0.3"
5
+ VERSION = "0.0.6"
6
6
  end
7
7
  end
data/strum-json.gemspec CHANGED
@@ -29,8 +29,8 @@ Gem::Specification.new do |spec|
29
29
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
30
  spec.require_paths = ["lib"]
31
31
 
32
- spec.add_dependency "dry-inflector", "~> 0.2.0"
33
- spec.add_dependency "json", "~> 2.3"
34
- spec.add_dependency "json-schema", "~> 2.8.1"
35
- spec.add_dependency "strum-service", "~> 0.1.0"
32
+ spec.add_runtime_dependency "dry-inflector", "~> 0.2.0"
33
+ spec.add_runtime_dependency "json", "~> 2.3"
34
+ spec.add_runtime_dependency "json-schema", "~> 2.8.1"
35
+ spec.add_runtime_dependency "strum-service", "~> 0.1"
36
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strum-json
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Serhiy Nazarov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-21 00:00:00.000000000 Z
11
+ date: 2022-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-inflector
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.1.0
61
+ version: '0.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.1.0
68
+ version: '0.1'
69
69
  description: Serialize and deserialize json
70
70
  email:
71
71
  - sn@nazarov.com.ua