Module: ClientDataAdapter::InstanceMethods

Defined in:
lib/client-data-adapter/instance_methods.rb

Instance Method Summary collapse

Instance Method Details

#adapter(*args) ⇒ Object

Main adapter method.

Examples:

@book.adapter(:method1, method2: 'payload', method3: [:foo, :bar])

Parameters:

  • args (Symbol|String|Hash)


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/client-data-adapter/instance_methods.rb', line 11

def adapter(*args)

  length = args.length

  if length == 0
    adapter_wrapper.__adapter__
  else
    Util.merge(
      adapter_wrapper.__adapter__,
      *args.map do |arg|
        if [String, Symbol].include?(arg.class)
          __merge_to_adapter__(arg.to_sym, nil)
        elsif arg.is_a?(Hash)
          arg.map { |k, v| __merge_to_adapter__(k, v) }
        else
          raise '[ERROR] Not available arguments type.'
        end
      end.flatten,
    )
  end
end