Class: LcpRuby::Types::TypeRegistry
- Inherits:
-
Object
- Object
- LcpRuby::Types::TypeRegistry
- Defined in:
- lib/lcp_ruby/types/type_registry.rb
Class Method Summary collapse
- .clear! ⇒ Object
-
.default_index_visible?(name) ⇒ Boolean
Returns whether the type appears in default index columns.
-
.null_false_validation_for(name) ⇒ Object
Returns the array of validation rules to emit/apply when a field of this type has ‘null: false`.
- .register(name, type_definition) ⇒ Object
- .registered?(name) ⇒ Boolean
-
.renderer_for(name) ⇒ Object
Returns the type’s default renderer key (existing TypeDefinition#renderer field), walking the base_type chain so custom types inherit base-type defaults unless explicitly overridden.
-
.reserved_clashes_for(name) ⇒ Object
Returns method names that this type generates from a field’s name.
- .resolve(name) ⇒ Object
Class Method Details
.clear! ⇒ Object
17 18 19 |
# File 'lib/lcp_ruby/types/type_registry.rb', line 17 def clear! @registry = {} end |
.default_index_visible?(name) ⇒ Boolean
Returns whether the type appears in default index columns. Default true; only ‘false` opts out (per Decision 11 walk semantics).
31 32 33 34 |
# File 'lib/lcp_ruby/types/type_registry.rb', line 31 def default_index_visible?(name) val = walk(name, &:default_index_visible) val.nil? ? true : val end |
.null_false_validation_for(name) ⇒ Object
Returns the array of validation rules to emit/apply when a field of this type has ‘null: false`. Empty array `[]` (explicit “no implicit validation”) is preserved through the `||` because `[]` is truthy in Ruby — fallthrough triggers only on nil.
40 41 42 |
# File 'lib/lcp_ruby/types/type_registry.rb', line 40 def null_false_validation_for(name) walk(name, &:null_false_validation) || [ { "type" => "presence" } ] end |
.register(name, type_definition) ⇒ Object
5 6 7 |
# File 'lib/lcp_ruby/types/type_registry.rb', line 5 def register(name, type_definition) registry[name.to_s] = type_definition end |
.registered?(name) ⇒ Boolean
13 14 15 |
# File 'lib/lcp_ruby/types/type_registry.rb', line 13 def registered?(name) registry.key?(name.to_s) end |
.renderer_for(name) ⇒ Object
Returns the type’s default renderer key (existing TypeDefinition#renderer field), walking the base_type chain so custom types inherit base-type defaults unless explicitly overridden. Returns nil if no value is set anywhere along the chain.
25 26 27 |
# File 'lib/lcp_ruby/types/type_registry.rb', line 25 def renderer_for(name) walk(name, &:renderer) end |
.reserved_clashes_for(name) ⇒ Object
Returns method names that this type generates from a field’s name. Validator + generator preflight reject field names whose generated method shadows existing AR/Relation methods.
47 48 49 |
# File 'lib/lcp_ruby/types/type_registry.rb', line 47 def reserved_clashes_for(name) walk(name, &:reserved_clashes) || [] end |
.resolve(name) ⇒ Object
9 10 11 |
# File 'lib/lcp_ruby/types/type_registry.rb', line 9 def resolve(name) registry[name.to_s] end |