validrb 0.5.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 +7 -0
- data/CHANGELOG.md +99 -0
- data/CLAUDE.md +434 -0
- data/LICENSE +21 -0
- data/README.md +654 -0
- data/Rakefile +10 -0
- data/lib/validrb/constraints/base.rb +59 -0
- data/lib/validrb/constraints/enum.rb +33 -0
- data/lib/validrb/constraints/format.rb +63 -0
- data/lib/validrb/constraints/length.rb +72 -0
- data/lib/validrb/constraints/max.rb +43 -0
- data/lib/validrb/constraints/min.rb +43 -0
- data/lib/validrb/context.rb +41 -0
- data/lib/validrb/custom_type.rb +95 -0
- data/lib/validrb/errors.rb +122 -0
- data/lib/validrb/field.rb +346 -0
- data/lib/validrb/i18n.rb +88 -0
- data/lib/validrb/introspection.rb +206 -0
- data/lib/validrb/openapi.rb +642 -0
- data/lib/validrb/result.rb +89 -0
- data/lib/validrb/schema.rb +303 -0
- data/lib/validrb/serializer.rb +113 -0
- data/lib/validrb/types/array.rb +91 -0
- data/lib/validrb/types/base.rb +90 -0
- data/lib/validrb/types/boolean.rb +37 -0
- data/lib/validrb/types/date.rb +70 -0
- data/lib/validrb/types/datetime.rb +71 -0
- data/lib/validrb/types/decimal.rb +57 -0
- data/lib/validrb/types/discriminated_union.rb +74 -0
- data/lib/validrb/types/float.rb +46 -0
- data/lib/validrb/types/integer.rb +53 -0
- data/lib/validrb/types/literal.rb +43 -0
- data/lib/validrb/types/object.rb +52 -0
- data/lib/validrb/types/string.rb +29 -0
- data/lib/validrb/types/time.rb +69 -0
- data/lib/validrb/types/union.rb +75 -0
- data/lib/validrb/version.rb +5 -0
- data/lib/validrb.rb +55 -0
- data/validrb.gemspec +43 -0
- metadata +91 -0
data/validrb.gemspec
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "lib/validrb/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = "validrb"
|
|
7
|
+
spec.version = Validrb::VERSION
|
|
8
|
+
spec.authors = ["Validrb Contributors"]
|
|
9
|
+
spec.email = ["validrb@example.com"]
|
|
10
|
+
|
|
11
|
+
spec.summary = "A Ruby schema validation library with type coercion"
|
|
12
|
+
spec.description = <<~DESC
|
|
13
|
+
Validrb is a powerful Ruby schema validation library inspired by Pydantic and Zod.
|
|
14
|
+
It provides type coercion, rich constraints, schema composition, union types,
|
|
15
|
+
discriminated unions, custom validators, JSON Schema generation, and serialization.
|
|
16
|
+
Zero runtime dependencies, pure Ruby.
|
|
17
|
+
DESC
|
|
18
|
+
spec.homepage = "https://github.com/validrb/validrb"
|
|
19
|
+
spec.license = "MIT"
|
|
20
|
+
spec.required_ruby_version = ">= 3.0.0"
|
|
21
|
+
|
|
22
|
+
spec.metadata = {
|
|
23
|
+
"homepage_uri" => spec.homepage,
|
|
24
|
+
"source_code_uri" => spec.homepage,
|
|
25
|
+
"changelog_uri" => "#{spec.homepage}/blob/main/CHANGELOG.md",
|
|
26
|
+
"documentation_uri" => spec.homepage,
|
|
27
|
+
"bug_tracker_uri" => "#{spec.homepage}/issues",
|
|
28
|
+
"rubygems_mfa_required" => "true"
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
spec.files = Dir.chdir(__dir__) do
|
|
32
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
|
33
|
+
(File.expand_path(f) == __FILE__) ||
|
|
34
|
+
f.start_with?(*%w[bin/ test/ spec/ features/ .git .github appveyor Gemfile]) ||
|
|
35
|
+
f == "demo.rb"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
spec.bindir = "exe"
|
|
39
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
40
|
+
spec.require_paths = ["lib"]
|
|
41
|
+
|
|
42
|
+
# Zero runtime dependencies - pure Ruby
|
|
43
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: validrb
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.5.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Validrb Contributors
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2026-01-31 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: |
|
|
14
|
+
Validrb is a powerful Ruby schema validation library inspired by Pydantic and Zod.
|
|
15
|
+
It provides type coercion, rich constraints, schema composition, union types,
|
|
16
|
+
discriminated unions, custom validators, JSON Schema generation, and serialization.
|
|
17
|
+
Zero runtime dependencies, pure Ruby.
|
|
18
|
+
email:
|
|
19
|
+
- validrb@example.com
|
|
20
|
+
executables: []
|
|
21
|
+
extensions: []
|
|
22
|
+
extra_rdoc_files: []
|
|
23
|
+
files:
|
|
24
|
+
- CHANGELOG.md
|
|
25
|
+
- CLAUDE.md
|
|
26
|
+
- LICENSE
|
|
27
|
+
- README.md
|
|
28
|
+
- Rakefile
|
|
29
|
+
- lib/validrb.rb
|
|
30
|
+
- lib/validrb/constraints/base.rb
|
|
31
|
+
- lib/validrb/constraints/enum.rb
|
|
32
|
+
- lib/validrb/constraints/format.rb
|
|
33
|
+
- lib/validrb/constraints/length.rb
|
|
34
|
+
- lib/validrb/constraints/max.rb
|
|
35
|
+
- lib/validrb/constraints/min.rb
|
|
36
|
+
- lib/validrb/context.rb
|
|
37
|
+
- lib/validrb/custom_type.rb
|
|
38
|
+
- lib/validrb/errors.rb
|
|
39
|
+
- lib/validrb/field.rb
|
|
40
|
+
- lib/validrb/i18n.rb
|
|
41
|
+
- lib/validrb/introspection.rb
|
|
42
|
+
- lib/validrb/openapi.rb
|
|
43
|
+
- lib/validrb/result.rb
|
|
44
|
+
- lib/validrb/schema.rb
|
|
45
|
+
- lib/validrb/serializer.rb
|
|
46
|
+
- lib/validrb/types/array.rb
|
|
47
|
+
- lib/validrb/types/base.rb
|
|
48
|
+
- lib/validrb/types/boolean.rb
|
|
49
|
+
- lib/validrb/types/date.rb
|
|
50
|
+
- lib/validrb/types/datetime.rb
|
|
51
|
+
- lib/validrb/types/decimal.rb
|
|
52
|
+
- lib/validrb/types/discriminated_union.rb
|
|
53
|
+
- lib/validrb/types/float.rb
|
|
54
|
+
- lib/validrb/types/integer.rb
|
|
55
|
+
- lib/validrb/types/literal.rb
|
|
56
|
+
- lib/validrb/types/object.rb
|
|
57
|
+
- lib/validrb/types/string.rb
|
|
58
|
+
- lib/validrb/types/time.rb
|
|
59
|
+
- lib/validrb/types/union.rb
|
|
60
|
+
- lib/validrb/version.rb
|
|
61
|
+
- validrb.gemspec
|
|
62
|
+
homepage: https://github.com/validrb/validrb
|
|
63
|
+
licenses:
|
|
64
|
+
- MIT
|
|
65
|
+
metadata:
|
|
66
|
+
homepage_uri: https://github.com/validrb/validrb
|
|
67
|
+
source_code_uri: https://github.com/validrb/validrb
|
|
68
|
+
changelog_uri: https://github.com/validrb/validrb/blob/main/CHANGELOG.md
|
|
69
|
+
documentation_uri: https://github.com/validrb/validrb
|
|
70
|
+
bug_tracker_uri: https://github.com/validrb/validrb/issues
|
|
71
|
+
rubygems_mfa_required: 'true'
|
|
72
|
+
post_install_message:
|
|
73
|
+
rdoc_options: []
|
|
74
|
+
require_paths:
|
|
75
|
+
- lib
|
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
|
+
requirements:
|
|
78
|
+
- - ">="
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: 3.0.0
|
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
|
+
requirements:
|
|
83
|
+
- - ">="
|
|
84
|
+
- !ruby/object:Gem::Version
|
|
85
|
+
version: '0'
|
|
86
|
+
requirements: []
|
|
87
|
+
rubygems_version: 3.5.22
|
|
88
|
+
signing_key:
|
|
89
|
+
specification_version: 4
|
|
90
|
+
summary: A Ruby schema validation library with type coercion
|
|
91
|
+
test_files: []
|