Class: Zm::Client::Base::ZimbraAttributesCollection
- Inherits:
-
Object
- Object
- Zm::Client::Base::ZimbraAttributesCollection
- Defined in:
- lib/zm/client/base/zimbra_attributes_collection.rb
Instance Attribute Summary collapse
-
#all ⇒ Object
readonly
Returns the value of attribute all.
Instance Method Summary collapse
- #all_account_attr_types_h ⇒ Object
- #all_account_attrs ⇒ Object
-
#all_account_attrs_version(version) ⇒ Object
retourne tous les attributs qui ont une version inférieure ou égale à la version données en paramètre.
-
#initialize(parent) ⇒ ZimbraAttributesCollection
constructor
A new instance of ZimbraAttributesCollection.
- #set_methods ⇒ Object
Constructor Details
#initialize(parent) ⇒ ZimbraAttributesCollection
Returns a new instance of ZimbraAttributesCollection.
11 12 13 14 |
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 11 def initialize(parent) @parent = parent @all = JSON.parse(File.read(File.(File.dirname(__FILE__) + '../../../modules/common/zimbra-attrs.json')), object_class: ZimbraAttribute).freeze end |
Instance Attribute Details
#all ⇒ Object (readonly)
Returns the value of attribute all.
9 10 11 |
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 9 def all @all end |
Instance Method Details
#all_account_attr_types_h ⇒ Object
26 27 28 |
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 26 def all_account_attr_types_h @all_account_attr_types_h ||= Hash[all_account_attrs.map { |attr| [attr.name, attr.type] }].freeze end |
#all_account_attrs ⇒ Object
22 23 24 |
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 22 def all_account_attrs @all_account_attrs ||= @all.select { |attr| attr.is_account_scoped? }.freeze end |
#all_account_attrs_version(version) ⇒ Object
retourne tous les attributs qui ont une version inférieure ou égale à la version données en paramètre
32 33 34 |
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 32 def all_account_attrs_version(version) all_account_attrs.select { |attr| attr.version_start == version || VersionSorter.sort([version, attr.version_start]).first != version } end |
#set_methods ⇒ Object
16 17 18 19 20 |
# File 'lib/zm/client/base/zimbra_attributes_collection.rb', line 16 def set_methods all_account_attrs = all_account_attrs_version(@parent.version) Account.attr_reader *all_account_attrs.select { |attr| attr.immutable }.map { |attr| attr.name.to_sym } Account.attr_accessor *all_account_attrs.reject { |attr| attr.immutable }.map { |attr| attr.name.to_sym } end |