camel_snake_struct 0.3.2 → 0.4.0

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: 810f5a99f464439e0e6ebeebad3df0dbfb41bcd868a8d0418cfe60b6df7c9b8e
4
- data.tar.gz: a8e071224633a912dc8ca9f32ee2aaeb03b2e5f0c1bd63b7a1f910d38d53e0d5
3
+ metadata.gz: da20b96f02a08088b46248efd2addef404e1328d1c1fd94a42b3b2b16f4fd368
4
+ data.tar.gz: 2d692b2554b2a013e691bcba766c55f973a25cbd90f089dd5fc9be2421f46626
5
5
  SHA512:
6
- metadata.gz: e272d3ebeb81fa42f0a61c6f31e398d41f16a1fb6a946c2091cd469dae8f2f171cc5ca02b2185c2fc24504fe723218eec4f83f942c863ff8d1f48e00878c6aaa
7
- data.tar.gz: 49d5154129c2a0497e549b50b8caade8ab6533d329c8a7d2c5853d59f95d084511c7a58b3b02573c7582a5ffad7638aa9981c3edfc7ef00eb8f503981a4e1409
6
+ metadata.gz: 619fe4dc68452f8f20f20b3d406eb382d9c51188c12cb13ed519359466fd59f9976e848d1455ddbe723adf61917fc2fdc88b8de3cd9f7b50a2a528306fb2cc4c
7
+ data.tar.gz: 907803d49cf65bb96b1c03d2ebaa6813b5af34d45aad4ec89b1e43bab4c5b71dd072a06a9204d1ba6200291916b60bff31b5cbe093a2883c7e4badcbc050d0c1
data/README.md CHANGED
@@ -98,6 +98,8 @@ module Tapioca
98
98
  sig { override.void }
99
99
  def decorate
100
100
  root.create_path(constant) do |klass|
101
+ klass.create_method('to_h', parameters: [], return_type: "T::Hash[String, T.untyped]")
102
+
101
103
  constant.types_meta_data.each do |name, meta_data|
102
104
  classes = meta_data.classes.to_a.map{|a| [TrueClass,FalseClass].include?(a) ? "T::Boolean" : a.to_s }.uniq
103
105
  return_type = if classes.size == 1
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "camel_snake_struct"
3
- spec.version = "0.3.2"
3
+ spec.version = "0.4.0"
4
4
  spec.authors = ["Grant Petersen-Speelman"]
5
5
  spec.email = ["grant@nexl.io"]
6
6
 
@@ -21,6 +21,6 @@ Gem::Specification.new do |spec|
21
21
  spec.bindir = "exe"
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ["lib"]
24
- spec.add_dependency 'activesupport', '>= 3.2', '< 8.0'
24
+ spec.add_dependency 'activesupport', '>= 3.2', '< 9.0'
25
25
  spec.metadata['rubygems_mfa_required'] = 'true'
26
26
  end
@@ -29,15 +29,22 @@ class CamelSnakeStruct
29
29
  end
30
30
 
31
31
  def self.store_meta_data(example_class, m_name, result)
32
- types_meta_data = (example_class.types_meta_data[m_name] ||= Type__Meta__Data.new(Set.new, false))
33
32
  if result.is_a?(Array)
34
- types_meta_data.array = true
35
- result.map(&:class).each { |c| types_meta_data.class_types << c }
33
+ add_array_meta_data(example_class, m_name, result)
36
34
  else
35
+ types_meta_data = (example_class.types_meta_data[m_name] ||= Type__Meta__Data.new(Set.new, false))
37
36
  types_meta_data.class_types << result.class
38
37
  end
39
38
  end
40
39
 
40
+ def self.add_array_meta_data(example_class, m_name, result)
41
+ return if result.length == 0
42
+
43
+ types_meta_data = (example_class.types_meta_data[m_name] ||= Type__Meta__Data.new(Set.new, false))
44
+ types_meta_data.array = true
45
+ result.map(&:class).each { |c| types_meta_data.class_types << c }
46
+ end
47
+
41
48
  def self.types_meta_data
42
49
  @types_meta_data ||= {}
43
50
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camel_snake_struct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grant Petersen-Speelman
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-19 00:00:00.000000000 Z
11
+ date: 2025-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '8.0'
22
+ version: '9.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '8.0'
32
+ version: '9.0'
33
33
  description: Easily access camelCased hashes in a ruby friendly way
34
34
  email:
35
35
  - grant@nexl.io
@@ -58,7 +58,7 @@ metadata:
58
58
  source_code_uri: https://github.com/NEXL-LTS/camel_snake_struct-ruby
59
59
  changelog_uri: https://github.com/NEXL-LTS/camel_snake_struct/CHANGELOG.md
60
60
  rubygems_mfa_required: 'true'
61
- post_install_message:
61
+ post_install_message:
62
62
  rdoc_options: []
63
63
  require_paths:
64
64
  - lib
@@ -73,8 +73,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  requirements: []
76
- rubygems_version: 3.1.6
77
- signing_key:
76
+ rubygems_version: 3.5.22
77
+ signing_key:
78
78
  specification_version: 4
79
79
  summary: Easily access camelCased hashes in a ruby friendly way
80
80
  test_files: []