class MxHero::API::Directory

Attributes

address[RW]
base[RW]
dn_authenticate[RW]
domain[RW]
error[RW]
filter[RW]
last_update[RW]
next_update[RW]
override[RW]
password[RW]
port[RW]
properties[RW]
ssl[RW]
type[RW]
useMailAsMain[RW]
user[RW]

Public Class Methods

new(data = {}) click to toggle source
# File lib/directories.rb, line 9
def initialize(data = {})
  return if data.empty?
  [
    :domain, [:type, :directoryType], [:address, :addres], :port,
    [:ssl, :sslFlag], :user, :password, :filter, :base,
    [:next_update, :nextUpdate],
    [:last_update, :lastUpdate],
    :error, [:override, :overrideFlag],
    [:dn_authenticate, :dnAuthenticate],
    :useMailAsMain
  ].each do |property|
    case property
    when Symbol
      send "#{property}=", data[property]
    when Array
      send "#{property.first}=", data[property.first] || data[property.last]
    end
  end
  load_properties(data)
end

Public Instance Methods

last_update=(date) click to toggle source
# File lib/directories.rb, line 31
def last_update=(date)
  parse_update_dates(:last_update, date)
end
next_update=(date) click to toggle source
# File lib/directories.rb, line 35
def next_update=(date)
  parse_update_dates(:next_update, date)
end
to_hash() click to toggle source
# File lib/directories.rb, line 43
def to_hash
  {
    domain: domain,
    directoryType: type,
    addres: address,
    port: port,
    sslFlag: ssl, # || false,
    user: user, password: password,
    filter: filter, base: base,
    nextUpdate: next_update, # || DateTime.now.strftime('%Q'),
    lastUpdate: last_update, # || DateTime.now.strftime('%Q'),
    error: error,
    overrideFlag: override,  #override.nil? ? true : override,
    dnAuthenticate: dn_authenticate,
    useMailAsMain: useMailAsMain,
    properties: properties_field_to_hash
  }
end
to_json() click to toggle source
# File lib/directories.rb, line 62
def to_json
  to_hash.to_json
end
update_properties(properties) click to toggle source
# File lib/directories.rb, line 39
def update_properties(properties)
  properties.each { |prop, value| send("#{prop}=", value) if respond_to?("#{prop}=") }
end

Private Instance Methods

load_properties(data) click to toggle source
# File lib/directories.rb, line 68
def load_properties(data)
  @properties ||= {}
  props = data[:properties]
  case props
  when Array then (props || []).each { |property| @properties[property[:name].to_sym] = property[:key] }
  when Hash  then @properties = props
  end
end
parse_update_dates(property, date) click to toggle source
# File lib/directories.rb, line 85
def parse_update_dates(property, date)
  if date.is_a? Integer or date.is_a? String
    instance_variable_set "@#{property}", DateTime.strptime(date.to_s, '%Q')
  else
    instance_variable_set "@#{property}", date
  end
end
properties_field_to_hash() click to toggle source
# File lib/directories.rb, line 77
def properties_field_to_hash
  values = []
  (properties || []).each do |name, value|
    values << { name: name, key: value }
  end
  values
end