Class: Alchemrest::Request::Returns

Inherits:
Module
  • Object
show all
Defined in:
lib/alchemrest/request/returns.rb

Instance Method Summary collapse

Instance Method Details

#included(request_class) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/alchemrest/request/returns.rb', line 8

def included(request_class)
  transformer_methods = Module.new
  returns = self

  transformer_methods.define_method(:response_transformer) do
    super()
      .append(Response::Pipeline::ExtractPayload.new(returns.path_to_payload, returns.allow_empty_response))
      .append(returns.domain_type::TRANSFORM)
  end

  transformer_methods.define_method(:capture_transformer) do
    super()
      .replace_with(Response::Pipeline::Sanitize, returns.sanitize_step)
      .append(returns.omit_step)
  end

  request_class.include(transformer_methods)
end

#omit_stepObject



33
34
35
36
37
# File 'lib/alchemrest/request/returns.rb', line 33

def omit_step
  Response::Pipeline::Omit.new(
    HashPath.build_collection(capture_configuration.omitted_paths),
  )
end

#sanitize_stepObject



27
28
29
30
31
# File 'lib/alchemrest/request/returns.rb', line 27

def sanitize_step
  Response::Pipeline::Sanitize.new(
    safe: HashPath.build_collection(capture_configuration.safe_paths),
  )
end