Class: Pdm::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/pdm/resource.rb

Direct Known Subclasses

Job, Mail, Template

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Resource

Returns a new instance of Resource.



10
11
12
13
# File 'lib/pdm/resource.rb', line 10

def initialize(options = {})
  self.options = Pdm.default_options.merge(options)
  check_opts
end

Instance Attribute Details

#optionsObject

Returns the value of attribute options.



8
9
10
# File 'lib/pdm/resource.rb', line 8

def options
  @options
end

Instance Method Details

#api_requestObject



35
36
37
# File 'lib/pdm/resource.rb', line 35

def api_request
  Pdm::ApiRequest.new(options[:endpoint], options[:api_key])
end

#check_optsObject



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/pdm/resource.rb', line 21

def check_opts
  required_opt_proc = lambda do |value|
    !(value.nil? || value.empty?)
  end

  [
   [:endpoint, required_opt_proc],
   [:api_key, required_opt_proc],
  ].each do |key, proc|
    raise ArgumentError.new(":api_key is a required option") unless
      proc.call(options[key])
  end
end

#with_exceptionsObject



15
16
17
18
19
# File 'lib/pdm/resource.rb', line 15

def with_exceptions
  yield
rescue Timeout::Error, StandardError => e
  Error.extend_and_raise(e)
end