Class: ActiveLdap::Schema::Attribute
- Includes:
- GetTextSupport, HumanReadable
- Defined in:
- lib/active_ldap/schema.rb
Instance Attribute Summary collapse
-
#super_attribute ⇒ Object
readonly
Returns the value of attribute super_attribute.
Attributes inherited from Entry
#aliases, #description, #id, #name
Instance Method Summary collapse
-
#apply_encoding(value) ⇒ void
Sets binary encoding to value if the given attribute's syntax is binary syntax.
-
#binary? ⇒ Boolean
binary?.
-
#binary_required? ⇒ Boolean
binary_required?.
-
#directory_operation? ⇒ Boolean
directory_operation?.
- #human_attribute_description ⇒ Object
- #human_attribute_name ⇒ Object
-
#initialize(name, schema) ⇒ Attribute
constructor
A new instance of Attribute.
- #normalize_value(value) ⇒ Object
-
#read_only? ⇒ Boolean
read_only?.
-
#single_value? ⇒ Boolean
single_value?.
- #syntax ⇒ Object
- #syntax_description ⇒ Object
- #to_hash ⇒ Object
- #type_cast(value) ⇒ Object
- #valid?(value) ⇒ Boolean
- #validate(value) ⇒ Object
Methods included from HumanReadable
Methods included from GetTextSupport
Methods inherited from Entry
Constructor Details
#initialize(name, schema) ⇒ Attribute
Returns a new instance of Attribute.
398 399 400 |
# File 'lib/active_ldap/schema.rb', line 398 def initialize(name, schema) super(name, schema, "attributeTypes") end |
Instance Attribute Details
#super_attribute ⇒ Object (readonly)
Returns the value of attribute super_attribute.
397 398 399 |
# File 'lib/active_ldap/schema.rb', line 397 def super_attribute @super_attribute end |
Instance Method Details
#apply_encoding(value) ⇒ void
This method returns an undefined value.
Sets binary encoding to value if the given attribute's syntax is binary syntax. Does nothing otherwise.
430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 |
# File 'lib/active_ldap/schema.rb', line 430 def apply_encoding(value) return unless binary? case value when Hash value.each_value do |sub_value| apply_encoding(sub_value) end when Array value.each do |sub_value| apply_encoding(sub_value) end else return unless value.respond_to?(:force_encoding) value.force_encoding("ASCII-8BIT") end end |
#binary? ⇒ Boolean
binary?
Returns true if the given attribute's syntax is binary syntax, X-NOT-HUMAN-READABLE or X-BINARY-TRANSFER-REQUIRED
423 424 425 |
# File 'lib/active_ldap/schema.rb', line 423 def binary? @binary end |
#binary_required? ⇒ Boolean
binary_required?
Returns true if the value MUST be transferred in binary
450 451 452 |
# File 'lib/active_ldap/schema.rb', line 450 def binary_required? @binary_required end |
#directory_operation? ⇒ Boolean
directory_operation?
Returns true if an attribute is directory operation. It means that USAGE contains directoryOperation.
458 459 460 |
# File 'lib/active_ldap/schema.rb', line 458 def directory_operation? @directory_operation end |
#human_attribute_description ⇒ Object
497 498 499 |
# File 'lib/active_ldap/schema.rb', line 497 def human_attribute_description self.class.human_attribute_description(self) end |
#human_attribute_name ⇒ Object
493 494 495 |
# File 'lib/active_ldap/schema.rb', line 493 def human_attribute_name self.class.human_attribute_name(self) end |
#normalize_value(value) ⇒ Object
485 486 487 |
# File 'lib/active_ldap/schema.rb', line 485 def normalize_value(value) normalize_value_internal(value, false) end |
#read_only? ⇒ Boolean
read_only?
Returns true if an attribute is read-only NO-USER-MODIFICATION
406 407 408 |
# File 'lib/active_ldap/schema.rb', line 406 def read_only? @read_only end |
#single_value? ⇒ Boolean
single_value?
Returns true if an attribute can only have one value defined SINGLE-VALUE
415 416 417 |
# File 'lib/active_ldap/schema.rb', line 415 def single_value? @single_value end |
#syntax ⇒ Object
462 463 464 |
# File 'lib/active_ldap/schema.rb', line 462 def syntax @derived_syntax end |
#syntax_description ⇒ Object
489 490 491 |
# File 'lib/active_ldap/schema.rb', line 489 def syntax_description send_to_syntax(nil, :description) end |
#to_hash ⇒ Object
501 502 503 504 505 506 507 508 509 510 511 |
# File 'lib/active_ldap/schema.rb', line 501 def to_hash { :read_only => read_only?, :single_value => single_value?, :binary => binary?, :binary_required => binary_required?, :directory_operation => directory_operation?, :syntax => syntax, :syntax_description => syntax_description, } end |
#type_cast(value) ⇒ Object
481 482 483 |
# File 'lib/active_ldap/schema.rb', line 481 def type_cast(value) send_to_syntax(value, :type_cast, value) end |
#valid?(value) ⇒ Boolean
466 467 468 |
# File 'lib/active_ldap/schema.rb', line 466 def valid?(value) validate(value).nil? end |
#validate(value) ⇒ Object
470 471 472 473 474 475 476 477 478 479 |
# File 'lib/active_ldap/schema.rb', line 470 def validate(value) error_info = validate_each_value(value) return error_info if error_info begin normalize_value(value) nil rescue AttributeValueInvalid [$!.] end end |