class ActiveLdap::LdifInvalid
Constants
- NEAREST_MARK
Attributes
column[R]
ldif[R]
line[R]
nearest[R]
reason[R]
Public Class Methods
new(ldif, reason=nil, line=nil, column=nil)
click to toggle source
Calls superclass method
# File lib/active_ldap/base.rb, line 155 def initialize(ldif, reason=nil, line=nil, column=nil) @ldif = ldif @reason = reason @line = line @column = column @nearest = nil if @reason message = _("invalid LDIF: %s:") % @reason else message = _("invalid LDIF:") end if @line and @column @nearest = detect_nearest(@line, @column) snippet = generate_snippet message << "\n#{snippet}\n" end super("#{message}\n#{numbered_ldif}") end
Private Instance Methods
detect_nearest(line, column)
click to toggle source
# File lib/active_ldap/base.rb, line 176 def detect_nearest(line, column) lines = Compatible.string_to_lines(@ldif).to_a nearest = lines[line - 1] || "" if column - 1 == nearest.size # for JRuby 1.0.2 :< nearest << NEAREST_MARK else nearest[column - 1, 0] = NEAREST_MARK end if nearest == NEAREST_MARK nearest = "#{lines[line - 2]}#{nearest}" end nearest end
generate_snippet()
click to toggle source
# File lib/active_ldap/base.rb, line 190 def generate_snippet nearest = @nearest.chomp column_column = ":#{@column}" target_position_info = "#{@line}#{column_column}: " if /\n/ =~ nearest snippet = "%#{Math.log10(@line).truncate}d" % (@line - 1) snippet << " " * column_column.size snippet << ": " snippet << nearest.gsub(/\n/, "\n#{target_position_info}") else snippet = "#{target_position_info}#{nearest}" end snippet end
numbered_ldif()
click to toggle source
# File lib/active_ldap/base.rb, line 205 def numbered_ldif return @ldif if @ldif.blank? lines = Compatible.string_to_lines(@ldif) format = "%#{Math.log10(lines.size).truncate + 1}d: %s" i = 0 lines.collect do |line| i += 1 format % [i, line] end.join end