taro 0.0.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []