Class: Ruact::Flight::Serializer

Inherits:
Object
  • Object
show all
Defined in:
lib/ruact/flight/serializer.rb

Overview

Converts a Ruby value/element tree into Flight wire format rows. All methods return the inline representation of the value (what goes inside a parent row). Side effects go into request queues.

Constant Summary collapse

LARGE_TEXT_THRESHOLD =

Strings larger than this are outlined into their own T row.

1024

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ Serializer

Returns a new instance of Serializer.



15
16
17
# File 'lib/ruact/flight/serializer.rb', line 15

def initialize(request)
  @request = request
end

Instance Method Details

#serialize_model(value) ⇒ Object

Entry point. Returns a value safe to pass to JSON.generate.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/ruact/flight/serializer.rb', line 20

def serialize_model(value)
  case value
  when NilClass
    nil
  when TrueClass, FalseClass
    value
  when Integer
    serialize_integer(value)
  when Float
    serialize_float(value)
  when String
    serialize_string(value)
  when Symbol
    serialize_symbol(value)
  when Time, DateTime
    serialize_date(value)
  when ClientReference
    serialize_client_reference(value)
  when SuspenseElement
    serialize_suspense(value)
  when ReactElement
    serialize_element(value)
  when Array
    serialize_array(value)
  when Hash
    serialize_hash(value)
  else
    serialize_unknown(value)
  end
end