easy_talk 3.2.0 → 3.3.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 +4 -4
- data/.rubocop.yml +15 -43
- data/CHANGELOG.md +105 -0
- data/README.md +510 -2018
- data/docs/json_schema_compliance.md +140 -26
- data/docs/primitive-schema-rfc.md +894 -0
- data/examples/ruby_llm/Gemfile +12 -0
- data/examples/ruby_llm/structured_output.rb +47 -0
- data/examples/ruby_llm/tools_integration.rb +49 -0
- data/lib/easy_talk/builders/base_builder.rb +2 -1
- data/lib/easy_talk/builders/boolean_builder.rb +2 -1
- data/lib/easy_talk/builders/collection_helpers.rb +4 -0
- data/lib/easy_talk/builders/composition_builder.rb +7 -2
- data/lib/easy_talk/builders/integer_builder.rb +2 -1
- data/lib/easy_talk/builders/null_builder.rb +4 -1
- data/lib/easy_talk/builders/number_builder.rb +4 -1
- data/lib/easy_talk/builders/object_builder.rb +64 -3
- data/lib/easy_talk/builders/registry.rb +15 -1
- data/lib/easy_talk/builders/string_builder.rb +3 -1
- data/lib/easy_talk/builders/temporal_builder.rb +7 -0
- data/lib/easy_talk/builders/tuple_builder.rb +89 -0
- data/lib/easy_talk/builders/typed_array_builder.rb +4 -2
- data/lib/easy_talk/builders/union_builder.rb +5 -1
- data/lib/easy_talk/configuration.rb +17 -2
- data/lib/easy_talk/errors.rb +1 -0
- data/lib/easy_talk/errors_helper.rb +3 -0
- data/lib/easy_talk/extensions/ruby_llm_compatibility.rb +58 -0
- data/lib/easy_talk/json_schema_equality.rb +46 -0
- data/lib/easy_talk/keywords.rb +0 -1
- data/lib/easy_talk/model.rb +42 -1
- data/lib/easy_talk/model_helper.rb +4 -0
- data/lib/easy_talk/naming_strategies.rb +4 -0
- data/lib/easy_talk/property.rb +7 -0
- data/lib/easy_talk/ref_helper.rb +6 -0
- data/lib/easy_talk/schema.rb +1 -0
- data/lib/easy_talk/schema_definition.rb +52 -6
- data/lib/easy_talk/schema_methods.rb +36 -5
- data/lib/easy_talk/sorbet_extension.rb +1 -0
- data/lib/easy_talk/type_introspection.rb +45 -1
- data/lib/easy_talk/types/tuple.rb +77 -0
- data/lib/easy_talk/validation_adapters/active_model_adapter.rb +350 -62
- data/lib/easy_talk/validation_adapters/active_model_schema_validation.rb +106 -0
- data/lib/easy_talk/validation_adapters/base.rb +12 -0
- data/lib/easy_talk/validation_adapters/none_adapter.rb +9 -0
- data/lib/easy_talk/validation_builder.rb +1 -0
- data/lib/easy_talk/version.rb +1 -1
- data/lib/easy_talk.rb +1 -0
- metadata +17 -4
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: easy_talk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sergio Bayona
|
|
@@ -77,8 +77,11 @@ dependencies:
|
|
|
77
77
|
- - "~>"
|
|
78
78
|
- !ruby/object:Gem::Version
|
|
79
79
|
version: '0.5'
|
|
80
|
-
description:
|
|
81
|
-
|
|
80
|
+
description: Define schemas using a clean DSL and get both JSON Schema documents and
|
|
81
|
+
runtime validations. Perfect for API request/response validation, LLM function definitions
|
|
82
|
+
(OpenAI, Anthropic), and structured data modeling. Features Sorbet-style types,
|
|
83
|
+
schema composition, pluggable validation adapters, and multiple error output formats
|
|
84
|
+
(JSON:API, RFC 7807).
|
|
82
85
|
email:
|
|
83
86
|
- bayona.sergio@gmail.com
|
|
84
87
|
executables: []
|
|
@@ -100,8 +103,12 @@ files:
|
|
|
100
103
|
- docs/index.markdown
|
|
101
104
|
- docs/json_schema_compliance.md
|
|
102
105
|
- docs/nested-models.markdown
|
|
106
|
+
- docs/primitive-schema-rfc.md
|
|
103
107
|
- docs/property-types.markdown
|
|
104
108
|
- docs/schema-definition.markdown
|
|
109
|
+
- examples/ruby_llm/Gemfile
|
|
110
|
+
- examples/ruby_llm/structured_output.rb
|
|
111
|
+
- examples/ruby_llm/tools_integration.rb
|
|
105
112
|
- lib/easy_talk.rb
|
|
106
113
|
- lib/easy_talk/builders/base_builder.rb
|
|
107
114
|
- lib/easy_talk/builders/boolean_builder.rb
|
|
@@ -114,6 +121,7 @@ files:
|
|
|
114
121
|
- lib/easy_talk/builders/registry.rb
|
|
115
122
|
- lib/easy_talk/builders/string_builder.rb
|
|
116
123
|
- lib/easy_talk/builders/temporal_builder.rb
|
|
124
|
+
- lib/easy_talk/builders/tuple_builder.rb
|
|
117
125
|
- lib/easy_talk/builders/typed_array_builder.rb
|
|
118
126
|
- lib/easy_talk/builders/union_builder.rb
|
|
119
127
|
- lib/easy_talk/configuration.rb
|
|
@@ -127,6 +135,8 @@ files:
|
|
|
127
135
|
- lib/easy_talk/error_formatter/rfc7807.rb
|
|
128
136
|
- lib/easy_talk/errors.rb
|
|
129
137
|
- lib/easy_talk/errors_helper.rb
|
|
138
|
+
- lib/easy_talk/extensions/ruby_llm_compatibility.rb
|
|
139
|
+
- lib/easy_talk/json_schema_equality.rb
|
|
130
140
|
- lib/easy_talk/keywords.rb
|
|
131
141
|
- lib/easy_talk/model.rb
|
|
132
142
|
- lib/easy_talk/model_helper.rb
|
|
@@ -141,7 +151,9 @@ files:
|
|
|
141
151
|
- lib/easy_talk/type_introspection.rb
|
|
142
152
|
- lib/easy_talk/types/base_composer.rb
|
|
143
153
|
- lib/easy_talk/types/composer.rb
|
|
154
|
+
- lib/easy_talk/types/tuple.rb
|
|
144
155
|
- lib/easy_talk/validation_adapters/active_model_adapter.rb
|
|
156
|
+
- lib/easy_talk/validation_adapters/active_model_schema_validation.rb
|
|
145
157
|
- lib/easy_talk/validation_adapters/base.rb
|
|
146
158
|
- lib/easy_talk/validation_adapters/none_adapter.rb
|
|
147
159
|
- lib/easy_talk/validation_adapters/registry.rb
|
|
@@ -171,5 +183,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
171
183
|
requirements: []
|
|
172
184
|
rubygems_version: 3.7.2
|
|
173
185
|
specification_version: 4
|
|
174
|
-
summary:
|
|
186
|
+
summary: JSON Schema generation and validation for Ruby classes, ideal for LLM function
|
|
187
|
+
calling.
|
|
175
188
|
test_files: []
|