taro 0.0.0 → 1.0.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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +22 -0
  4. data/CHANGELOG.md +5 -0
  5. data/README.md +262 -1
  6. data/Rakefile +11 -0
  7. data/lib/taro/config.rb +22 -0
  8. data/lib/taro/errors.rb +6 -0
  9. data/lib/taro/export/base.rb +29 -0
  10. data/lib/taro/export/open_api_v3.rb +189 -0
  11. data/lib/taro/export.rb +3 -0
  12. data/lib/taro/rails/active_declarations.rb +19 -0
  13. data/lib/taro/rails/declaration.rb +101 -0
  14. data/lib/taro/rails/declaration_buffer.rb +24 -0
  15. data/lib/taro/rails/dsl.rb +18 -0
  16. data/lib/taro/rails/generators/install_generator.rb +19 -0
  17. data/lib/taro/rails/generators/templates/enum_type.erb +4 -0
  18. data/lib/taro/rails/generators/templates/error_type.erb +10 -0
  19. data/lib/taro/rails/generators/templates/errors_type.erb +25 -0
  20. data/lib/taro/rails/generators/templates/input_type.erb +4 -0
  21. data/lib/taro/rails/generators/templates/no_content_type.erb +4 -0
  22. data/lib/taro/rails/generators/templates/object_type.erb +4 -0
  23. data/lib/taro/rails/generators/templates/scalar_type.erb +4 -0
  24. data/lib/taro/rails/generators.rb +3 -0
  25. data/lib/taro/rails/normalized_route.rb +29 -0
  26. data/lib/taro/rails/param_parsing.rb +19 -0
  27. data/lib/taro/rails/railtie.rb +15 -0
  28. data/lib/taro/rails/response_validation.rb +63 -0
  29. data/lib/taro/rails/route_finder.rb +35 -0
  30. data/lib/taro/rails/tasks/export.rake +15 -0
  31. data/lib/taro/rails.rb +18 -0
  32. data/lib/taro/types/base_type.rb +17 -0
  33. data/lib/taro/types/coercion.rb +72 -0
  34. data/lib/taro/types/enum_type.rb +43 -0
  35. data/lib/taro/types/field.rb +78 -0
  36. data/lib/taro/types/field_validation.rb +27 -0
  37. data/lib/taro/types/input_type.rb +13 -0
  38. data/lib/taro/types/list_type.rb +30 -0
  39. data/lib/taro/types/object_type.rb +19 -0
  40. data/lib/taro/types/object_types/free_form_type.rb +13 -0
  41. data/lib/taro/types/object_types/no_content_type.rb +16 -0
  42. data/lib/taro/types/object_types/page_info_type.rb +6 -0
  43. data/lib/taro/types/object_types/page_type.rb +45 -0
  44. data/lib/taro/types/scalar/boolean_type.rb +19 -0
  45. data/lib/taro/types/scalar/float_type.rb +15 -0
  46. data/lib/taro/types/scalar/integer_type.rb +11 -0
  47. data/lib/taro/types/scalar/iso8601_date_type.rb +23 -0
  48. data/lib/taro/types/scalar/iso8601_datetime_type.rb +25 -0
  49. data/lib/taro/types/scalar/string_type.rb +15 -0
  50. data/lib/taro/types/scalar/timestamp_type.rb +23 -0
  51. data/lib/taro/types/scalar/uuid_v4_type.rb +22 -0
  52. data/lib/taro/types/scalar_type.rb +7 -0
  53. data/lib/taro/types/shared/additional_properties.rb +12 -0
  54. data/lib/taro/types/shared/custom_field_resolvers.rb +33 -0
  55. data/lib/taro/types/shared/derivable_types.rb +9 -0
  56. data/lib/taro/types/shared/description.rb +9 -0
  57. data/lib/taro/types/shared/errors.rb +13 -0
  58. data/lib/taro/types/shared/fields.rb +57 -0
  59. data/lib/taro/types/shared/item_type.rb +16 -0
  60. data/lib/taro/types/shared/object_coercion.rb +16 -0
  61. data/lib/taro/types/shared/openapi_name.rb +30 -0
  62. data/lib/taro/types/shared/openapi_type.rb +27 -0
  63. data/lib/taro/types/shared/rendering.rb +36 -0
  64. data/lib/taro/types/shared.rb +3 -0
  65. data/lib/taro/types.rb +3 -0
  66. data/lib/taro/version.rb +2 -3
  67. data/lib/taro.rb +1 -6
  68. data/tasks/benchmark.rake +40 -0
  69. data/tasks/benchmark_1kb.json +23 -0
  70. metadata +90 -7
metadata CHANGED
@@ -1,31 +1,114 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janosch Müller
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-04 00:00:00.000000000 Z
12
- dependencies: []
13
- description: placeholder gem
11
+ date: 2024-11-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
27
+ description: This library provides an object-based type system for RESTful Ruby APIs,
28
+ with built-in parameter parsing, response rendering, and OpenAPI schema export.
14
29
  email:
