# File lib/rscm/scm/subversion_log_parser.rb, line 55 def parse(io, skip_line_parsing=false, &line_proc) # We have to trim off the last newline - it's not meant to be part of the message revision = super revision.message = revision.message[0..-2] if revision revision end
# File lib/rscm/scm/subversion_log_parser.rb, line 62 def relative_path(url, path_from_root) path_from_root = path_from_root.chomp url_tokens = url.split('/') path_from_root_tokens = path_from_root.split('/') max_similar = path_from_root_tokens.length while(max_similar > 0) url = url_tokens[-max_similar..-1] path = path_from_root_tokens[0..max_similar-1] if(url == path) break end max_similar -= 1 end if(max_similar == 0) if(@path.nil? || @path == "") path_from_root else nil end else path_from_root_tokens[max_similar..-1].join("/") end end
# File lib/rscm/scm/subversion_log_parser.rb, line 117 def next_result result = @revision @revision = nil result end
# File lib/rscm/scm/subversion_log_parser.rb, line 90 def parse_line(line) if(@revision.nil?) parse_header(line) elsif(line.strip == "") @parse_state = :parse_message elsif(line =~ /Changed paths/) @parse_state = :parse_files elsif(@parse_state == :parse_files) file = parse_file(line) if(file && file.path) previously_added_file = @revision[-1] if(previously_added_file) # remove previous revision_file if it's a dir previous_tokens = previously_added_file.path.split("/") current_tokens = file.path.split("/") current_tokens.pop if(previous_tokens == current_tokens) @revision.pop end end @revision.add file end elsif(@parse_state == :parse_message) @revision.message << line.chomp << "\n" end end
Generated with the Darkfish Rdoc Generator 2.