unified_diff 0.3.3 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +34 -5
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/lib/unified_diff/chunk.rb +12 -1
- data/lib/unified_diff/diff.rb +3 -0
- data/test/test_chunk.rb +6 -1
- data/test/test_unified_diff.rb +21 -0
- data/unified_diff.gemspec +9 -8
- metadata +7 -18
checksums.yaml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
!binary "U0hBMQ==":
|
|
3
|
+
metadata.gz: !binary |-
|
|
4
|
+
YTRlODc4Y2U4MWM2M2EwM2ZkMDFlNWNhZjBkZmM4NWE0ZjNlNDI0Mw==
|
|
5
|
+
data.tar.gz: !binary |-
|
|
6
|
+
Y2IyY2EzOTY1NjVlZDVhODRkMWVkOWQ4ZjZlOTIwYWZkMmIzZWExMA==
|
|
7
|
+
SHA512:
|
|
8
|
+
metadata.gz: !binary |-
|
|
9
|
+
ODk5MjgyMjQ1MzRlOTgwODcxNjM4ZWQ2YmRiYmIzMjMzMjcxZjg0MTRmMmI0
|
|
10
|
+
MDlkYmUwNDcyZGNmOTkzNjRmYWU3YTJlZjNhM2Q4NDRlMjNkMjliY2ZlNDI5
|
|
11
|
+
M2I5YmQ0N2NlNTEzMGE3ZjIyMjBjZjlhYjUzMTRiN2JlNTEwYTQ=
|
|
12
|
+
data.tar.gz: !binary |-
|
|
13
|
+
ZWQ0NGJiMzBkNDAyZTBhYWYxNDljYTNjZjlkNDQwNTViMTdkZDY0NjU4Y2Ux
|
|
14
|
+
ZGVhYTE1YTBiNjAxZWI5NzY3ODgzY2EzMzk2MGMxZjhlNDcxYmE0NWRjNmJm
|
|
15
|
+
MGIxMjIzMjA5MDY1ZTczY2M5YjA4Nzc3YTFiYzgzNDRhZGIxZDU=
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,14 +1,43 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
addressable (2.3.5)
|
|
5
|
+
builder (3.2.2)
|
|
6
|
+
faraday (0.7.6)
|
|
7
|
+
addressable (~> 2.2)
|
|
8
|
+
multipart-post (~> 1.1)
|
|
9
|
+
rack (~> 1.1)
|
|
10
|
+
git (1.2.6)
|
|
11
|
+
github_api (0.4.10)
|
|
12
|
+
faraday (~> 0.7.6)
|
|
13
|
+
hashie (~> 1.2.0)
|
|
14
|
+
multi_json (~> 1.0)
|
|
15
|
+
oauth2 (~> 0.5.2)
|
|
16
|
+
hashie (1.2.0)
|
|
17
|
+
highline (1.6.21)
|
|
18
|
+
jeweler (2.0.1)
|
|
19
|
+
builder
|
|
20
|
+
bundler (>= 1.0)
|
|
7
21
|
git (>= 1.2.5)
|
|
22
|
+
github_api
|
|
23
|
+
highline (>= 1.6.15)
|
|
24
|
+
nokogiri (>= 1.5.10)
|
|
8
25
|
rake
|
|
26
|
+
rdoc
|
|
27
|
+
json (1.8.1)
|
|
28
|
+
mini_portile (0.5.2)
|
|
9
29
|
minitest (3.4.0)
|
|
10
30
|
multi_json (1.3.6)
|
|
11
|
-
|
|
31
|
+
multipart-post (1.2.0)
|
|
32
|
+
nokogiri (1.6.1)
|
|
33
|
+
mini_portile (~> 0.5.0)
|
|
34
|
+
oauth2 (0.5.2)
|
|
35
|
+
faraday (~> 0.7)
|
|
36
|
+
multi_json (~> 1.0)
|
|
37
|
+
rack (1.5.2)
|
|
38
|
+
rake (10.1.1)
|
|
39
|
+
rdoc (4.1.1)
|
|
40
|
+
json (~> 1.4)
|
|
12
41
|
simplecov (0.6.4)
|
|
13
42
|
multi_json (~> 1.0)
|
|
14
43
|
simplecov-html (~> 0.5.3)
|
|
@@ -18,6 +47,6 @@ PLATFORMS
|
|
|
18
47
|
ruby
|
|
19
48
|
|
|
20
49
|
DEPENDENCIES
|
|
21
|
-
jeweler (~>
|
|
50
|
+
jeweler (~> 2.0.1)
|
|
22
51
|
minitest
|
|
23
52
|
simplecov
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.
|
|
1
|
+
0.3.4
|
data/lib/unified_diff/chunk.rb
CHANGED
|
@@ -58,7 +58,7 @@ module UnifiedDiff
|
|
|
58
58
|
@raw_lines.select {|line| types.include?(line[0])}.map {|line| line[1..-1]}
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
# Insert a new addition line into the list of lines for this chunk
|
|
62
62
|
#
|
|
63
63
|
# @param [String] the line to be inserted (without '+' tag)
|
|
64
64
|
# @return [Array] the new list of raw lines
|
|
@@ -82,5 +82,16 @@ module UnifiedDiff
|
|
|
82
82
|
@raw_lines << " #{line}"
|
|
83
83
|
end
|
|
84
84
|
|
|
85
|
+
# Insert a no newline at end of file line into the list of lines for this
|
|
86
|
+
# chunk
|
|
87
|
+
#
|
|
88
|
+
# http://www.gnu.org/software/diffutils/manual/html_node/Incomplete-Lines.html
|
|
89
|
+
#
|
|
90
|
+
# @param [String] the line to be inserted (without '\' tag)
|
|
91
|
+
# @return [Array] the new list of raw lines
|
|
92
|
+
def insert_no_newline_at_eof(line)
|
|
93
|
+
@raw_lines << "\\#{line}"
|
|
94
|
+
end
|
|
95
|
+
|
|
85
96
|
end
|
|
86
97
|
end
|
data/lib/unified_diff/diff.rb
CHANGED
|
@@ -24,6 +24,7 @@ module UnifiedDiff
|
|
|
24
24
|
ADDED_PATTERN = /^\+(.*)/
|
|
25
25
|
REMOVED_PATTERN = /^-(.*)/
|
|
26
26
|
UNCHANGED_PATTERN = /^ (.*)/
|
|
27
|
+
NO_NEWLINE_PATTERN = /^\\(\s+No\s+newline\s+at\s+end\s+of\s+file)$/
|
|
27
28
|
|
|
28
29
|
# Create and parse a unified diff
|
|
29
30
|
#
|
|
@@ -74,6 +75,8 @@ module UnifiedDiff
|
|
|
74
75
|
@working_chunk.send(:insert_removal, $1)
|
|
75
76
|
when UNCHANGED_PATTERN
|
|
76
77
|
@working_chunk.send(:insert_unchanged, $1)
|
|
78
|
+
when NO_NEWLINE_PATTERN
|
|
79
|
+
@working_chunk.send(:insert_no_newline_at_eof, $1)
|
|
77
80
|
else
|
|
78
81
|
raise UnifiedDiffException.new("Unknown Line Type for Line:\n#{line}")
|
|
79
82
|
end
|
data/test/test_chunk.rb
CHANGED
|
@@ -14,13 +14,15 @@ class TestChunk < MiniTest::Unit::TestCase
|
|
|
14
14
|
@chunk.send(:insert_unchanged,"foo")
|
|
15
15
|
@chunk.send(:insert_addition, "bar")
|
|
16
16
|
@chunk.send(:insert_removal, "baz")
|
|
17
|
-
|
|
17
|
+
@chunk.send(:insert_no_newline_at_eof, "noel")
|
|
18
|
+
assert_equal [" foo","+bar","-baz", "\\noel"], @chunk.raw_lines
|
|
18
19
|
end
|
|
19
20
|
|
|
20
21
|
def test_original_lines
|
|
21
22
|
@chunk.send(:insert_unchanged,"foo")
|
|
22
23
|
@chunk.send(:insert_removal,"bar")
|
|
23
24
|
@chunk.send(:insert_addition,"baz")
|
|
25
|
+
@chunk.send(:insert_no_newline_at_eof, "noel")
|
|
24
26
|
assert_equal %w{foo bar}, @chunk.original_lines
|
|
25
27
|
end
|
|
26
28
|
|
|
@@ -28,18 +30,21 @@ class TestChunk < MiniTest::Unit::TestCase
|
|
|
28
30
|
@chunk.send(:insert_unchanged,"foo")
|
|
29
31
|
@chunk.send(:insert_removal,"bar")
|
|
30
32
|
@chunk.send(:insert_addition,"baz")
|
|
33
|
+
@chunk.send(:insert_no_newline_at_eof, "noel")
|
|
31
34
|
assert_equal %w{foo baz}, @chunk.modified_lines
|
|
32
35
|
end
|
|
33
36
|
|
|
34
37
|
def test_removed_lines
|
|
35
38
|
@chunk.send(:insert_removal,'foo')
|
|
36
39
|
@chunk.send(:insert_unchanged, 'bar')
|
|
40
|
+
@chunk.send(:insert_no_newline_at_eof, "noel")
|
|
37
41
|
assert_equal ['foo'], @chunk.removed_lines
|
|
38
42
|
end
|
|
39
43
|
|
|
40
44
|
def test_added_lines
|
|
41
45
|
@chunk.send(:insert_addition,'foo')
|
|
42
46
|
@chunk.send(:insert_unchanged, 'bar')
|
|
47
|
+
@chunk.send(:insert_no_newline_at_eof, "noel")
|
|
43
48
|
assert_equal ['foo'], @chunk.added_lines
|
|
44
49
|
end
|
|
45
50
|
|
data/test/test_unified_diff.rb
CHANGED
|
@@ -204,4 +204,25 @@ class TestUnifiedDiff < MiniTest::Unit::TestCase
|
|
|
204
204
|
assert_equal (5...12), @chunk.original_range
|
|
205
205
|
assert_equal (5...12), @chunk.modified_range
|
|
206
206
|
end
|
|
207
|
+
|
|
208
|
+
def test_no_newline_at_eof
|
|
209
|
+
header = <<-HEADER.unindent
|
|
210
|
+
--- a 2014-02-26 16:19:13.000000000 -0800
|
|
211
|
+
+++ b 2014-02-26 16:19:13.000000000 -0800
|
|
212
|
+
HEADER
|
|
213
|
+
|
|
214
|
+
chunk = <<-'CHUNK'.unindent
|
|
215
|
+
@@ -1,1 +1,1 @@
|
|
216
|
+
-noel
|
|
217
|
+
|
|
218
|
+
+noll
|
|
219
|
+
|
|
220
|
+
CHUNK
|
|
221
|
+
|
|
222
|
+
@diff = UnifiedDiff.parse(header + chunk)
|
|
223
|
+
@chunk = @diff.chunks.first
|
|
224
|
+
assert_equal chunk, @chunk.to_s
|
|
225
|
+
assert_equal ["noel"], @chunk.original_lines
|
|
226
|
+
assert_equal ["noll"], @chunk.modified_lines
|
|
227
|
+
end
|
|
207
228
|
end
|
data/unified_diff.gemspec
CHANGED
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
+
# stub: unified_diff 0.3.4 ruby lib
|
|
5
6
|
|
|
6
7
|
Gem::Specification.new do |s|
|
|
7
8
|
s.name = "unified_diff"
|
|
8
|
-
s.version = "0.3.
|
|
9
|
+
s.version = "0.3.4"
|
|
9
10
|
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
12
|
+
s.require_paths = ["lib"]
|
|
11
13
|
s.authors = ["Ryan Neufeld"]
|
|
12
|
-
s.date = "
|
|
14
|
+
s.date = "2014-03-12"
|
|
13
15
|
s.description = "unified_diff parses unified diff contents into easy-to-use Ruby objects"
|
|
14
16
|
s.email = "ryan@ryanneufeld.ca"
|
|
15
17
|
s.extra_rdoc_files = [
|
|
@@ -34,25 +36,24 @@ Gem::Specification.new do |s|
|
|
|
34
36
|
]
|
|
35
37
|
s.homepage = "http://github.com/rkneufeld/unified_diff"
|
|
36
38
|
s.licenses = ["MIT"]
|
|
37
|
-
s.
|
|
38
|
-
s.rubygems_version = "1.8.24"
|
|
39
|
+
s.rubygems_version = "2.2.2"
|
|
39
40
|
s.summary = "Parse unified diffs in style"
|
|
40
41
|
|
|
41
42
|
if s.respond_to? :specification_version then
|
|
42
|
-
s.specification_version =
|
|
43
|
+
s.specification_version = 4
|
|
43
44
|
|
|
44
45
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
45
46
|
s.add_development_dependency(%q<minitest>, [">= 0"])
|
|
46
|
-
s.add_development_dependency(%q<jeweler>, ["~>
|
|
47
|
+
s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
|
|
47
48
|
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
|
48
49
|
else
|
|
49
50
|
s.add_dependency(%q<minitest>, [">= 0"])
|
|
50
|
-
s.add_dependency(%q<jeweler>, ["~>
|
|
51
|
+
s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
|
|
51
52
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
52
53
|
end
|
|
53
54
|
else
|
|
54
55
|
s.add_dependency(%q<minitest>, [">= 0"])
|
|
55
|
-
s.add_dependency(%q<jeweler>, ["~>
|
|
56
|
+
s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
|
|
56
57
|
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
57
58
|
end
|
|
58
59
|
end
|
metadata
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: unified_diff
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 0.3.4
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Ryan Neufeld
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 2014-03-12 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: minitest
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
17
|
- - ! '>='
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
@@ -22,7 +20,6 @@ dependencies:
|
|
|
22
20
|
type: :development
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
24
|
- - ! '>='
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
@@ -30,23 +27,20 @@ dependencies:
|
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
|
31
28
|
name: jeweler
|
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
30
|
requirements:
|
|
35
31
|
- - ~>
|
|
36
32
|
- !ruby/object:Gem::Version
|
|
37
|
-
version:
|
|
33
|
+
version: 2.0.1
|
|
38
34
|
type: :development
|
|
39
35
|
prerelease: false
|
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
37
|
requirements:
|
|
43
38
|
- - ~>
|
|
44
39
|
- !ruby/object:Gem::Version
|
|
45
|
-
version:
|
|
40
|
+
version: 2.0.1
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
|
47
42
|
name: simplecov
|
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
44
|
requirements:
|
|
51
45
|
- - ! '>='
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
@@ -54,7 +48,6 @@ dependencies:
|
|
|
54
48
|
type: :development
|
|
55
49
|
prerelease: false
|
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
51
|
requirements:
|
|
59
52
|
- - ! '>='
|
|
60
53
|
- !ruby/object:Gem::Version
|
|
@@ -84,29 +77,25 @@ files:
|
|
|
84
77
|
homepage: http://github.com/rkneufeld/unified_diff
|
|
85
78
|
licenses:
|
|
86
79
|
- MIT
|
|
80
|
+
metadata: {}
|
|
87
81
|
post_install_message:
|
|
88
82
|
rdoc_options: []
|
|
89
83
|
require_paths:
|
|
90
84
|
- lib
|
|
91
85
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
92
|
-
none: false
|
|
93
86
|
requirements:
|
|
94
87
|
- - ! '>='
|
|
95
88
|
- !ruby/object:Gem::Version
|
|
96
89
|
version: '0'
|
|
97
|
-
segments:
|
|
98
|
-
- 0
|
|
99
|
-
hash: -685931603
|
|
100
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
|
-
none: false
|
|
102
91
|
requirements:
|
|
103
92
|
- - ! '>='
|
|
104
93
|
- !ruby/object:Gem::Version
|
|
105
94
|
version: '0'
|
|
106
95
|
requirements: []
|
|
107
96
|
rubyforge_project:
|
|
108
|
-
rubygems_version:
|
|
97
|
+
rubygems_version: 2.2.2
|
|
109
98
|
signing_key:
|
|
110
|
-
specification_version:
|
|
99
|
+
specification_version: 4
|
|
111
100
|
summary: Parse unified diffs in style
|
|
112
101
|
test_files: []
|