Module: Apitizer::Helper

Defined in:
lib/apitizer/helper.rb

Constant Summary collapse

Error =
Class.new(Apitizer::Error)

Class Method Summary collapse

Class Method Details

.action_scope(action) ⇒ Object



17
18
19
# File 'lib/apitizer/helper.rb', line 17

def self.action_scope(action)
  member_action?(action) ? :member : :collection
end

.build_query(parameters) ⇒ Object



32
33
34
35
# File 'lib/apitizer/helper.rb', line 32

def self.build_query(parameters)
  query = Rack::Utils.build_nested_query(prepare_parameters(parameters))
  query.encode!('UTF-8')
end

.deep_merge(one, two) ⇒ Object



21
22
23
24
25
26
# File 'lib/apitizer/helper.rb', line 21

def self.deep_merge(one, two)
  merger = Proc.new do |key, v1, v2|
    Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2
  end
  one.merge(two, &merger)
end

.extract_hash!(arguments) ⇒ Object



28
29
30
# File 'lib/apitizer/helper.rb', line 28

def self.extract_hash!(arguments)
  arguments.last.is_a?(Hash) ? arguments.pop : {}
end

.member_action?(action) ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
10
11
12
13
14
15
# File 'lib/apitizer/helper.rb', line 7

def self.member_action?(action)
  if Apitizer.member_actions.include?(action)
    true
  elsif Apitizer.collection_actions.include?(action)
    false
  else
    raise Error, 'Unknown action'
  end
end