Class ActiveLdap::LdifInvalid
In: lib/active_ldap/base.rb
Parent: Error
Error AttributeAssignmentError AdapterNotSpecified OperationNotPermitted RequiredObjectClassMissed ConnectionError RequiredAttributeMissed LdifInvalid DistinguishedNameNotSetError EntryNotFound LdapError SaveError StrongAuthenticationRequired NotImplemented AdapterNotFound TimeoutError AuthenticationError AttributeValueInvalid EntryNotSaved DistinguishedNameInputInvalid EntryAlreadyExist ObjectClassError UnknownAttribute EntryInvalid DeleteError ConfigurationError ConnectionNotSetup DistinguishedNameInvalid Schema\n[lib/active_ldap/schema.rb\nlib/active_ldap/schema/syntaxes.rb] Base DistinguishedName Reloadable::Deprecated Reloadable::Subclasses Enumerable Ldif Collection EntryAttribute StandardError Children HasManyWrap HasMany BelongsToMany Proxy BelongsTo Normalizable Common Find LDIF Delete Update ActiveRecord::Callbacks GetText Parser 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 ActiveRecord::Validations Xml JndiConnection lib/active_ldap/distinguished_name.rb lib/active_ldap/base.rb lib/active_ldap/xml.rb lib/active_ldap/schema.rb lib/active_ldap/entry_attribute.rb lib/active_ldap/ldif.rb lib/active_ldap/ldap_error.rb Compatible 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 ClassMethods Normalizable Attributes Update Common ModifyNameRecordLoadable AddOperationModifiable DeleteOperationModifiable ReplaceOperationModifiable ModifyRecordLoadable DeleteRecordLoadable AddRecordLoadable ContentRecordLoadable LDIF Delete Find Operations GetTextSupport Escape ClassMethods Configuration ClassMethods ObjectClass ClassMethods Callbacks lib/active_ldap/get_text/parser.rb GetText 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 Validations GetTextFallback Helper ClassMethods HumanReadable Salt UserPassword ClassMethods Connection ActiveLdap dot/m_46_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 154
154:     def initialize(ldif, reason=nil, line=nil, column=nil)
155:       @ldif = ldif
156:       @reason = reason
157:       @line = line
158:       @column = column
159:       @nearest = nil
160:       if @reason
161:         message = _("invalid LDIF: %s:") % @reason
162:       else
163:         message = _("invalid LDIF:")
164:       end
165:       if @line and @column
166:         @nearest = detect_nearest(@line, @column)
167:         snippet = generate_snippet
168:         message << "\n#{snippet}\n"
169:       end
170:       super("#{message}\n#{numbered_ldif}")
171:     end

Private Instance methods

[Source]

     # File lib/active_ldap/base.rb, line 175
175:     def detect_nearest(line, column)
176:       lines = Compatible.string_to_lines(@ldif).to_a
177:       nearest = lines[line - 1] || ""
178:       if column - 1 == nearest.size # for JRuby 1.0.2 :<
179:         nearest << NEAREST_MARK
180:       else
181:         nearest[column - 1, 0] = NEAREST_MARK
182:       end
183:       if nearest == NEAREST_MARK
184:         nearest = "#{lines[line - 2]}#{nearest}"
185:       end
186:       nearest
187:     end

[Source]

     # File lib/active_ldap/base.rb, line 189
189:     def generate_snippet
190:       nearest = @nearest.chomp
191:       column_column = ":#{@column}"
192:       target_position_info = "#{@line}#{column_column}: "
193:       if /\n/ =~ nearest
194:         snippet = "%#{Math.log10(@line).truncate}d" % (@line - 1)
195:         snippet << " " * column_column.size
196:         snippet << ": "
197:         snippet << nearest.gsub(/\n/, "\n#{target_position_info}")
198:       else
199:         snippet = "#{target_position_info}#{nearest}"
200:       end
201:       snippet
202:     end

[Source]

     # File lib/active_ldap/base.rb, line 204
204:     def numbered_ldif
205:       return @ldif if @ldif.blank?
206:       lines = Compatible.string_to_lines(@ldif)
207:       format = "%#{Math.log10(lines.size).truncate + 1}d: %s"
208:       i = 0
209:       lines.collect do |line|
210:         i += 1
211:         format % [i, line]
212:       end.join
213:     end

[Validate]