Module: Meta::JsonSchema::ObjectSchemaBuilder::Locked::LockedMethodAlias
- Defined in:
- lib/meta/json_schema/builders/object_schema_builder.rb
Overview
定义一些 locked 的别名方法
Instance Method Summary collapse
-
#add_scope(scope) ⇒ Object
我在这里说明一下 lock_scope 的逻辑。 1.
- #lock(key, value) ⇒ Object
- #method_missing(method, *args) ⇒ Object
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/meta/json_schema/builders/object_schema_builder.rb', line 26 def method_missing(method, *args) if method =~ /^lock_(\w+)$/ key = Regexp.last_match(1) lock(key.to_sym, *args) else super end end |
Instance Method Details
#add_scope(scope) ⇒ Object
我在这里说明一下 lock_scope 的逻辑。
-
lock_scope 实际上是将 scope 传递到当前的 ObjectSchema 和它的子 Schema 中。
-
lock_scope 会叠加,也就是如果子 schema 也有 lock_scope,那么子 Schema 会将两个 Schema 合并起来。
-
调用 filter(scope:) 和 to_schema_doc(scope:) 时,可以传递 scope 参数,这个 scope 遇到 lock_scope 时会合并。
-
这也就是说,在路由级别定义的 scope 宏会传递到下面的 Schema 中去。
18 19 20 |
# File 'lib/meta/json_schema/builders/object_schema_builder.rb', line 18 def add_scope(scope) lock_scope(scope) end |
#lock(key, value) ⇒ Object
22 23 24 |
# File 'lib/meta/json_schema/builders/object_schema_builder.rb', line 22 def lock(key, value) locked(key => value) end |