Module: Jumbotron::Deserializers::Clients::Espn::Support

Defined in:
app/deserializers/jumbotron/deserializers/clients/espn/support.rb

Class Method Summary collapse

Class Method Details

.coerce_id(raw) ⇒ Object



52
53
54
55
56
# File 'app/deserializers/jumbotron/deserializers/clients/espn/support.rb', line 52

def coerce_id(raw)
  return raw if raw.equal?(missing) || raw.nil? || raw.is_a?(String)

  raw.to_s
end

.ensure_hash!(value, label:) ⇒ Object

Raises:

  • (CommandTower::Clients::Errors::DeserializationError)


22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/deserializers/jumbotron/deserializers/clients/espn/support.rb', line 22

def ensure_hash!(value, label:)
  return if value.is_a?(Hash)

  raise CommandTower::Clients::Errors::DeserializationError.new(
    message: "#{label} payload must be a Hash",
    details: {
      path: "",
      expected: "Hash",
      actual: value.class.name,
      rule: "type",
      messages: ["#{label} payload must be a Hash"]
    }
  )
end

.missingObject



18
19
20
# File 'app/deserializers/jumbotron/deserializers/clients/espn/support.rb', line 18

def missing
  CommandTower::Deserializers::Clients::Missing
end

.nest(key, raw) ⇒ Object



37
38
39
40
41
42
43
# File 'app/deserializers/jumbotron/deserializers/clients/espn/support.rb', line 37

def nest(key, raw)
  return raw if raw.equal?(missing) || raw.nil?

  yield raw
rescue CommandTower::Clients::Errors::DeserializationError => e
  raise CommandTower::Deserializers::Clients::Errors.prefix(e, key)
end

.payloadObject



14
15
16
# File 'app/deserializers/jumbotron/deserializers/clients/espn/support.rb', line 14

def payload
  CommandTower::Deserializers::Clients::Payload
end

.typesObject



10
11
12
# File 'app/deserializers/jumbotron/deserializers/clients/espn/support.rb', line 10

def types
  CommandTower::Deserializers::Clients::Types
end

.whole_number(raw) ⇒ Object



45
46
47
48
49
50
# File 'app/deserializers/jumbotron/deserializers/clients/espn/support.rb', line 45

def whole_number(raw)
  return raw if raw.equal?(missing) || raw.nil?
  return raw.to_i if raw.is_a?(Float) && raw == raw.to_i

  raw
end