schemable 0.1.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/.rspec +3 -0
- data/.rubocop.yml +117 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +128 -0
- data/LICENSE.txt +21 -0
- data/README.md +39 -0
- data/Rakefile +12 -0
- data/lib/generators/schemable/install_generator.rb +29 -0
- data/lib/generators/schemable/model_generator.rb +53 -0
- data/lib/schemable/version.rb +5 -0
- data/lib/schemable.rb +869 -0
- data/lib/templates/common_definitions.rb +13 -0
- data/lib/templates/serializers_helper.rb +7 -0
- data/schemable.gemspec +37 -0
- data/sig/schemable.rbs +4 -0
- metadata +96 -0
@@ -0,0 +1,13 @@
|
|
1
|
+
module SwaggerDefinitions
|
2
|
+
module CommonDefinitions
|
3
|
+
def self.aggregate
|
4
|
+
[
|
5
|
+
# Import definitions like this:
|
6
|
+
# Swagger::Definitions::Model.definitions
|
7
|
+
|
8
|
+
# Make sure in swagger_helper.rb's components section you have:
|
9
|
+
# schemas: SwaggerDefinitions::CommonDefinitions.aggregate
|
10
|
+
].flatten.reduce({}, :merge)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/schemable.gemspec
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/schemable/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "schemable"
|
7
|
+
spec.version = Schemable::VERSION
|
8
|
+
spec.authors = ["Muhammad Nawzad"]
|
9
|
+
spec.email = ["hama127n@gmail.com"]
|
10
|
+
|
11
|
+
spec.summary = "An opiniated Gem for Rails applications to auto generate schema in JSONAPI format."
|
12
|
+
spec.description = "The schemable gem is an opiniated Gem for Rails applications to auto generate schema for models in JSONAPI format. It is designed to work with rswag's swagger documentation since it can generate the schemas for it."
|
13
|
+
spec.homepage = "https://github.com/muhammadnawzad/schemable"
|
14
|
+
spec.license = "MIT"
|
15
|
+
spec.required_ruby_version = ">= 3.1.2"
|
16
|
+
|
17
|
+
spec.metadata["allowed_push_host"] = 'https://rubygems.org'
|
18
|
+
|
19
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
20
|
+
spec.metadata["source_code_uri"] = 'https://github.com/muhammadnawzad/schemable'
|
21
|
+
spec.metadata["changelog_uri"] = 'https://github.com/muhammadnawzad/schemable/blob/main/CHANGELOG.md'
|
22
|
+
|
23
|
+
|
24
|
+
spec.files = Dir.chdir(__dir__) do
|
25
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
26
|
+
(File.expand_path(f) == __FILE__) || f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
spec.bindir = "exe"
|
30
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
31
|
+
spec.require_paths = ["lib"]
|
32
|
+
|
33
|
+
spec.add_dependency "jsonapi-rails", "~> 0.4.1"
|
34
|
+
spec.add_dependency "factory_bot_rails", "~> 6.2.0"
|
35
|
+
|
36
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
37
|
+
end
|
data/sig/schemable.rbs
ADDED
metadata
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: schemable
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Muhammad Nawzad
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2023-05-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: jsonapi-rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.4.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.4.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: factory_bot_rails
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 6.2.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 6.2.0
|
41
|
+
description: The schemable gem is an opiniated Gem for Rails applications to auto
|
42
|
+
generate schema for models in JSONAPI format. It is designed to work with rswag's
|
43
|
+
swagger documentation since it can generate the schemas for it.
|
44
|
+
email:
|
45
|
+
- hama127n@gmail.com
|
46
|
+
executables: []
|
47
|
+
extensions: []
|
48
|
+
extra_rdoc_files: []
|
49
|
+
files:
|
50
|
+
- ".rspec"
|
51
|
+
- ".rubocop.yml"
|
52
|
+
- CHANGELOG.md
|
53
|
+
- CODE_OF_CONDUCT.md
|
54
|
+
- Gemfile
|
55
|
+
- Gemfile.lock
|
56
|
+
- LICENSE.txt
|
57
|
+
- README.md
|
58
|
+
- Rakefile
|
59
|
+
- lib/generators/schemable/install_generator.rb
|
60
|
+
- lib/generators/schemable/model_generator.rb
|
61
|
+
- lib/schemable.rb
|
62
|
+
- lib/schemable/version.rb
|
63
|
+
- lib/templates/common_definitions.rb
|
64
|
+
- lib/templates/serializers_helper.rb
|
65
|
+
- schemable.gemspec
|
66
|
+
- sig/schemable.rbs
|
67
|
+
homepage: https://github.com/muhammadnawzad/schemable
|
68
|
+
licenses:
|
69
|
+
- MIT
|
70
|
+
metadata:
|
71
|
+
allowed_push_host: https://rubygems.org
|
72
|
+
homepage_uri: https://github.com/muhammadnawzad/schemable
|
73
|
+
source_code_uri: https://github.com/muhammadnawzad/schemable
|
74
|
+
changelog_uri: https://github.com/muhammadnawzad/schemable/blob/main/CHANGELOG.md
|
75
|
+
rubygems_mfa_required: 'true'
|
76
|
+
post_install_message:
|
77
|
+
rdoc_options: []
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 3.1.2
|
85
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
requirements: []
|
91
|
+
rubygems_version: 3.4.1
|
92
|
+
signing_key:
|
93
|
+
specification_version: 4
|
94
|
+
summary: An opiniated Gem for Rails applications to auto generate schema in JSONAPI
|
95
|
+
format.
|
96
|
+
test_files: []
|