Method: Mblox::SmsReceipt#initialize
- Defined in:
- lib/mblox/sms_receipt.rb
#initialize(args) ⇒ SmsReceipt
Returns a new instance of SmsReceipt.
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 .nil? || .is_a?(DateTime) end |