Class: Bark::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/bark/request.rb

Direct Known Subclasses

GraphOfLife, Studies, Taxonomy, Tnrs, TreeOfLife

Defined Under Namespace

Classes: GraphOfLife, Studies, Taxonomy, Tnrs, TreeOfLife

Constant Summary collapse

BASE_URL =
'http://devapi.opentreeoflife.org'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Request

TODO: super this



12
13
14
15
16
17
18
19
20
21
# File 'lib/bark/request.rb', line 12

def initialize(options = {})
  opts = {
    format: 'foo', # Bark::Request::FORMAT,
    method: :getSyntheticTree,
    params: { }
  }.merge!(options)

  assign_options(opts)
  build_uri if valid?
end

Instance Attribute Details

#methodObject

Returns the value of attribute method.



7
8
9
# File 'lib/bark/request.rb', line 7

def method
  @method
end

#paramsObject

Returns the value of attribute params.



7
8
9
# File 'lib/bark/request.rb', line 7

def params
  @params
end

#payloadObject

Returns the value of attribute payload.



8
9
10
# File 'lib/bark/request.rb', line 8

def payload
  @payload
end

#uriObject (readonly)

stub for uri



61
62
63
# File 'lib/bark/request.rb', line 61

def uri
  @uri
end

Instance Method Details

#assign_options(opts) ⇒ Object



23
24
25
26
27
28
# File 'lib/bark/request.rb', line 23

def assign_options(opts)
  @method = opts[:method]
  @format = opts[:format]
  @params = opts[:params]

end

#has_required_params?Boolean

Returns:

  • (Boolean)


50
51
52
53
54
# File 'lib/bark/request.rb', line 50

def has_required_params?
  return false if @method.nil?
  return true if self.class::METHODS_REQUIRED_PARAMS[@method].nil?
  self.class::METHODS_REQUIRED_PARAMS[@method].select{|v| !@params.keys.include?(v)} == []
end

#json_payloadObject



66
67
# File 'lib/bark/request.rb', line 66

def json_payload
end

#params_are_supported?Boolean

Returns:

  • (Boolean)


44
45
46
47
48
# File 'lib/bark/request.rb', line 44

def params_are_supported? 
  return false if @method.nil?
  return true if self.class::METHODS[@method] == []
  @params.keys.map(&:to_sym) - self.class::METHODS[@method] == []
end

#responseObject



35
36
37
38
39
40
41
42
# File 'lib/bark/request.rb', line 35

def response
  build_uri
  if valid?
    Response.new(request: self)
  else
    false # raise?
  end
end

#valid?Boolean

Stub for subclasses

Returns:

  • (Boolean)


57
58
# File 'lib/bark/request.rb', line 57

def valid?
end