Class: Pdf4me::ComplexAction

Inherits:
Object
  • Object
show all
Defined in:
lib/pdf4me/actions/complex_action.rb

Direct Known Subclasses

ConvertToPdf, Optimize

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}) ⇒ ComplexAction

Returns a new instance of ComplexAction.



16
17
18
# File 'lib/pdf4me/actions/complex_action.rb', line 16

def initialize(attributes = {})
  assign_attributes(attributes)
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



3
4
5
# File 'lib/pdf4me/actions/complex_action.rb', line 3

def client
  @client
end

Instance Method Details

#assign_attributes(attributes = {}) ⇒ Object



9
10
11
12
13
14
# File 'lib/pdf4me/actions/complex_action.rb', line 9

def assign_attributes(attributes = {})
  attributes.to_h.each do |key, value|
    writer_method = "#{key}="
    send(writer_method, value) if respond_to?(writer_method)
  end
end

#errorsObject



33
34
35
36
37
38
# File 'lib/pdf4me/actions/complex_action.rb', line 33

def errors
  errors = attributes.map do |attribute|
    send(attribute).errors.full_messages
  end
  errors.flatten
end

#runObject



20
21
22
23
24
25
26
27
# File 'lib/pdf4me/actions/complex_action.rb', line 20

def run
  return unless valid?
  response = client.post(
    path,
    serialize_attributes.to_json
  )
  Pdf4me.const_get("#{self.class.name}Res").from_response(response)
end

#valid?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/pdf4me/actions/complex_action.rb', line 29

def valid?
  valid_objects? && valid_instances?
end