unified_diff 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/unified_diff/diff.rb +12 -3
- data/test/test_unified_diff.rb +12 -0
- data/unified_diff.gemspec +1 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
data/lib/unified_diff/diff.rb
CHANGED
@@ -7,7 +7,11 @@ module UnifiedDiff
|
|
7
7
|
FILE_PATTERN = /(.*)\t'{2}?(.*)'{2}?/
|
8
8
|
OLD_FILE_PATTERN = /--- #{FILE_PATTERN}/
|
9
9
|
NEW_FILE_PATTERN = /\+\+\+ #{FILE_PATTERN}/
|
10
|
-
|
10
|
+
# Match assignment is tricky for CHUNK_PATTERN
|
11
|
+
# $1,$2 are static, but $3,$4,$5 vary
|
12
|
+
# if pattern is X,Y then $3 = X,Y, $4 = X, $5 = Y
|
13
|
+
# if pattern is X then $3 = X
|
14
|
+
CHUNK_PATTERN = /@@ -(\d+),(\d+) \+((\d+),(\d+)|(\d+)) @@/
|
11
15
|
ADDED_PATTERN = /\+(.*)/
|
12
16
|
REMOVED_PATTERN = /-(.*)/
|
13
17
|
UNCHANGED_PATTERN = / (.*)/
|
@@ -41,8 +45,13 @@ module UnifiedDiff
|
|
41
45
|
when CHUNK_PATTERN
|
42
46
|
old_begin = $1.to_i
|
43
47
|
old_end = old_begin + $2.to_i
|
44
|
-
|
45
|
-
|
48
|
+
if $3.include?(',') # Will match if non-edge case encountered
|
49
|
+
new_begin = $4.to_i
|
50
|
+
new_end = new_begin + $5.to_i
|
51
|
+
else
|
52
|
+
new_begin = $3.to_i
|
53
|
+
new_end = new_begin + 1
|
54
|
+
end
|
46
55
|
@working_chunk = Chunk.new(original: (old_begin...old_end), modified: (new_begin...new_end))
|
47
56
|
@chunks << @working_chunk
|
48
57
|
when ADDED_PATTERN
|
data/test/test_unified_diff.rb
CHANGED
@@ -93,4 +93,16 @@ class TestUnifiedDiff < MiniTest::Unit::TestCase
|
|
93
93
|
def test_to_s
|
94
94
|
assert_equal @original, @diff.to_s
|
95
95
|
end
|
96
|
+
|
97
|
+
def test_handles_one_element_chunk_range
|
98
|
+
diff = <<-DIFF.unindent
|
99
|
+
--- /tmp/old.txt 2011-06-01 14:18:37.000000000 -0500
|
100
|
+
+++ /tmp/new.txt 2011-06-01 14:18:38.000000000 -0500
|
101
|
+
@@ -0,0 +1 @@
|
102
|
+
+ IFrame
|
103
|
+
DIFF
|
104
|
+
@diff = UnifiedDiff.parse(diff)
|
105
|
+
@chunk = @diff.chunks.first
|
106
|
+
assert_equal (1...2), @chunk.modified_range
|
107
|
+
end
|
96
108
|
end
|
data/unified_diff.gemspec
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: unified_diff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.3.
|
5
|
+
version: 0.3.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Ryan Neufeld
|
@@ -95,7 +95,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
95
95
|
requirements:
|
96
96
|
- - ">="
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
hash: -
|
98
|
+
hash: -1091492518955260007
|
99
99
|
segments:
|
100
100
|
- 0
|
101
101
|
version: "0"
|