Class ActiveLdap::LdifInvalid
In: lib/active_ldap/base.rb
Parent: Error
Error AttributeAssignmentError AdapterNotSpecified OperationNotPermitted RequiredObjectClassMissed ConnectionError RequiredAttributeMissed LdifInvalid DistinguishedNameNotSetError EntryNotFound LdapError SaveError StrongAuthenticationRequired AdapterNotFound ConnectionNotEstablished TimeoutError AuthenticationError AttributeValueInvalid EntryNotSaved DistinguishedNameInputInvalid EntryAlreadyExist ObjectClassError UnknownAttribute EntryInvalid DeleteError ConfigurationError DistinguishedNameInvalid Base DistinguishedName Reloadable::Deprecated Reloadable::Subclasses Enumerable Ldif Collection EntryAttribute StandardError Children HasMany HasManyWrap BelongsToMany Proxy BelongsTo Common Find LDIF Delete Update Normalizable GetText Parser ActiveRecord::Callbacks ActiveRecord::Validations Base\n[lib/active_ldap/adapter/base.rb\nlib/active_ldap/adapter/jndi.rb\nlib/active_ldap/adapter/ldap.rb\nlib/active_ldap/adapter/net_ldap.rb] Jndi Ldap NetLdap GetTextSupport Schema\n[lib/active_ldap/schema.rb\nlib/active_ldap/schema/syntaxes.rb] JndiConnection lib/active_ldap/distinguished_name.rb lib/active_ldap/base.rb lib/active_ldap/schema.rb lib/active_ldap/entry_attribute.rb lib/active_ldap/ldif.rb lib/active_ldap/ldap_error.rb ClassMethods Associations LdapBenchmarking ActionController ClassMethods Tree Acts Populate lib/active_ldap/association/has_many_wrap.rb lib/active_ldap/association/children.rb lib/active_ldap/association/collection.rb lib/active_ldap/association/proxy.rb lib/active_ldap/association/belongs_to_many.rb lib/active_ldap/association/belongs_to.rb lib/active_ldap/association/has_many.rb HasManyUtils Association Command Update Common ModifyNameRecordLoadable AddOperationModifiable DeleteOperationModifiable ReplaceOperationModifiable ModifyRecordLoadable DeleteRecordLoadable AddRecordLoadable ContentRecordLoadable LDIF Delete Find Operations ClassMethods Normalizable Attributes GetTextSupport Escape ClassMethods Configuration ClassMethods ObjectClass lib/active_ldap/get_text/parser.rb GetText ClassMethods Callbacks Validations lib/active_ldap/adapter/jndi_connection.rb lib/active_ldap/adapter/net_ldap.rb lib/active_ldap/adapter/ldap.rb lib/active_ldap/adapter/base.rb lib/active_ldap/adapter/jndi.rb Adapter Helper GetTextFallback ClassMethods HumanReadable ClassMethods Connection Salt UserPassword ActiveLdap dot/m_44_0.png

Methods

Constants

NEAREST_MARK = "|@|"

Attributes

column  [R] 
ldif  [R] 
line  [R] 
nearest  [R] 
reason  [R] 

Public Class methods

[Source]

     # File lib/active_ldap/base.rb, line 135
135:     def initialize(ldif, reason=nil, line=nil, column=nil)
136:       @ldif = ldif
137:       @reason = reason
138:       @line = line
139:       @column = column
140:       @nearest = nil
141:       if @reason
142:         message = _("invalid LDIF: %s:") % @reason
143:       else
144:         message = _("invalid LDIF:")
145:       end
146:       if @line and @column
147:         @nearest = detect_nearest(@line, @column)
148:         snippet = generate_snippet
149:         message << "\n#{snippet}\n"
150:       end
151:       super("#{message}\n#{numbered_ldif}")
152:     end

Private Instance methods

[Source]

     # File lib/active_ldap/base.rb, line 156
156:     def detect_nearest(line, column)
157:       nearest = @ldif.to_a[line - 1] || ""
158:       if column - 1 == nearest.size # for JRuby 1.0.2 :<
159:         nearest << NEAREST_MARK
160:       else
161:         nearest[column - 1, 0] = NEAREST_MARK
162:       end
163:       nearest = "#{@ldif.to_a[line - 2]}#{nearest}" if nearest == NEAREST_MARK
164:       nearest
165:     end

[Source]

     # File lib/active_ldap/base.rb, line 167
167:     def generate_snippet
168:       nearest = @nearest.chomp
169:       column_column = ":#{@column}"
170:       target_position_info = "#{@line}#{column_column}: "
171:       if /\n/ =~ nearest
172:         snippet = "%#{Math.log10(@line).truncate}d" % (@line - 1)
173:         snippet << " " * column_column.size
174:         snippet << ": "
175:         snippet << nearest.gsub(/\n/, "\n#{target_position_info}")
176:       else
177:         snippet = "#{target_position_info}#{nearest}"
178:       end
179:       snippet
180:     end

[Source]

     # File lib/active_ldap/base.rb, line 182
182:     def numbered_ldif
183:       return @ldif if @ldif.blank?
184:       lines = @ldif.to_a
185:       format = "%#{Math.log10(lines.size).truncate + 1}d: %s"
186:       i = 0
187:       lines.collect do |line|
188:         i += 1
189:         format % [i, line]
190:       end.join
191:     end

[Validate]