class JSON::SchemaDsl::Renderers::Alias
Aliases certain attributes and camel-cases all others. The only exception are property names which are set by the user and will not be camel-cased.
Constants
- ALIASES
Public Instance Methods
visit(entity)
click to toggle source
Camel-case and/or alias the attribute names of the given structure.
# File lib/json/schema_dsl/renderers/alias.rb, line 15 def visit(entity) traverse(entity .transform_keys { |key| ALIASES[key.to_s]&.to_sym || key } .transform_keys { |key| camelize_snake_cased(key) }) end
Private Instance Methods
camelize_snake_cased(key)
click to toggle source
# File lib/json/schema_dsl/renderers/alias.rb, line 23 def camelize_snake_cased(key) key = key.to_s (key.capitalize == key ? key : key.camelize(:lower)).to_sym end
traverse(entity)
click to toggle source
# File lib/json/schema_dsl/renderers/alias.rb, line 28 def traverse(entity) entity.map do |key, value| if key.to_s.match?(/properties$/i) && value.is_a?(Hash) [key, value.transform_values { |v| visit(v) }] else [key, step(value)] end end.to_h end