Class ActiveLdap::LdifInvalid
In: lib/active_ldap/base.rb
Parent: Error
Error AttributeAssignmentError AdapterNotSpecified OperationNotPermitted RequiredObjectClassMissed ConnectionError RequiredAttributeMissed LdifInvalid LdapError DistinguishedNameNotSetError EntryNotFound 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] DistinguishedName Base Reloadable::Deprecated Reloadable::Subclasses Enumerable Ldif Collection EntryAttribute StandardError Children HasManyWrap HasMany BelongsToMany Proxy BelongsTo Common Find LDIF Delete Update GetText::Translation 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 Xml JndiConnection lib/active_ldap/distinguished_name.rb lib/active_ldap/base.rb lib/active_ldap/schema/syntaxes.rb lib/active_ldap/xml.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 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 Translation GetTextFallback 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]