class ExpertSenderApi::Subscriber::Tag

Constants

MODE_ADD_AND_IGNORE
MODE_ADD_AND_REPLACE
MODE_ADD_AND_UPDATE
MODE_IGNORE_AND_REPLACE
MODE_IGNORE_AND_UPDATE

Attributes

force[RW]
list_id[RW]
mode[RW]
email[RW]
firstname[RW]
force[RW]
id[RW]
ip[RW]
lastname[RW]
list_id[RW]
mode[RW]
name[RW]
properties[RW]
tracking_code[RW]
vendor[RW]

Public Class Methods

new(mode: MODE_ADD_AND_UPDATE, **parameters) click to toggle source
# File lib/expertsender_api/subscriber/tag.rb, line 18
def initialize(mode: MODE_ADD_AND_UPDATE, **parameters)
  @mode = mode || self.class.mode
  @force = parameters[:force] || self.class.force
  @list_id = parameters[:list_id] || self.class.list_id
  @properties = parameters.delete(:properties) || []

  parameters.each { |key, value| send("#{key}=", value) }
end

Public Instance Methods

insert_to(xml) click to toggle source
# File lib/expertsender_api/subscriber/tag.rb, line 27
def insert_to(xml)
  xml.Subscriber {
    attributes.each do |attr|
      xml.send(attr[:name], attr[:value]) unless attr[:value].nil?
    end
    if properties.any?
      xml.Properties {
        properties.each { |property| property.insert_to(xml) }
      }
    end
  }
end

Private Instance Methods

variables_to_serialize() click to toggle source
# File lib/expertsender_api/subscriber/tag.rb, line 42
def variables_to_serialize
  instance_variables.select { |var| var != :@properties }
end