Class: Zm::Client::Base::ZimbraAttributesCollection

Inherits:
Object
  • Object
show all
Includes:
MissingMethodStaticCollection
Defined in:
lib/zm/client/base/zimbra_attributes_collection.rb

Instance Attribute Summary collapse

Attributes included from MissingMethodStaticCollection

#all

Instance Method Summary collapse

Methods included from MissingMethodStaticCollection

#method_missing

Constructor Details

#initialize(parent) ⇒ ZimbraAttributesCollection

Returns a new instance of ZimbraAttributesCollection.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 14

def initialize(parent)
  @parent = parent

  @all = CSV.open(
    File.expand_path(@parent.config.zimbra_attributes_path),
    headers: true,
    skip_blanks: true,
    strip: true,
    header_converters: lambda { |header| header.to_sym }
  ).map do |attr|
    attr_h = attr.to_h
    attr_h.compact!
    ZimbraAttribute.new(**attr_h)
  end.freeze
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class MissingMethodStaticCollection

Instance Attribute Details

#all_versionedObject (readonly)

Returns the value of attribute all_versioned.



12
13
14
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 12

def all_versioned
  @all_versioned
end

Instance Method Details

#all_account_attr_types_hObject



127
128
129
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 127

def 
   ||= .map { |attr| [attr.name, attr.type] }.to_h.freeze
end

#all_account_attrsObject

############################### Account ###############################



115
116
117
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 115

def 
   ||= @all.select { |attr| attr. || attr.is_mailRecipient_scoped? }.freeze
end

#all_account_attrs_writableObject



119
120
121
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 119

def 
   ||= .reject(&:immutable?).freeze
end

#all_account_attrs_writable_namesObject



123
124
125
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 123

def 
   ||= .map(&:name).freeze
end

#all_cos_attr_types_hObject



55
56
57
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 55

def all_cos_attr_types_h
  @all_cos_attr_types_h ||= all_cos_attrs.map { |attr| [attr.name, attr.type] }.to_h.freeze
end

#all_cos_attrsObject

############################### Cos ###############################



43
44
45
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 43

def all_cos_attrs
  @all_cos_attrs ||= @all.select(&:is_cos_scoped?).freeze
end

#all_cos_attrs_writableObject



47
48
49
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 47

def all_cos_attrs_writable
  @all_cos_attrs_writable ||= all_cos_attrs.reject(&:immutable?).freeze
end

#all_cos_attrs_writable_namesObject



51
52
53
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 51

def all_cos_attrs_writable_names
  @all_cos_attrs_writable_names ||= all_cos_attrs_writable.map(&:name).freeze
end

#all_distributionlist_attrsObject

############################### Distribution List ###############################



139
140
141
142
143
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 139

def all_distributionlist_attrs
  @all_distributionlist_attrs ||= @all.select do |attr|
    attr.is_distributionList_scoped? || attr.is_group_scoped? || attr.is_groupDynamicUnit_scoped? || attr.is_groupStaticUnit_scoped?
  end.freeze
end

#all_distributionlist_attrs_types_hObject



153
154
155
156
157
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 153

def all_distributionlist_attrs_types_h
  @all_distributionlist_attrs_types_h ||= all_distributionlist_attrs.map do |attr|
                                                 [attr.name, attr.type]
                                               end.to_h.freeze
end

#all_distributionlist_attrs_writableObject



145
146
147
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 145

def all_distributionlist_attrs_writable
  @all_distributionlist_attrs_writable ||= all_distributionlist_attrs.reject(&:immutable?).freeze
end

#all_distributionlist_attrs_writable_namesObject



149
150
151
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 149

def all_distributionlist_attrs_writable_names
  @all_distributionlist_attrs_writable_names ||= all_distributionlist_attrs_writable.map(&:name).freeze
end

#all_domain_attr_types_hObject



103
104
105
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 103

def all_domain_attr_types_h
  @all_domain_attr_types_h ||= all_domain_attrs.map { |attr| [attr.name, attr.type] }.to_h.freeze
end

#all_domain_attrsObject

############################### Domain ###############################



91
92
93
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 91

def all_domain_attrs
  @all_domain_attrs ||= @all.select(&:is_domain_scoped?).freeze
end

#all_domain_attrs_writableObject



95
96
97
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 95

def all_domain_attrs_writable
  @all_domain_attrs_writable ||= all_domain_attrs.reject(&:immutable?).freeze
end

#all_domain_attrs_writable_namesObject



99
100
101
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 99

def all_domain_attrs_writable_names
  @all_domain_attrs_writable_names ||= all_domain_attrs_writable.map(&:name).freeze
end

#all_resource_attrsObject

############################### Calendar Resource ###############################



167
168
169
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 167

def all_resource_attrs
  @all_resource_attrs ||= @all.select(&:is_calendarResource_scoped?).freeze
end

#all_resource_attrs_types_hObject



179
180
181
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 179

def all_resource_attrs_types_h
  @all_resource_attrs_types_h ||= all_resource_attrs.map { |attr| [attr.name, attr.type] }.to_h.freeze
end

#all_resource_attrs_writableObject



171
172
173
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 171

def all_resource_attrs_writable
  @all_resource_attrs_writable ||= all_resource_attrs.reject(&:immutable?).freeze
end

#all_resource_attrs_writable_namesObject



175
176
177
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 175

def all_resource_attrs_writable_names
  @all_resource_attrs_writable_names ||= all_resource_attrs_writable.map(&:name).freeze
end

#all_server_attr_types_hObject



79
80
81
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 79

def all_server_attr_types_h
  @all_server_attr_types_h ||= all_server_attrs.map { |attr| [attr.name, attr.type] }.to_h.freeze
end

#all_server_attrsObject

############################### Server ###############################



67
68
69
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 67

def all_server_attrs
  @all_server_attrs ||= @all.select(&:is_server_scoped?).freeze
end

#all_server_attrs_writableObject



71
72
73
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 71

def all_server_attrs_writable
  @all_server_attrs_writable ||= all_server_attrs.reject(&:immutable?).freeze
end

#all_server_attrs_writable_namesObject



75
76
77
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 75

def all_server_attrs_writable_names
  @all_server_attrs_writable_names ||= all_server_attrs_writable.map(&:name).freeze
end

#set_account_methodsObject



131
132
133
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 131

def 
  .attr_accessor(*.map { |attr| attr.name.to_sym })
end

#set_cos_methodsObject



59
60
61
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 59

def set_cos_methods
  Cos.attr_accessor(*all_cos_attrs.map { |attr| attr.name.to_sym })
end

#set_distributionlist_methodsObject



159
160
161
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 159

def set_distributionlist_methods
  DistributionList.attr_accessor(*all_distributionlist_attrs.map { |attr| attr.name.to_sym })
end

#set_domain_methodsObject



107
108
109
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 107

def set_domain_methods
  Domain.attr_accessor(*all_domain_attrs.map { |attr| attr.name.to_sym })
end

#set_methodsObject



30
31
32
33
34
35
36
37
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 30

def set_methods
  set_server_methods
  set_cos_methods
  set_domain_methods
  
  set_distributionlist_methods
  set_resource_methods
end

#set_resource_methodsObject



183
184
185
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 183

def set_resource_methods
  Resource.attr_accessor(*all_resource_attrs.map { |attr| attr.name.to_sym })
end

#set_server_methodsObject



83
84
85
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 83

def set_server_methods
  Server.attr_accessor(*all_server_attrs.map { |attr| attr.name.to_sym })
end