meta-api 0.0.8 → 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 +4 -4
- data/CHANGELOG.md +22 -0
- data/lib/meta/application/execution.rb +19 -49
- data/lib/meta/application/metadata.rb +68 -15
- data/lib/meta/application/responses.rb +32 -0
- data/lib/meta/application/route.rb +4 -26
- data/lib/meta/config.rb +2 -3
- data/lib/meta/entity.rb +2 -3
- data/lib/meta/json_schema/builders/object_schema_builder.rb +45 -40
- data/lib/meta/json_schema/builders/schema_builder_tool.rb +2 -5
- data/lib/meta/json_schema/schemas/array_schema.rb +24 -14
- data/lib/meta/json_schema/schemas/base_schema.rb +107 -37
- data/lib/meta/json_schema/schemas/named_properties.rb +37 -0
- data/lib/meta/json_schema/schemas/object_schema.rb +58 -20
- data/lib/meta/json_schema/schemas/properties.rb +27 -76
- data/lib/meta/json_schema/schemas/ref_schema.rb +36 -9
- data/lib/meta/json_schema/schemas/scoping_schema.rb +38 -0
- data/lib/meta/json_schema/schemas/staging_schema.rb +59 -0
- data/lib/meta/json_schema/schemas/unsupported_schema.rb +22 -0
- data/lib/meta/json_schema/support/errors.rb +3 -0
- data/lib/meta/json_schema/support/json_object.rb +37 -0
- data/lib/meta/json_schema/support/schema_options.rb +0 -9
- data/lib/meta/json_schema/support/scope_matcher.rb +29 -0
- data/lib/meta/json_schema/support/type_converter.rb +3 -24
- data/lib/meta/route_dsl/meta_builder.rb +2 -2
- data/lib/meta/swagger_doc.rb +2 -25
- data/lib/meta/utils/kwargs/builder.rb +5 -3
- data/lib/meta/utils/route_dsl_builders.rb +2 -1
- data/meta-api.gemspec +6 -5
- metadata +75 -111
- data/.autoenv.zsh +0 -1
- data/.gitignore +0 -7
- data/.rubocop.yml +0 -28
- data/Gemfile +0 -19
- data/Gemfile.lock +0 -68
- data/README.md +0 -166
- data/Rakefile +0 -3
- data/docs/Rails.md +0 -61
- data/docs//345/220/215/347/247/260/347/224/261/346/235/245.md +0 -7
- data/docs//345/246/202/344/275/225/350/264/241/347/214/256.md +0 -10
- data/docs//346/225/231/347/250/213.md +0 -1708
- data/docs//347/264/242/345/274/225.md +0 -183
- data/examples/lobster.rb +0 -71
- data/examples/rack_app/README.md +0 -3
- data/examples/rack_app/config.ru +0 -6
- data/examples/rack_app/hello.rb +0 -6
- data/examples/rack_app/timing.rb +0 -15
- data/examples/rails_app/.gitattributes +0 -5
- data/examples/rails_app/.gitignore +0 -23
- data/examples/rails_app/.rspec +0 -1
- data/examples/rails_app/.ruby-version +0 -1
- data/examples/rails_app/Gemfile +0 -29
- data/examples/rails_app/Gemfile.lock +0 -190
- data/examples/rails_app/README.md +0 -11
- data/examples/rails_app/Rakefile +0 -6
- data/examples/rails_app/app/controllers/application_controller.rb +0 -7
- data/examples/rails_app/app/controllers/concerns/.keep +0 -0
- data/examples/rails_app/app/controllers/data_controller.rb +0 -63
- data/examples/rails_app/app/controllers/swagger_controller.rb +0 -13
- data/examples/rails_app/app/models/concerns/.keep +0 -0
- data/examples/rails_app/bin/rails +0 -4
- data/examples/rails_app/bin/rake +0 -4
- data/examples/rails_app/bin/setup +0 -25
- data/examples/rails_app/config/application.rb +0 -39
- data/examples/rails_app/config/boot.rb +0 -3
- data/examples/rails_app/config/credentials.yml.enc +0 -1
- data/examples/rails_app/config/environment.rb +0 -5
- data/examples/rails_app/config/environments/development.rb +0 -51
- data/examples/rails_app/config/environments/production.rb +0 -65
- data/examples/rails_app/config/environments/test.rb +0 -50
- data/examples/rails_app/config/initializers/cors.rb +0 -16
- data/examples/rails_app/config/initializers/filter_parameter_logging.rb +0 -8
- data/examples/rails_app/config/initializers/inflections.rb +0 -16
- data/examples/rails_app/config/initializers/meta_rails_plugin.rb +0 -3
- data/examples/rails_app/config/locales/en.yml +0 -33
- data/examples/rails_app/config/puma.rb +0 -43
- data/examples/rails_app/config/routes.rb +0 -13
- data/examples/rails_app/config.ru +0 -6
- data/examples/rails_app/lib/tasks/.keep +0 -0
- data/examples/rails_app/log/.keep +0 -0
- data/examples/rails_app/public/robots.txt +0 -1
- data/examples/rails_app/spec/data_controller_spec.rb +0 -60
- data/examples/rails_app/spec/rails_helper.rb +0 -55
- data/examples/rails_app/spec/spec_helper.rb +0 -94
- data/examples/rails_app/spec/swagger_controller_spec.rb +0 -13
- data/examples/rails_app/tmp/.keep +0 -0
- data/examples/rails_app/tmp/pids/.keep +0 -0
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../utils/kwargs/check'
|
4
|
+
require_relative '../support/schema_options'
|
5
|
+
require_relative 'scoping_schema'
|
6
|
+
require_relative 'unsupported_schema'
|
7
|
+
|
8
|
+
module Meta
|
9
|
+
module JsonSchema
|
10
|
+
# 内含 param_schema, render_schema, default_schema,分别用于不同的阶段。
|
11
|
+
class StagingSchema < BaseSchema
|
12
|
+
attr_reader :param_schema, :render_schema
|
13
|
+
|
14
|
+
def initialize(param_schema:, render_schema:)
|
15
|
+
raise ArgumentError, 'param_schema 选项重复提交为 StagingSchema' if param_schema.is_a?(StagingSchema)
|
16
|
+
raise ArgumentError, 'render_schema 选项重复提交为 StagingSchema' if render_schema.is_a?(StagingSchema)
|
17
|
+
|
18
|
+
@param_schema = param_schema
|
19
|
+
@render_schema = render_schema
|
20
|
+
end
|
21
|
+
|
22
|
+
def filter(value, user_options = {})
|
23
|
+
if user_options[:stage] == :param
|
24
|
+
param_schema.filter(value, user_options)
|
25
|
+
elsif user_options[:stage] == :render
|
26
|
+
render_schema.filter(value, user_options)
|
27
|
+
else
|
28
|
+
raise ArgumentError, "stage 选项必须是 :param 或 :render"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def staged(stage)
|
33
|
+
if stage == :param
|
34
|
+
param_schema
|
35
|
+
elsif stage == :render
|
36
|
+
render_schema
|
37
|
+
else
|
38
|
+
raise ArgumentError, "stage 选项必须是 :param 或 :render"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def defined_scopes(stage:, **kwargs)
|
43
|
+
staged(stage).defined_scopes(stage: stage, **kwargs)
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.build_from_options(options, build_schema = ->(opts) { BaseSchema.new(opts) })
|
47
|
+
param_opts, render_opts, common_opts = SchemaOptions.divide_to_param_and_render(options)
|
48
|
+
if param_opts == common_opts && render_opts == common_opts
|
49
|
+
return ScopingSchema.build_from_options(common_opts, build_schema)
|
50
|
+
else
|
51
|
+
StagingSchema.new(
|
52
|
+
param_schema: param_opts ? ScopingSchema.build_from_options(param_opts, build_schema) : UnsupportedSchema.new(:stage, :param),
|
53
|
+
render_schema: render_opts ? ScopingSchema.build_from_options(render_opts, build_schema) : UnsupportedSchema.new(:stage, :render)
|
54
|
+
)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Meta
|
4
|
+
module JsonSchema
|
5
|
+
class UnsupportedSchema < BaseSchema
|
6
|
+
attr_reader :key, :value
|
7
|
+
|
8
|
+
def initialize(key, value)
|
9
|
+
@key = key
|
10
|
+
@value = value
|
11
|
+
end
|
12
|
+
|
13
|
+
def filter?
|
14
|
+
false
|
15
|
+
end
|
16
|
+
|
17
|
+
def filter(value, options)
|
18
|
+
raise UnsupportedError, "不支持的 #{key}: #{value}}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# 将 Ruby 类型包装成 JsonObject 类型,以便可以通过 [key] 访问。同时,保留其他方法的调用,将其转发到原始对象上。
|
4
|
+
module Meta
|
5
|
+
module JsonSchema
|
6
|
+
class JsonObject
|
7
|
+
def initialize(target)
|
8
|
+
@target = target
|
9
|
+
end
|
10
|
+
|
11
|
+
def __target__
|
12
|
+
@target
|
13
|
+
end
|
14
|
+
|
15
|
+
def key?(key)
|
16
|
+
@target.respond_to?(key)
|
17
|
+
end
|
18
|
+
|
19
|
+
def [](key)
|
20
|
+
@target.__send__(key)
|
21
|
+
end
|
22
|
+
|
23
|
+
def method_missing(method, *args)
|
24
|
+
@target.__send__(method, *args)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.wrap(target)
|
28
|
+
case target
|
29
|
+
when JsonObject, Hash
|
30
|
+
target
|
31
|
+
else
|
32
|
+
new(target)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -9,11 +9,6 @@ module Meta
|
|
9
9
|
scope: [],
|
10
10
|
required: false
|
11
11
|
}
|
12
|
-
@allowable_options = (
|
13
|
-
%i[type description in value using default presenter convert scope items using] +
|
14
|
-
@default_options.keys +
|
15
|
-
JsonSchema::Validators.keys
|
16
|
-
).uniq
|
17
12
|
|
18
13
|
class << self
|
19
14
|
def divide_to_param_and_render(options)
|
@@ -37,10 +32,6 @@ module Meta
|
|
37
32
|
end
|
38
33
|
end
|
39
34
|
|
40
|
-
# 处理 validators
|
41
|
-
unknown_validators = options.keys - @allowable_options
|
42
|
-
raise "未知的选项:#{unknown_validators.join(', ')}" unless unknown_validators.empty?
|
43
|
-
|
44
35
|
options
|
45
36
|
end
|
46
37
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Meta
|
4
|
+
module JsonSchema
|
5
|
+
class ScopeMatcher
|
6
|
+
attr_reader :defined_scopes
|
7
|
+
|
8
|
+
def initialize(query_clause)
|
9
|
+
query_clause = [query_clause] if query_clause.is_a?(String) || query_clause.is_a?(Symbol)
|
10
|
+
query_clause = { some_of: query_clause } if query_clause.is_a?(Array)
|
11
|
+
|
12
|
+
@match_type, @defined_scopes = query_clause.first
|
13
|
+
end
|
14
|
+
|
15
|
+
def match?(scopes)
|
16
|
+
return false if scopes.empty?
|
17
|
+
|
18
|
+
case @match_type
|
19
|
+
when :some_of
|
20
|
+
(@defined_scopes & scopes).any?
|
21
|
+
when :all_of
|
22
|
+
(@defined_scopes - scopes).empty?
|
23
|
+
else
|
24
|
+
raise "Unknown match type: #{@match_type}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -1,31 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'bigdecimal'
|
4
|
+
require_relative 'json_object'
|
4
5
|
|
5
6
|
module Meta
|
6
7
|
module JsonSchema
|
7
|
-
class ObjectWrapper
|
8
|
-
def initialize(target)
|
9
|
-
@target = target
|
10
|
-
end
|
11
|
-
|
12
|
-
def __target__
|
13
|
-
@target
|
14
|
-
end
|
15
|
-
|
16
|
-
def key?(key)
|
17
|
-
@target.respond_to?(key)
|
18
|
-
end
|
19
|
-
|
20
|
-
def [](key)
|
21
|
-
@target.__send__(key)
|
22
|
-
end
|
23
|
-
|
24
|
-
def method_missing(method, *args)
|
25
|
-
@target.__send__(method, *args)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
8
|
module TypeConverter
|
30
9
|
# 定义客户类型对应的 Ruby 类型
|
31
10
|
@definity_types = {
|
@@ -34,7 +13,7 @@ module Meta
|
|
34
13
|
'number' => [Integer, Float, BigDecimal],
|
35
14
|
'string' => [String],
|
36
15
|
'array' => [Array],
|
37
|
-
'object' => [Hash,
|
16
|
+
'object' => [Hash, JsonObject]
|
38
17
|
}
|
39
18
|
|
40
19
|
# 定义从 Ruby 类型转化为对应类型的逻辑
|
@@ -101,7 +80,7 @@ module Meta
|
|
101
80
|
raise TypeConvertError, I18n.t(:'json_schema.errors.type_convert.object', value: value, real_type: I18n.t(:'json_schema.type_names.array'))
|
102
81
|
end
|
103
82
|
|
104
|
-
|
83
|
+
JsonObject.new(value)
|
105
84
|
end
|
106
85
|
}
|
107
86
|
|
@@ -9,7 +9,7 @@ module Meta
|
|
9
9
|
def initialize(route_full_path:, route_method: :all, &block)
|
10
10
|
@route_full_path = route_full_path
|
11
11
|
@method = route_method
|
12
|
-
@meta = {}
|
12
|
+
@meta = { scope: [] }
|
13
13
|
@parameters_builder = ParametersBuilder.new(route_full_path: route_full_path, route_method: route_method) # 默认给一个空的参数构建器,它只会处理 path 参数
|
14
14
|
|
15
15
|
instance_exec &block if block_given?
|
@@ -43,7 +43,7 @@ module Meta
|
|
43
43
|
codes.each { |code| @meta[:responses][code] = entity_schema }
|
44
44
|
end
|
45
45
|
|
46
|
-
[:tags, :title, :description].each do |method_name|
|
46
|
+
[:tags, :title, :description, :scope].each do |method_name|
|
47
47
|
define_method(method_name) do |value|
|
48
48
|
@meta[method_name] = value
|
49
49
|
end
|
data/lib/meta/swagger_doc.rb
CHANGED
@@ -5,7 +5,7 @@ module Meta
|
|
5
5
|
class << self
|
6
6
|
def generate(application, info: {}, servers: [])
|
7
7
|
paths_and_routes = get_paths_and_routes!(application)
|
8
|
-
|
8
|
+
generate_from_paths_and_routes(paths_and_routes, info: info, servers: servers)
|
9
9
|
end
|
10
10
|
|
11
11
|
def generate_from_paths_and_routes(paths_and_routes, info: {}, servers: [])
|
@@ -32,7 +32,7 @@ module Meta
|
|
32
32
|
|
33
33
|
# 生成单个路由的文档
|
34
34
|
def generate_operation_object(route, schemas)
|
35
|
-
route.
|
35
|
+
route.generate_operation_doc(schemas)
|
36
36
|
end
|
37
37
|
|
38
38
|
private
|
@@ -62,28 +62,5 @@ module Meta
|
|
62
62
|
store_routes
|
63
63
|
end
|
64
64
|
end
|
65
|
-
|
66
|
-
class Path
|
67
|
-
def initialize(parts = [])
|
68
|
-
@parts = parts.freeze
|
69
|
-
end
|
70
|
-
|
71
|
-
def append(part)
|
72
|
-
part = part[1..-1] if part.start_with?('/')
|
73
|
-
parts = part.split('/')
|
74
|
-
|
75
|
-
self.class.new(@parts + parts)
|
76
|
-
end
|
77
|
-
|
78
|
-
def to_s
|
79
|
-
'/' + @parts.join('/')
|
80
|
-
end
|
81
|
-
|
82
|
-
def self.from_string(path)
|
83
|
-
path = path[1..-1] if path.start_with?('/')
|
84
|
-
parts = path.split('/')
|
85
|
-
self.class.new(parts)
|
86
|
-
end
|
87
|
-
end
|
88
65
|
end
|
89
66
|
end
|
@@ -58,15 +58,17 @@ module Meta
|
|
58
58
|
def initialize(name:, normalizer: DEFAULT_TRANSFORMER, validator: nil, default: nil, alias_names: [])
|
59
59
|
@key_name = name
|
60
60
|
@consumer_names = [name] + alias_names
|
61
|
-
@
|
61
|
+
@default_value = default
|
62
|
+
@normalizer = normalizer
|
62
63
|
@validator = validator
|
63
64
|
end
|
64
65
|
|
65
66
|
def consume(final_args, args)
|
66
67
|
@consumer_names.each do |name|
|
67
|
-
return
|
68
|
+
return if consume_name(final_args, args, name)
|
68
69
|
end
|
69
|
-
|
70
|
+
|
71
|
+
final_args[@key_name] = @default_value unless @default_value.nil?
|
70
72
|
end
|
71
73
|
|
72
74
|
def consume_name(final_args, args, consumer_name)
|
@@ -10,11 +10,12 @@ module Meta
|
|
10
10
|
final_options[:parameters] = options1[:parameters].merge(options2[:parameters])
|
11
11
|
end
|
12
12
|
if options1[:request_body].is_a?(Meta::JsonSchema::ObjectSchema) && options2[:request_body].is_a?(Meta::JsonSchema::ObjectSchema)
|
13
|
-
final_options[:request_body] = options1[:request_body].
|
13
|
+
final_options[:request_body] = options1[:request_body].properties.merge(options2[:request_body].properties)
|
14
14
|
end
|
15
15
|
if options1[:responses] && options2[:responses]
|
16
16
|
final_options[:responses] = options1[:responses].merge(options2[:responses])
|
17
17
|
end
|
18
|
+
final_options[:scope] = [options1[:scope] || [], options2[:scope] || []].flatten.uniq
|
18
19
|
final_options
|
19
20
|
end
|
20
21
|
|
data/meta-api.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "meta-api"
|
3
|
-
spec.version = "0.0
|
3
|
+
spec.version = "0.1.0"
|
4
4
|
spec.authors = ["yetrun"]
|
5
5
|
spec.email = ["yetrun@foxmail.com"]
|
6
6
|
|
@@ -14,10 +14,11 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.metadata["homepage_uri"] = spec.homepage
|
15
15
|
spec.metadata["source_code_uri"] = "https://github.com/yetrun/web-frame.git"
|
16
16
|
|
17
|
+
spec.add_dependency "hash_to_struct", "~> 1.0.0"
|
18
|
+
|
17
19
|
# Specify which files should be added to the gem when it is released.
|
18
|
-
|
19
|
-
spec.files
|
20
|
-
|
21
|
-
end
|
20
|
+
spec.files = Dir.glob("{config,lib}/{.rb,/**/*}", File::FNM_DOTMATCH).reject {|f| File.directory?(f) }
|
21
|
+
spec.files += %w[CHANGELOG.md LICENSE.txt meta-api.gemspec]
|
22
|
+
|
22
23
|
spec.require_paths = ["lib"]
|
23
24
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: meta-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- yetrun
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
12
|
-
dependencies:
|
11
|
+
date: 2023-08-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: hash_to_struct
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.0
|
13
27
|
description: 一个 Web API 框架,该框架采用定义元信息的方式编写 API,并同步生成 API 文档
|
14
28
|
email:
|
15
29
|
- yetrun@foxmail.com
|
@@ -17,112 +31,62 @@ executables: []
|
|
17
31
|
extensions: []
|
18
32
|
extra_rdoc_files: []
|
19
33
|
files:
|
20
|
-
- ".autoenv.zsh"
|
21
|
-
- ".gitignore"
|
22
|
-
- ".rubocop.yml"
|
23
34
|
- CHANGELOG.md
|
24
|
-
- Gemfile
|
25
|
-
- Gemfile.lock
|
26
35
|
- LICENSE.txt
|
27
|
-
-
|
28
|
-
-
|
29
|
-
-
|
30
|
-
-
|
31
|
-
-
|
32
|
-
-
|
33
|
-
-
|
34
|
-
-
|
35
|
-
-
|
36
|
-
-
|
37
|
-
-
|
38
|
-
-
|
39
|
-
-
|
40
|
-
-
|
41
|
-
-
|
42
|
-
-
|
43
|
-
-
|
44
|
-
-
|
45
|
-
-
|
46
|
-
-
|
47
|
-
-
|
48
|
-
-
|
49
|
-
-
|
50
|
-
-
|
51
|
-
-
|
52
|
-
-
|
53
|
-
-
|
54
|
-
-
|
55
|
-
-
|
56
|
-
-
|
57
|
-
-
|
58
|
-
-
|
59
|
-
-
|
60
|
-
-
|
61
|
-
-
|
62
|
-
-
|
63
|
-
-
|
64
|
-
-
|
65
|
-
-
|
66
|
-
-
|
67
|
-
-
|
68
|
-
-
|
69
|
-
-
|
70
|
-
-
|
71
|
-
-
|
72
|
-
-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
-
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
79
|
-
-
|
80
|
-
- lib
|
81
|
-
- lib/meta/application.rb
|
82
|
-
- lib/meta/application/application.rb
|
83
|
-
- lib/meta/application/execution.rb
|
84
|
-
- lib/meta/application/linked_action.rb
|
85
|
-
- lib/meta/application/metadata.rb
|
86
|
-
- lib/meta/application/parameters.rb
|
87
|
-
- lib/meta/application/path_matching_mod.rb
|
88
|
-
- lib/meta/application/route.rb
|
89
|
-
- lib/meta/config.rb
|
90
|
-
- lib/meta/entity.rb
|
91
|
-
- lib/meta/errors.rb
|
92
|
-
- lib/meta/json_schema.rb
|
93
|
-
- lib/meta/json_schema/builders/array_schema_builder.rb
|
94
|
-
- lib/meta/json_schema/builders/dynamic_schema_builder.rb
|
95
|
-
- lib/meta/json_schema/builders/object_schema_builder.rb
|
96
|
-
- lib/meta/json_schema/builders/ref_schema_builder.rb
|
97
|
-
- lib/meta/json_schema/builders/schema_builder_tool.rb
|
98
|
-
- lib/meta/json_schema/schemas.rb
|
99
|
-
- lib/meta/json_schema/schemas/array_schema.rb
|
100
|
-
- lib/meta/json_schema/schemas/base_schema.rb
|
101
|
-
- lib/meta/json_schema/schemas/dynamic_schema.rb
|
102
|
-
- lib/meta/json_schema/schemas/object_schema.rb
|
103
|
-
- lib/meta/json_schema/schemas/properties.rb
|
104
|
-
- lib/meta/json_schema/schemas/ref_schema.rb
|
105
|
-
- lib/meta/json_schema/support/errors.rb
|
106
|
-
- lib/meta/json_schema/support/presenters.rb
|
107
|
-
- lib/meta/json_schema/support/schema_options.rb
|
108
|
-
- lib/meta/json_schema/support/type_converter.rb
|
109
|
-
- lib/meta/json_schema/support/validators.rb
|
110
|
-
- lib/meta/load_i18n.rb
|
111
|
-
- lib/meta/rails.rb
|
112
|
-
- lib/meta/route_dsl/action_builder.rb
|
113
|
-
- lib/meta/route_dsl/application_builder.rb
|
114
|
-
- lib/meta/route_dsl/around_action_builder.rb
|
115
|
-
- lib/meta/route_dsl/chain_builder.rb
|
116
|
-
- lib/meta/route_dsl/meta_builder.rb
|
117
|
-
- lib/meta/route_dsl/parameters_builder.rb
|
118
|
-
- lib/meta/route_dsl/route_builder.rb
|
119
|
-
- lib/meta/route_dsl/uniformed_params_builder.rb
|
120
|
-
- lib/meta/swagger_doc.rb
|
121
|
-
- lib/meta/utils/kwargs/builder.rb
|
122
|
-
- lib/meta/utils/kwargs/check.rb
|
123
|
-
- lib/meta/utils/kwargs/checker.rb
|
124
|
-
- lib/meta/utils/path.rb
|
125
|
-
- lib/meta/utils/route_dsl_builders.rb
|
36
|
+
- config//locales/zh-CN.yml
|
37
|
+
- lib//meta/api.rb
|
38
|
+
- lib//meta/application.rb
|
39
|
+
- lib//meta/application/application.rb
|
40
|
+
- lib//meta/application/execution.rb
|
41
|
+
- lib//meta/application/linked_action.rb
|
42
|
+
- lib//meta/application/metadata.rb
|
43
|
+
- lib//meta/application/parameters.rb
|
44
|
+
- lib//meta/application/path_matching_mod.rb
|
45
|
+
- lib//meta/application/responses.rb
|
46
|
+
- lib//meta/application/route.rb
|
47
|
+
- lib//meta/config.rb
|
48
|
+
- lib//meta/entity.rb
|
49
|
+
- lib//meta/errors.rb
|
50
|
+
- lib//meta/json_schema.rb
|
51
|
+
- lib//meta/json_schema/builders/array_schema_builder.rb
|
52
|
+
- lib//meta/json_schema/builders/dynamic_schema_builder.rb
|
53
|
+
- lib//meta/json_schema/builders/object_schema_builder.rb
|
54
|
+
- lib//meta/json_schema/builders/ref_schema_builder.rb
|
55
|
+
- lib//meta/json_schema/builders/schema_builder_tool.rb
|
56
|
+
- lib//meta/json_schema/schemas.rb
|
57
|
+
- lib//meta/json_schema/schemas/array_schema.rb
|
58
|
+
- lib//meta/json_schema/schemas/base_schema.rb
|
59
|
+
- lib//meta/json_schema/schemas/dynamic_schema.rb
|
60
|
+
- lib//meta/json_schema/schemas/named_properties.rb
|
61
|
+
- lib//meta/json_schema/schemas/object_schema.rb
|
62
|
+
- lib//meta/json_schema/schemas/properties.rb
|
63
|
+
- lib//meta/json_schema/schemas/ref_schema.rb
|
64
|
+
- lib//meta/json_schema/schemas/scoping_schema.rb
|
65
|
+
- lib//meta/json_schema/schemas/staging_schema.rb
|
66
|
+
- lib//meta/json_schema/schemas/unsupported_schema.rb
|
67
|
+
- lib//meta/json_schema/support/errors.rb
|
68
|
+
- lib//meta/json_schema/support/json_object.rb
|
69
|
+
- lib//meta/json_schema/support/presenters.rb
|
70
|
+
- lib//meta/json_schema/support/schema_options.rb
|
71
|
+
- lib//meta/json_schema/support/scope_matcher.rb
|
72
|
+
- lib//meta/json_schema/support/type_converter.rb
|
73
|
+
- lib//meta/json_schema/support/validators.rb
|
74
|
+
- lib//meta/load_i18n.rb
|
75
|
+
- lib//meta/rails.rb
|
76
|
+
- lib//meta/route_dsl/action_builder.rb
|
77
|
+
- lib//meta/route_dsl/application_builder.rb
|
78
|
+
- lib//meta/route_dsl/around_action_builder.rb
|
79
|
+
- lib//meta/route_dsl/chain_builder.rb
|
80
|
+
- lib//meta/route_dsl/meta_builder.rb
|
81
|
+
- lib//meta/route_dsl/parameters_builder.rb
|
82
|
+
- lib//meta/route_dsl/route_builder.rb
|
83
|
+
- lib//meta/route_dsl/uniformed_params_builder.rb
|
84
|
+
- lib//meta/swagger_doc.rb
|
85
|
+
- lib//meta/utils/kwargs/builder.rb
|
86
|
+
- lib//meta/utils/kwargs/check.rb
|
87
|
+
- lib//meta/utils/kwargs/checker.rb
|
88
|
+
- lib//meta/utils/path.rb
|
89
|
+
- lib//meta/utils/route_dsl_builders.rb
|
126
90
|
- meta-api.gemspec
|
127
91
|
homepage: https://github.com/yetrun/web-frame
|
128
92
|
licenses:
|
@@ -131,7 +95,7 @@ metadata:
|
|
131
95
|
allowed_push_host: https://rubygems.org
|
132
96
|
homepage_uri: https://github.com/yetrun/web-frame
|
133
97
|
source_code_uri: https://github.com/yetrun/web-frame.git
|
134
|
-
post_install_message:
|
98
|
+
post_install_message:
|
135
99
|
rdoc_options: []
|
136
100
|
require_paths:
|
137
101
|
- lib
|
@@ -146,8 +110,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
110
|
- !ruby/object:Gem::Version
|
147
111
|
version: '0'
|
148
112
|
requirements: []
|
149
|
-
rubygems_version: 3.
|
150
|
-
signing_key:
|
113
|
+
rubygems_version: 3.3.26
|
114
|
+
signing_key:
|
151
115
|
specification_version: 4
|
152
116
|
summary: 一个 Web API 框架
|
153
117
|
test_files: []
|
data/.autoenv.zsh
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
alias rspec="bundle exec rspec"
|
data/.gitignore
DELETED
data/.rubocop.yml
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
# https://docs.rubocop.org/rubocop/1.24/cops_style.html
|
2
|
-
|
3
|
-
AllCops:
|
4
|
-
NewCops: enable
|
5
|
-
|
6
|
-
Style/BlockDelimiters:
|
7
|
-
Enabled: false
|
8
|
-
Style/Documentation:
|
9
|
-
Enabled: false
|
10
|
-
Style/GuardClause:
|
11
|
-
Enabled: false
|
12
|
-
Style/RaiseArgs:
|
13
|
-
Enabled: false
|
14
|
-
|
15
|
-
Metrics/MethodLength:
|
16
|
-
Max: 20
|
17
|
-
Metrics/BlockLength:
|
18
|
-
IgnoredMethods: ['describe', 'context']
|
19
|
-
Metrics/AbcSize:
|
20
|
-
CountRepeatedAttributes: false
|
21
|
-
Max: 30
|
22
|
-
Metrics/PerceivedComplexity:
|
23
|
-
Max: 10
|
24
|
-
Metrics/CyclomaticComplexity:
|
25
|
-
Max: 10
|
26
|
-
|
27
|
-
Layout/MultilineMethodCallIndentation:
|
28
|
-
EnforcedStyle: indented_relative_to_receiver
|
data/Gemfile
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
source 'https://gems.ruby-china.com/'
|
2
|
-
|
3
|
-
# Specify your gem's dependencies in xxx.gemspec
|
4
|
-
gemspec
|
5
|
-
|
6
|
-
gem "rake", "~> 12.0"
|
7
|
-
gem 'i18n'
|
8
|
-
gem 'hash_to_struct'
|
9
|
-
|
10
|
-
group :test do
|
11
|
-
gem 'rspec'
|
12
|
-
gem 'rack-test'
|
13
|
-
gem 'grape-entity'
|
14
|
-
end
|
15
|
-
|
16
|
-
group :test, :development do
|
17
|
-
gem 'rack'
|
18
|
-
gem 'pry-byebug'
|
19
|
-
end
|