Method: Mblox::SmsReceipt#initialize

Defined in:
lib/mblox/sms_receipt.rb

#initialize(args) ⇒ SmsReceipt

Returns a new instance of SmsReceipt.

Raises:

  • (::ArgumentError)


9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/mblox/sms_receipt.rb', line 9

def initialize args
  args = args.symbolize_keys
  ATTRIBUTES.each do |attr|
    __send__("#{attr}=", args[attr])
    args.delete(attr)
  end
  raise ::ArgumentError, "Unrecognized attributes: #{args.inspect}" unless args.empty?
  missing_fields = ATTRIBUTES.reject { |attr| [:timestamp, :reason, :operator].include?(attr) || __send__(attr) }
  if 1 == missing_fields.count
    raise ValidationError, "#{missing_fields.first} cannot be blank"
  elsif missing_fields.count > 1
    raise ValidationError, "The following fields cannot be blank: #{missing_fields.join(', ')}"
  end
  raise ValidationError, "batch_id must be a Fixnum" unless batch_id.is_a?(Fixnum)
  raise ValidationError, "reason must be a Fixnum" unless reason.nil? || reason.is_a?(Fixnum)
  raise ValidationError, "timestamp must be a DateTime" unless timestamp.nil? || timestamp.is_a?(DateTime)
end