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.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/lib/meta/application/execution.rb +19 -49
  4. data/lib/meta/application/metadata.rb +68 -15
  5. data/lib/meta/application/responses.rb +32 -0
  6. data/lib/meta/application/route.rb +4 -26
  7. data/lib/meta/config.rb +2 -3
  8. data/lib/meta/entity.rb +2 -3
  9. data/lib/meta/json_schema/builders/object_schema_builder.rb +45 -40
  10. data/lib/meta/json_schema/builders/schema_builder_tool.rb +2 -5
  11. data/lib/meta/json_schema/schemas/array_schema.rb +24 -14
  12. data/lib/meta/json_schema/schemas/base_schema.rb +107 -37
  13. data/lib/meta/json_schema/schemas/named_properties.rb +37 -0
  14. data/lib/meta/json_schema/schemas/object_schema.rb +58 -20
  15. data/lib/meta/json_schema/schemas/properties.rb +27 -76
  16. data/lib/meta/json_schema/schemas/ref_schema.rb +36 -9
  17. data/lib/meta/json_schema/schemas/scoping_schema.rb +38 -0
  18. data/lib/meta/json_schema/schemas/staging_schema.rb +59 -0
  19. data/lib/meta/json_schema/schemas/unsupported_schema.rb +22 -0
  20. data/lib/meta/json_schema/support/errors.rb +3 -0
  21. data/lib/meta/json_schema/support/json_object.rb +37 -0
  22. data/lib/meta/json_schema/support/schema_options.rb +0 -9
  23. data/lib/meta/json_schema/support/scope_matcher.rb +29 -0
  24. data/lib/meta/json_schema/support/type_converter.rb +3 -24
  25. data/lib/meta/route_dsl/meta_builder.rb +2 -2
  26. data/lib/meta/swagger_doc.rb +2 -25
  27. data/lib/meta/utils/kwargs/builder.rb +5 -3
  28. data/lib/meta/utils/route_dsl_builders.rb +2 -1
  29. data/meta-api.gemspec +6 -5
  30. metadata +75 -111
  31. data/.autoenv.zsh +0 -1
  32. data/.gitignore +0 -7
  33. data/.rubocop.yml +0 -28
  34. data/Gemfile +0 -19
  35. data/Gemfile.lock +0 -68
  36. data/README.md +0 -166
  37. data/Rakefile +0 -3
  38. data/docs/Rails.md +0 -61
  39. data/docs//345/220/215/347/247/260/347/224/261/346/235/245.md +0 -7
  40. data/docs//345/246/202/344/275/225/350/264/241/347/214/256.md +0 -10
  41. data/docs//346/225/231/347/250/213.md +0 -1708
  42. data/docs//347/264/242/345/274/225.md +0 -183
  43. data/examples/lobster.rb +0 -71
  44. data/examples/rack_app/README.md +0 -3
  45. data/examples/rack_app/config.ru +0 -6
  46. data/examples/rack_app/hello.rb +0 -6
  47. data/examples/rack_app/timing.rb +0 -15
  48. data/examples/rails_app/.gitattributes +0 -5
  49. data/examples/rails_app/.gitignore +0 -23
  50. data/examples/rails_app/.rspec +0 -1
  51. data/examples/rails_app/.ruby-version +0 -1
  52. data/examples/rails_app/Gemfile +0 -29
  53. data/examples/rails_app/Gemfile.lock +0 -190
  54. data/examples/rails_app/README.md +0 -11
  55. data/examples/rails_app/Rakefile +0 -6
  56. data/examples/rails_app/app/controllers/application_controller.rb +0 -7
  57. data/examples/rails_app/app/controllers/concerns/.keep +0 -0
  58. data/examples/rails_app/app/controllers/data_controller.rb +0 -63
  59. data/examples/rails_app/app/controllers/swagger_controller.rb +0 -13
  60. data/examples/rails_app/app/models/concerns/.keep +0 -0
  61. data/examples/rails_app/bin/rails +0 -4
  62. data/examples/rails_app/bin/rake +0 -4
  63. data/examples/rails_app/bin/setup +0 -25
  64. data/examples/rails_app/config/application.rb +0 -39
  65. data/examples/rails_app/config/boot.rb +0 -3
  66. data/examples/rails_app/config/credentials.yml.enc +0 -1
  67. data/examples/rails_app/config/environment.rb +0 -5
  68. data/examples/rails_app/config/environments/development.rb +0 -51
  69. data/examples/rails_app/config/environments/production.rb +0 -65
  70. data/examples/rails_app/config/environments/test.rb +0 -50
  71. data/examples/rails_app/config/initializers/cors.rb +0 -16
  72. data/examples/rails_app/config/initializers/filter_parameter_logging.rb +0 -8
  73. data/examples/rails_app/config/initializers/inflections.rb +0 -16
  74. data/examples/rails_app/config/initializers/meta_rails_plugin.rb +0 -3
  75. data/examples/rails_app/config/locales/en.yml +0 -33
  76. data/examples/rails_app/config/puma.rb +0 -43
  77. data/examples/rails_app/config/routes.rb +0 -13
  78. data/examples/rails_app/config.ru +0 -6
  79. data/examples/rails_app/lib/tasks/.keep +0 -0
  80. data/examples/rails_app/log/.keep +0 -0
  81. data/examples/rails_app/public/robots.txt +0 -1
  82. data/examples/rails_app/spec/data_controller_spec.rb +0 -60
  83. data/examples/rails_app/spec/rails_helper.rb +0 -55
  84. data/examples/rails_app/spec/spec_helper.rb +0 -94
  85. data/examples/rails_app/spec/swagger_controller_spec.rb +0 -13
  86. data/examples/rails_app/tmp/.keep +0 -0
  87. 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
