Class: LIT::RequestDeserializer

Inherits:
Object
  • Object
show all
Defined in:
lib/lit/request_deserializer.rb

Overview

Since:

  • 0.1.0

Constant Summary collapse

AST =

Since:

  • 0.1.0

Parser::AST

Instance Method Summary collapse

Constructor Details

#initialize(raw_request, type_root) ⇒ RequestDeserializer

Returns a new instance of RequestDeserializer.

Since:

  • 0.1.0



9
10
11
12
13
# File 'lib/lit/request_deserializer.rb', line 9

def initialize(raw_request, type_root)
  # { action, payload }
  @raw_request = raw_request
  @type_root = type_root
end

Instance Method Details

#deserialize_requestObject

Since:

  • 0.1.0



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/lit/request_deserializer.rb', line 15

def deserialize_request
  action_namespace = @raw_request.fetch("action").split(".").map { |x| Utils.camelize(x) }
  action_type = action_namespace.reduce(@type_root) do |object, namespace|
    object.const_get(namespace)
  end

  request_type = action_type.const_get("Request")
  @type_module = action_type.const_get("DefinedIn")

  deserialize(request_type, @raw_request.fetch("payload"))
end