Class: Svn::DiffTable

Inherits:
Array
  • Object
show all
Defined in:
lib/Svn/mime_type.rb

Overview

Class that represents a file diff

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type = "inline", style = nil) ⇒ DiffTable

Returns a new instance of DiffTable.



123
124
125
126
127
128
129
130
131
# File 'lib/Svn/mime_type.rb', line 123

def initialize(type="inline", style=nil)
	@parsing = false
	@added = 0
	@removed = 0
	@type = type
	@style = style
	@file_name = nil
	@git_diff = false
end

Instance Attribute Details

#file_nameObject

Returns the value of attribute file_name.



122
123
124
# File 'lib/Svn/mime_type.rb', line 122

def file_name
  @file_name
end

Instance Method Details

#add_line(line) ⇒ Object



133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/Svn/mime_type.rb', line 133

def add_line(line)
	unless @parsing
		if line =~ /^(---|\+\+\+) (.*)$/
			self.file_name = $2
		elsif line =~ /^@@ (\+|\-)(\d+)(,\d+)? (\+|\-)(\d+)(,\d+)? @@/
			@line_num_l = $2.to_i
			@line_num_r = $5.to_i
			@parsing = true
		end
	else
		if line =~ %r{^[^\+\-\s@\\]}
			@parsing = false
			return false
		elsif line =~ /^@@ (\+|\-)(\d+)(,\d+)? (\+|\-)(\d+)(,\d+)? @@/
			@line_num_l = $2.to_i
			@line_num_r = $5.to_i
		else
			parse_line(line, @type)
		end
	end
	return true
end

#each_lineObject



155
156
157
158
159
160
161
162
163
# File 'lib/Svn/mime_type.rb', line 155

def each_line
	prev_line_left, prev_line_right = nil, nil
	each do |line|
		spacing = prev_line_left && prev_line_right && (line.nb_line_left != prev_line_left+1) && (line.nb_line_right != prev_line_right+1)
		yield spacing, line
		prev_line_left = line.nb_line_left.to_i if line.nb_line_left.to_i > 0
		prev_line_right = line.nb_line_right.to_i if line.nb_line_right.to_i > 0
	end
end

#inspectObject



165
166
167
168
169
170
171
# File 'lib/Svn/mime_type.rb', line 165

def inspect
	puts '### DIFF TABLE ###'
	puts "file : #{file_name}"
	self.each do |d|
		d.inspect
	end
end