@@ -34,5 +34,8 @@ module Meta
34
34
  errors['']
35
35
  end
36
36
  end
37
+
38
+ class UnsupportedError < StandardError
39
+ end
37
40
  end
38
41
  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, ObjectWrapper]
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
- ObjectWrapper.new(value)
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
@@ -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
- return generate_from_paths_and_routes(paths_and_routes, info: info, servers: servers)
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.meta.generate_operation_doc(schemas)
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
- @normalizer = default ? ->(value) { normalizer.call(value || default) } : normalizer
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 true if consume_name(final_args, args, name)
68
+ return if consume_name(final_args, args, name)
68
69
  end
69
- return false
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].merge_other_properties(options2[:request_body].properties)
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.8"
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
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
20
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
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.8
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-07-17 00:00:00.000000000 Z
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
- - README.md
28
- - Rakefile
29
- - config/locales/zh-CN.yml
30
- - docs/Rails.md
31
- - docs/名称由来.md
32
- - docs/如何贡献.md
33
- - docs/教程.md
34
- - docs/索引.md
35
- - examples/lobster.rb
36
- - examples/rack_app/README.md
37
- - examples/rack_app/config.ru
38
- - examples/rack_app/hello.rb
39
- - examples/rack_app/timing.rb
40
- - examples/rails_app/.gitattributes
41
- - examples/rails_app/.gitignore
42
- - examples/rails_app/.rspec
43
- - examples/rails_app/.ruby-version
44
- - examples/rails_app/Gemfile
45
- - examples/rails_app/Gemfile.lock
46
- - examples/rails_app/README.md
47
- - examples/rails_app/Rakefile
48
- - examples/rails_app/app/controllers/application_controller.rb
49
- - examples/rails_app/app/controllers/concerns/.keep
50
- - examples/rails_app/app/controllers/data_controller.rb
51
- - examples/rails_app/app/controllers/swagger_controller.rb
52
- - examples/rails_app/app/models/concerns/.keep
53
- - examples/rails_app/bin/rails
54
- - examples/rails_app/bin/rake
55
- - examples/rails_app/bin/setup
56
- - examples/rails_app/config.ru
57
- - examples/rails_app/config/application.rb
58
- - examples/rails_app/config/boot.rb
59
- - examples/rails_app/config/credentials.yml.enc
60
- - examples/rails_app/config/environment.rb
61
- - examples/rails_app/config/environments/development.rb
62
- - examples/rails_app/config/environments/production.rb
63
- - examples/rails_app/config/environments/test.rb
64
- - examples/rails_app/config/initializers/cors.rb
65
- - examples/rails_app/config/initializers/filter_parameter_logging.rb
66
- - examples/rails_app/config/initializers/inflections.rb
67
- - examples/rails_app/config/initializers/meta_rails_plugin.rb
68
- - examples/rails_app/config/locales/en.yml
69
- - examples/rails_app/config/puma.rb
70
- - examples/rails_app/config/routes.rb
71
- - examples/rails_app/lib/tasks/.keep
72
- - examples/rails_app/log/.keep
73
- - examples/rails_app/public/robots.txt
74
- - examples/rails_app/spec/data_controller_spec.rb
75
- - examples/rails_app/spec/rails_helper.rb
76
- - examples/rails_app/spec/spec_helper.rb
77
- - examples/rails_app/spec/swagger_controller_spec.rb
78
- - examples/rails_app/tmp/.keep
79
- - examples/rails_app/tmp/pids/.keep
80
- - lib/meta/api.rb
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.4.15
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
@@ -1,7 +0,0 @@
1
- .DS_Store
2
- *.gem
3
- .idea
4
- .ruby-version
5
-
6
- .bundle
7
- vendor
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