Class: W3cApi::Models::Base

Inherits:
Lutaml::Model::Serializable
  • Object
show all
Defined in:
lib/w3c_api/models/base.rb

Class Method Summary collapse

Class Method Details

.from_response(data) ⇒ Object

Create a model instance from a JSON hash



13
14
15
16
17
18
19
# File 'lib/w3c_api/models/base.rb', line 13

def self.from_response(data)
  # Convert keys with hyphens to snake_case for Ruby
  transformed_data = transform_keys(data)

  # Create model instance
  new(transformed_data)
end

.transform_keys(data) ⇒ Object

Utility function to transform kebab-case to snake_case



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/w3c_api/models/base.rb', line 22

def self.transform_keys(data)
  case data
  when Hash
    result = {}
    data.each do |key, value|
      snake_key = key.to_s.tr('-', '_').to_sym
      result[snake_key] = transform_keys(value)
    end
    result
  when Array
    data.map { |item| transform_keys(item) }
  else
    data
  end
end