Module: FatZebra::APIHelper::ClassMethods

Defined in:
lib/fat_zebra/api_helper.rb

Instance Method Summary collapse

Instance Method Details

#build_endpoint_url(base_url, path, params = nil, options = {}) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/fat_zebra/api_helper.rb', line 34

def build_endpoint_url(base_url, path, params = nil, options = {})
  host, port = base_url.split(':')
  port       = port.to_i if port

  url_params = Util.compact(
    host:  host,
    path:  path,
    port:  port,
    query: params
  )

  return URI::HTTPS.build(url_params) if options[:http_secure]
  URI::HTTP.build(url_params)
end

#class_nameString

Returns the class name.

Returns:

  • (String)

    the class name



24
25
26
# File 'lib/fat_zebra/api_helper.rb', line 24

def class_name
  name.split('::').last
end

#default_headersObject



49
50
51
52
53
54
55
56
# File 'lib/fat_zebra/api_helper.rb', line 49

def default_headers
  {
    headers: {
      accept:       'application/json',
      content_type: 'application/json'
    }
  }
end

#requestObject

Send a request to the API

Raises:

  • (NotImplementedError)


30
31
32
# File 'lib/fat_zebra/api_helper.rb', line 30

def request
  raise NotImplementedError
end

#resource_nameString

Returns resource name.

Returns:

  • (String)

    resource name



18
19
20
# File 'lib/fat_zebra/api_helper.rb', line 18

def resource_name
  Util.underscore("#{class_name}s")
end

#resource_path(path = nil) ⇒ String

Returns resource path.

Returns:

  • (String)

    resource path



12
13
14
# File 'lib/fat_zebra/api_helper.rb', line 12

def resource_path(path = nil)
  (path || @resource_name || CGI.escape(resource_name)).to_s
end