Class: Treequel::Schema::MatchingRuleUse
- Inherits:
-
Object
- Object
- Treequel::Schema::MatchingRuleUse
- Extended by:
- Loggability, AttributeDeclarations
- Includes:
- Constants::Patterns
- Defined in:
- lib/treequel/schema/matchingruleuse.rb
Overview
This is a class for representing matchingRuleUse declarations in a Treequel::Schema.
Constant Summary
Constants included from Constants::Patterns
Constants::Patterns::ALPHA, Constants::Patterns::AMPERSAND, Constants::Patterns::ASSERTIONVALUE, Constants::Patterns::ASTERISK, Constants::Patterns::ATTRIBUTE_TYPE, Constants::Patterns::ATTRIBUTE_TYPE_AND_VALUE, Constants::Patterns::ATTRIBUTE_VALUE, Constants::Patterns::BASE64_CHAR, Constants::Patterns::BASE64_STRING, Constants::Patterns::COLON, Constants::Patterns::COMMA, Constants::Patterns::DESCR, Constants::Patterns::DIGIT, Constants::Patterns::DISTINGUISHED_NAME, Constants::Patterns::DN_ESCAPED, Constants::Patterns::DOLLAR, Constants::Patterns::DOT, Constants::Patterns::DQUOTE, Constants::Patterns::DSTRING, Constants::Patterns::EQUALS, Constants::Patterns::ESC, Constants::Patterns::ESCAPED, Constants::Patterns::EXCLAMATION, Constants::Patterns::EXTENSIONS, Constants::Patterns::FILL, Constants::Patterns::FOLD, Constants::Patterns::HEX, Constants::Patterns::HEXPAIR, Constants::Patterns::HEXSTRING, Constants::Patterns::HYPHEN, Constants::Patterns::KEYCHAR, Constants::Patterns::KEYSTRING, Constants::Patterns::KIND, Constants::Patterns::LANGLE, Constants::Patterns::LCURLY, Constants::Patterns::LDAP_ATTRIBUTE_DESCRIPTION, Constants::Patterns::LDAP_ATTRIBUTE_TYPE_DESCRIPTION, Constants::Patterns::LDAP_MATCHING_RULE_DESCRIPTION, Constants::Patterns::LDAP_MATCHING_RULE_USE_DESCRIPTION, Constants::Patterns::LDAP_MISORDERED_DESC_OBJECTCLASS_DESCRIPTION, Constants::Patterns::LDAP_MISORDERED_KIND_OBJECTCLASS_DESCRIPTION, Constants::Patterns::LDAP_MISORDERED_SYNTAX_ATTRIBUTE_TYPE_DESCRIPTION, Constants::Patterns::LDAP_OBJECTCLASS_DESCRIPTION, Constants::Patterns::LDAP_SUBSTRING_FILTER, Constants::Patterns::LDAP_SUBSTRING_FILTER_VALUE, Constants::Patterns::LDAP_SYNTAX_DESCRIPTION, Constants::Patterns::LDAP_TRAILING_KIND_OBJECTCLASS_DESCRIPTION, Constants::Patterns::LDAP_UNESCAPE_SQUOTE_ATTRIBUTE_TYPE_DESCRIPTION, Constants::Patterns::LDIF_ATTRIBUTE_DESCRIPTION, Constants::Patterns::LDIF_ATTRIBUTE_TYPE, Constants::Patterns::LDIF_ATTRTYPE_OPTION, Constants::Patterns::LDIF_ATTRTYPE_OPTIONS, Constants::Patterns::LDIF_ATTRVAL_SPEC, Constants::Patterns::LDIF_ATTR_TYPE_CHARS, Constants::Patterns::LDIF_OPT_CHAR, Constants::Patterns::LDIF_SAFE_CHAR, Constants::Patterns::LDIF_SAFE_INIT_CHAR, Constants::Patterns::LDIF_SAFE_STRING, Constants::Patterns::LDIF_VALUE_SPEC, Constants::Patterns::LDIGIT, Constants::Patterns::LEADCHAR, Constants::Patterns::LEADKEYCHAR, Constants::Patterns::LEN, Constants::Patterns::LPAREN, Constants::Patterns::LUTF1, Constants::Patterns::MALFORMED_DSTRING, Constants::Patterns::MALFORMED_QDSTRING, Constants::Patterns::NOIDLEN, Constants::Patterns::NORMAL, Constants::Patterns::NUL, Constants::Patterns::NUMBER, Constants::Patterns::NUMERICOID, Constants::Patterns::OCTET, Constants::Patterns::OID, Constants::Patterns::OIDLIST, Constants::Patterns::OIDS, Constants::Patterns::PAIR, Constants::Patterns::PLUS, Constants::Patterns::QDESCR, Constants::Patterns::QDESCRLIST, Constants::Patterns::QDESCRS, Constants::Patterns::QDSTRING, Constants::Patterns::QDSTRINGLIST, Constants::Patterns::QDSTRINGS, Constants::Patterns::QQ, Constants::Patterns::QS, Constants::Patterns::QUOTED_DESCR, Constants::Patterns::QUOTED_NUMERICOID, Constants::Patterns::QUTF1, Constants::Patterns::QUTF8, Constants::Patterns::RANGLE, Constants::Patterns::RCURLY, Constants::Patterns::RELATIVE_DISTINGUISHED_NAME, Constants::Patterns::RPAREN, Constants::Patterns::SEMI, Constants::Patterns::SEP, Constants::Patterns::SHARP, Constants::Patterns::SP, Constants::Patterns::SPACE, Constants::Patterns::SPECIAL, Constants::Patterns::SQUOTE, Constants::Patterns::STRING, Constants::Patterns::STRINGCHAR, Constants::Patterns::SUTF1, Constants::Patterns::TILDE, Constants::Patterns::TRAILCHAR, Constants::Patterns::TUTF1, Constants::Patterns::UNESCAPED, Constants::Patterns::URI_REF, Constants::Patterns::USAGE, Constants::Patterns::USCORE, Constants::Patterns::UTF0, Constants::Patterns::UTF1, Constants::Patterns::UTF1SUBSET, Constants::Patterns::UTF2, Constants::Patterns::UTF3, Constants::Patterns::UTF4, Constants::Patterns::UTF8, Constants::Patterns::UTFMB, Constants::Patterns::VALUEENCODING, Constants::Patterns::VERTBAR, Constants::Patterns::WSP, Constants::Patterns::XSTRING
Instance Attribute Summary collapse
-
#attr_oids ⇒ Object
readonly
The OIDs of the attributes the matchingRuleUse applies to.
-
#desc ⇒ Object
The matchingRuleUse’s description.
-
#extensions ⇒ Object
The matchingRuleUse’s extensions (as a String).
-
#names ⇒ Object
readonly
The Array of the matchingRuleUse’s names.
-
#oid ⇒ Object
readonly
The matchingRuleUse’s oid.
-
#schema ⇒ Object
readonly
The schema the matchingRuleUse belongs to.
Class Method Summary collapse
-
.parse(schema, description) ⇒ Object
Parse an MatchingRuleUse entry from a matchingRuleUse description from a schema.
Instance Method Summary collapse
-
#attribute_types ⇒ Object
Return Treequel::Schema::AttributeType objects for each of the types this MatchingRuleUse applies to.
-
#initialize(schema, oid, attr_oids, names = nil, desc = nil, obsolete = false, extensions = nil) ⇒ MatchingRuleUse
constructor
Create a new MatchingRuleUse.
-
#inspect ⇒ Object
Return a human-readable representation of the object suitable for debugging.
-
#name ⇒ Object
Return the first of the matchingRuleUse’s names, if it has any, or
nil. -
#to_s ⇒ Object
Returns the matchingRuleUse as a String, which is the RFC4512-style schema description.
Methods included from AttributeDeclarations
Constructor Details
#initialize(schema, oid, attr_oids, names = nil, desc = nil, obsolete = false, extensions = nil) ⇒ MatchingRuleUse
Create a new MatchingRuleUse
51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 51 def initialize( schema, oid, attr_oids, names=nil, desc=nil, obsolete=false, extensions=nil ) @schema = schema @oid = oid @names = names @desc = desc @obsolete = obsolete ? true : false @attr_oids = attr_oids @extensions = extensions super() end |
Instance Attribute Details
#attr_oids ⇒ Object (readonly)
The OIDs of the attributes the matchingRuleUse applies to
86 87 88 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 86 def attr_oids @attr_oids end |
#desc ⇒ Object
The matchingRuleUse’s description
80 81 82 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 80 def desc @desc end |
#extensions ⇒ Object
The matchingRuleUse’s extensions (as a String)
89 90 91 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 89 def extensions @extensions end |
#names ⇒ Object (readonly)
The Array of the matchingRuleUse’s names
77 78 79 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 77 def names @names end |
#oid ⇒ Object (readonly)
The matchingRuleUse’s oid
74 75 76 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 74 def oid @oid end |
#schema ⇒ Object (readonly)
The schema the matchingRuleUse belongs to
71 72 73 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 71 def schema @schema end |
Class Method Details
.parse(schema, description) ⇒ Object
Parse an MatchingRuleUse entry from a matchingRuleUse description from a schema.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 29 def self::parse( schema, description ) unless match = ( LDAP_MATCHING_RULE_USE_DESCRIPTION.match(description) ) raise Treequel::ParseError, "failed to parse matchingRuleUse from %p" % [ description ] end oid, names, desc, obsolete, attr_oids, extensions = match.captures # Treequel.logger.debug " parsed matchingRuleUse: %p" % [ match.captures ] # Normalize the attributes names = Treequel::Schema.parse_names( names ) desc = Treequel::Schema.unquote_desc( desc ) attr_oids = Treequel::Schema.parse_oids( attr_oids ) return self.new( schema, oid, attr_oids, names, desc, obsolete, extensions ) end |
Instance Method Details
#attribute_types ⇒ Object
Return Treequel::Schema::AttributeType objects for each of the types this MatchingRuleUse applies to.
137 138 139 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 137 def attribute_types return self.attr_oids.collect {|oid| self.schema.attribute_types[oid] } end |
#inspect ⇒ Object
Return a human-readable representation of the object suitable for debugging
123 124 125 126 127 128 129 130 131 132 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 123 def inspect return "#<%s:0x%0x %s(%s) %p -> %p >" % [ self.class.name, self.object_id / 2, self.name, self.oid, self.desc, self.attr_oids, ] end |
#name ⇒ Object
Return the first of the matchingRuleUse’s names, if it has any, or nil.
93 94 95 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 93 def name return self.names.first end |
#to_s ⇒ Object
Returns the matchingRuleUse as a String, which is the RFC4512-style schema description.
108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/treequel/schema/matchingruleuse.rb', line 108 def to_s parts = [ self.oid ] parts << "NAME %s" % Treequel::Schema.qdescrs( self.names ) unless self.names.empty? parts << "DESC '%s'" % [ self.desc ] if self.desc parts << "OBSOLETE" if self.obsolete? parts << "APPLIES %s" % [ Treequel::Schema.oids(self.attr_oids) ] parts << self.extensions.strip unless self.extensions.empty? return "( %s )" % [ parts.join(' ') ] end |