Class ActiveLdap::LdifInvalid
In: lib/active_ldap/base.rb
Parent: Error
Error AttributeAssignmentError AdapterNotSpecified OperationNotPermitted RequiredObjectClassMissed ConnectionError RequiredAttributeMissed LdifInvalid LdapError DistinguishedNameNotSetError EntryNotFound SaveError StrongAuthenticationRequired AdapterNotFound ConnectionNotEstablished TimeoutError AuthenticationError AttributeValueInvalid EntryNotSaved DistinguishedNameInputInvalid EntryAlreadyExist ObjectClassError UnknownAttribute EntryInvalid DeleteError ConfigurationError DistinguishedNameInvalid DistinguishedName Base Reloadable::Deprecated Reloadable::Subclasses Enumerable Ldif Collection EntryAttribute StandardError Children HasManyWrap HasMany 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 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 ClassMethods Tree Acts Command Update Common ModifyNameRecordLoadable AddOperationModifiable DeleteOperationModifiable ReplaceOperationModifiable ModifyRecordLoadable DeleteRecordLoadable AddRecordLoadable ContentRecordLoadable LDIF Delete Find Operations GetTextSupport Escape ClassMethods Normalizable Attributes 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/jndi.rb Adapter Helper GetTextFallback ClassMethods HumanReadable Salt UserPassword ClassMethods Connection 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]