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 +4 -4
- data/README.md +2 -0
- data/camel_snake_struct.gemspec +2 -2
- data/lib/camel_snake_struct.rb +10 -3
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da20b96f02a08088b46248efd2addef404e1328d1c1fd94a42b3b2b16f4fd368
|
4
|
+
data.tar.gz: 2d692b2554b2a013e691bcba766c55f973a25cbd90f089dd5fc9be2421f46626
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/camel_snake_struct.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "camel_snake_struct"
|
3
|
-
spec.version = "0.
|
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', '<
|
24
|
+
spec.add_dependency 'activesupport', '>= 3.2', '< 9.0'
|
25
25
|
spec.metadata['rubygems_mfa_required'] = 'true'
|
26
26
|
end
|
data/lib/camel_snake_struct.rb
CHANGED
@@ -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
|
-
|
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.
|
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:
|
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: '
|
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: '
|
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.
|
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: []
|