Class Index [+]

Quicksearch

ActiveLdap::LdifInvalid

Constants

NEAREST_MARK

Attributes

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

Public Class Methods

new(ldif, reason=nil, line=nil, column=nil) click to toggle 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

detect_nearest(line, column) click to toggle 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
generate_snippet() click to toggle 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
numbered_ldif() click to toggle 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

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.