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