Sha256: 230915bb7826419218aa775a68aa1c5419b6ad2b0005c8f7d4584ec7002ce5f0

Contents?: true

Size: 916 Bytes

Versions: 4

Compression:

Stored size: 916 Bytes

Contents

module DocuSign
  class Notification < DocuSignModel
    ATTRIBUTES = [:use_account_defaults, :reminders, :expirations]
    ATTRIBUTES.each do |attr|
      self.send(:attr_accessor, attr)
    end

    def initialize(attributes = {})
      ATTRIBUTES.each do |attr|
        self.send("#{attr}=", attributes[attr])
      end
    end

    def to_savon
      { "UseAccountDefaults" => self.use_account_defaults?,
        "Reminders" => (self.reminders.is_a?(Hash) ? {"ReminderEnabled" => self.reminders[:reminder_enabled], "ReminderDelay" => self.reminders[:reminder_delay], "ReminderFrequency" => self.reminders[:reminder_frequency]} : nil),
        "Expirations" => (self.expirations.is_a?(Hash) ? {"ExpireEnabled" => self.expirations[:expire_enabled], "ExpireAfter" => self.expirations[:expire_after], "ExpireWarn" => self.expirations[:expire_warn]} : nil)
      }.delete_if{|key, value| value.nil?}
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
docu_sign-0.0.6 lib/docu_sign/notification.rb
docu_sign-0.0.5 lib/docu_sign/notification.rb
docu_sign-0.0.4 lib/docu_sign/notification.rb
docu_sign-0.0.3 lib/docu_sign/notification.rb