15
30
  - janosch84@gmail.com
16
31
  executables: []
17
32
  extensions: []
18
33
  extra_rdoc_files: []
19
34
  files:
35
+ - ".rspec"
36
+ - ".rubocop.yml"
37
+ - CHANGELOG.md
20
38
  - LICENSE.txt
21
39
  - README.md
22
40
  - Rakefile
23
41
  - lib/taro.rb
42
+ - lib/taro/config.rb
43
+ - lib/taro/errors.rb
44
+ - lib/taro/export.rb
45
+ - lib/taro/export/base.rb
46
+ - lib/taro/export/open_api_v3.rb
47
+ - lib/taro/rails.rb
48
+ - lib/taro/rails/active_declarations.rb
49
+ - lib/taro/rails/declaration.rb
50
+ - lib/taro/rails/declaration_buffer.rb
51
+ - lib/taro/rails/dsl.rb
52
+ - lib/taro/rails/generators.rb
53
+ - lib/taro/rails/generators/install_generator.rb
54
+ - lib/taro/rails/generators/templates/enum_type.erb
55
+ - lib/taro/rails/generators/templates/error_type.erb
56
+ - lib/taro/rails/generators/templates/errors_type.erb
57
+ - lib/taro/rails/generators/templates/input_type.erb
58
+ - lib/taro/rails/generators/templates/no_content_type.erb
59
+ - lib/taro/rails/generators/templates/object_type.erb
60
+ - lib/taro/rails/generators/templates/scalar_type.erb
61
+ - lib/taro/rails/normalized_route.rb
62
+ - lib/taro/rails/param_parsing.rb
63
+ - lib/taro/rails/railtie.rb
64
+ - lib/taro/rails/response_validation.rb
65
+ - lib/taro/rails/route_finder.rb
66
+ - lib/taro/rails/tasks/export.rake
67
+ - lib/taro/types.rb
68
+ - lib/taro/types/base_type.rb
69
+ - lib/taro/types/coercion.rb
70
+ - lib/taro/types/enum_type.rb
71
+ - lib/taro/types/field.rb
72
+ - lib/taro/types/field_validation.rb
73
+ - lib/taro/types/input_type.rb
74
+ - lib/taro/types/list_type.rb
75
+ - lib/taro/types/object_type.rb
76
+ - lib/taro/types/object_types/free_form_type.rb
77
+ - lib/taro/types/object_types/no_content_type.rb
78
+ - lib/taro/types/object_types/page_info_type.rb
79
+ - lib/taro/types/object_types/page_type.rb
80
+ - lib/taro/types/scalar/boolean_type.rb
81
+ - lib/taro/types/scalar/float_type.rb
82
+ - lib/taro/types/scalar/integer_type.rb
83
+ - lib/taro/types/scalar/iso8601_date_type.rb
84
+ - lib/taro/types/scalar/iso8601_datetime_type.rb
85
+ - lib/taro/types/scalar/string_type.rb
86
+ - lib/taro/types/scalar/timestamp_type.rb
87
+ - lib/taro/types/scalar/uuid_v4_type.rb
88
+ - lib/taro/types/scalar_type.rb
89
+ - lib/taro/types/shared.rb
90
+ - lib/taro/types/shared/additional_properties.rb
91
+ - lib/taro/types/shared/custom_field_resolvers.rb
92
+ - lib/taro/types/shared/derivable_types.rb
93
+ - lib/taro/types/shared/description.rb
94
+ - lib/taro/types/shared/errors.rb
95
+ - lib/taro/types/shared/fields.rb
96
+ - lib/taro/types/shared/item_type.rb
97
+ - lib/taro/types/shared/object_coercion.rb
98
+ - lib/taro/types/shared/openapi_name.rb
99
+ - lib/taro/types/shared/openapi_type.rb
100
+ - lib/taro/types/shared/rendering.rb
24
101
  - lib/taro/version.rb
25
- homepage:
102
+ - tasks/benchmark.rake
103
+ - tasks/benchmark_1kb.json
104
+ homepage: https://github.com/taro-rb/taro
26
105
  licenses:
27
106
  - MIT
28
- metadata: {}
107
+ metadata:
108
+ rubygems_mfa_required: 'true'
109
+ homepage_uri: https://github.com/taro-rb/taro
110
+ source_code_uri: https://github.com/taro-rb/taro
111
+ changelog_uri: https://github.com/taro-rb/taro/CHANGELOG.md
29
112
  post_install_message:
30
113
  rdoc_options: []
31
114
  require_paths:
@@ -44,5 +127,5 @@ requirements: []
44
127
  rubygems_version: 3.5.16
45
128
  signing_key:
46
129
  specification_version: 4
47
- summary: placeholder gem
130
+ summary: Typed Api using Ruby Objects.
48
131
  test_files: []