Class: Zm::Client::Base::ZimbraAttributesCollection
Instance Attribute Summary collapse
#all
Instance Method Summary
collapse
#method_missing
Constructor Details
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 { || .to_sym }
).map do |attr|
attr_h = attr.to_h
attr_h.compact!
ZimbraAttribute.new(**attr_h)
end.freeze
end
|
Instance Attribute Details
#all_versioned ⇒ Object
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_h ⇒ Object
127
128
129
|
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 127
def all_account_attr_types_h
@all_account_attr_types_h ||= all_account_attrs.map { |attr| [attr.name, attr.type] }.to_h.freeze
end
|
#all_account_attrs ⇒ Object
############################### Account ###############################
115
116
117
|
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 115
def all_account_attrs
@all_account_attrs ||= @all.select { |attr| attr.is_account_scoped? || attr.is_mailRecipient_scoped? }.freeze
end
|
#all_account_attrs_writable ⇒ Object
119
120
121
|
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 119
def all_account_attrs_writable
@all_account_attrs_writable ||= all_account_attrs.reject(&:immutable?).freeze
end
|
#all_account_attrs_writable_names ⇒ Object
123
124
125
|
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 123
def all_account_attrs_writable_names
@all_account_attrs_writable_names ||= all_account_attrs_writable.map(&:name).freeze
end
|
#all_cos_attr_types_h ⇒ Object
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_attrs ⇒ Object
############################### 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_writable ⇒ Object
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_names ⇒ Object
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_attrs ⇒ Object
############################### 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_h ⇒ Object
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_writable ⇒ Object
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_names ⇒ Object
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_h ⇒ Object
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_attrs ⇒ Object
############################### 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_writable ⇒ Object
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_names ⇒ Object
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_attrs ⇒ Object
############################### 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_h ⇒ Object
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_writable ⇒ Object
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_names ⇒ Object
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_h ⇒ Object
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_attrs ⇒ Object
############################### 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_writable ⇒ Object
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_names ⇒ Object
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_methods ⇒ Object
131
132
133
|
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 131
def set_account_methods
Account.attr_accessor(*all_account_attrs.map { |attr| attr.name.to_sym })
end
|
#set_cos_methods ⇒ Object
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_methods ⇒ Object
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_methods ⇒ Object
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_methods ⇒ Object
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_account_methods
set_distributionlist_methods
set_resource_methods
end
|
#set_resource_methods ⇒ Object
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_methods ⇒ Object
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
|