pretty_diff 0.8.1 → 0.9.1

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.1
1
+ 0.9.1
@@ -12,7 +12,7 @@ require 'cgi'
12
12
  # so that it doesn't interfere with the output.
13
13
  #
14
14
  class PrettyDiff::Diff
15
- CHUNK_REGEXP = /@@ .+ @@\n/
15
+ CHUNK_REGEXP = /^@@ .+ @@\n?/
16
16
 
17
17
  attr_reader :input, :options
18
18
 
@@ -7,22 +7,7 @@ class PrettyDiff::DiffGenerator
7
7
  end
8
8
 
9
9
  def generate
10
- chunks_html = diff.chunks.map{|c| c.to_html}.join(chunk_separator_html).to_s
11
- intro_html + chunks_html + outro_html
12
- end
13
-
14
- private
15
-
16
- def intro_html
17
- %Q[]
18
- end
19
-
20
- def chunk_separator_html
21
- %Q[]
22
- end
23
-
24
- def outro_html
25
- %Q[]
10
+ diff.chunks.map{|c| c.to_html}.to_s
26
11
  end
27
12
 
28
13
  end
@@ -7,7 +7,9 @@ class PrettyDiff::LineGenerator
7
7
  end
8
8
 
9
9
  def generate
10
- if line.added?
10
+ if line.modified?
11
+ modified_html(content)
12
+ elsif line.added?
11
13
  added_html(content)
12
14
  elsif line.deleted?
13
15
  deleted_html(content)
@@ -30,6 +32,10 @@ private
30
32
  end
31
33
  end
32
34
 
35
+ def modified_html(text)
36
+ wrapper_html { %Q[<span class="gm">#{text}</span>] }
37
+ end
38
+
33
39
  def added_html(text)
34
40
  wrapper_html { %Q[<span class="gi">#{text}</span>] }
35
41
  end
@@ -30,8 +30,7 @@ private
30
30
 
31
31
  def column_html(text)
32
32
  %Q[<div class="code-lines"><pre>
33
- #{text}
34
- </pre></div>]
33
+ #{text}</pre></div>]
35
34
  end
36
35
 
37
36
  end
@@ -3,6 +3,11 @@
3
3
  #
4
4
  class PrettyDiff::Line #:nodoc:
5
5
 
6
+ INLINE_INSERT_START = /\{\+/
7
+ INLINE_INSERT_END = /\+\}/
8
+ INLINE_DELETE_START = /\[-/
9
+ INLINE_DELETE_END = /-\]/
10
+
6
11
  attr_reader :diff, :input
7
12
 
8
13
  def initialize(diff, input)
@@ -16,10 +21,12 @@ class PrettyDiff::Line #:nodoc:
16
21
  end
17
22
 
18
23
  # Prepare Line contents for injection into HTML structure.
19
- # Currently used for replacing Tab symbols with spaces.
20
- # Return a string.
21
24
  def format
22
- input.gsub("\t", ' ')
25
+ input.gsub(INLINE_INSERT_START, '<ins>') \
26
+ .gsub(INLINE_INSERT_END, '</ins>') \
27
+ .gsub(INLINE_DELETE_START, '<del>') \
28
+ .gsub(INLINE_DELETE_END, '</del>') \
29
+ .gsub("\t", ' ')
23
30
  end
24
31
 
25
32
  # Unified Diff sometimes emit a special line at the end of the file
@@ -29,9 +36,11 @@ class PrettyDiff::Line #:nodoc:
29
36
  input =~ /\/
30
37
  end
31
38
 
32
- # Return status of the Line. Can be :added, :deleted or :not_modified.
39
+ # Return status of the Line. Can be :modified (for per-word diffing), :added, :deleted or :not_modified.
33
40
  def status
34
41
  case input
42
+ when /(#{ INLINE_DELETE_START }|#{ INLINE_INSERT_START })/
43
+ :modified
35
44
  when /^\+/
36
45
  :added
37
46
  when /^\-/
@@ -41,6 +50,10 @@ class PrettyDiff::Line #:nodoc:
41
50
  end
42
51
  end
43
52
 
53
+ def modified?
54
+ status == :modified
55
+ end
56
+
44
57
  def added?
45
58
  status == :added
46
59
  end
@@ -1,59 +1,57 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{pretty_diff}
8
- s.version = "0.8.1"
8
+ s.version = "0.9.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ilya Sabanin"]
12
- s.date = %q{2011-01-27}
12
+ s.date = %q{2012-04-18}
13
13
  s.description = %q{PrettyDiff is a highly customizable library for creating fully featured HTML
14
14
  listings out of unified diff format strings.
15
15
  Include copy/paste-safe line numbers and built-in syntax highlighting.}
16
16
  s.email = %q{ilya.sabanin@gmail.com}
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE",
19
- "README.rdoc"
19
+ "README.rdoc"
20
20
  ]
21
21
  s.files = [
22
22
  ".document",
23
- ".gitignore",
24
- "LICENSE",
25
- "README.rdoc",
26
- "Rakefile",
27
- "VERSION",
28
- "lib/pretty_diff.rb",
29
- "lib/pretty_diff/chunk.rb",
30
- "lib/pretty_diff/diff.rb",
31
- "lib/pretty_diff/html_generators/chunk_generator.rb",
32
- "lib/pretty_diff/html_generators/diff_generator.rb",
33
- "lib/pretty_diff/html_generators/line_generator.rb",
34
- "lib/pretty_diff/html_generators/line_numbers_generator.rb",
35
- "lib/pretty_diff/line.rb",
36
- "lib/pretty_diff/line_numbers.rb",
37
- "pretty_diff.gemspec",
38
- "test/chunk_test.rb",
39
- "test/data/first.diff",
40
- "test/data/second.diff",
41
- "test/diff_test.rb",
42
- "test/helper.rb",
43
- "test/html_generator_test.rb",
44
- "test/line_test.rb"
23
+ "LICENSE",
24
+ "README.rdoc",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "lib/pretty_diff.rb",
28
+ "lib/pretty_diff/chunk.rb",
29
+ "lib/pretty_diff/diff.rb",
30
+ "lib/pretty_diff/html_generators/chunk_generator.rb",
31
+ "lib/pretty_diff/html_generators/diff_generator.rb",
32
+ "lib/pretty_diff/html_generators/line_generator.rb",
33
+ "lib/pretty_diff/html_generators/line_numbers_generator.rb",
34
+ "lib/pretty_diff/line.rb",
35
+ "lib/pretty_diff/line_numbers.rb",
36
+ "pretty_diff.gemspec",
37
+ "test/chunk_test.rb",
38
+ "test/data/first.diff",
39
+ "test/data/second.diff",
40
+ "test/diff_test.rb",
41
+ "test/helper.rb",
42
+ "test/html_generator_test.rb",
43
+ "test/line_test.rb"
45
44
  ]
46
45
  s.homepage = %q{http://github.com/isabanin/pretty_diff}
47
- s.rdoc_options = ["--charset=UTF-8"]
48
46
  s.require_paths = ["lib"]
49
47
  s.rubygems_version = %q{1.3.7}
50
48
  s.summary = %q{Library for converting unified diff format into HTML listings.}
51
49
  s.test_files = [
52
50
  "test/chunk_test.rb",
53
- "test/diff_test.rb",
54
- "test/helper.rb",
55
- "test/html_generator_test.rb",
56
- "test/line_test.rb"
51
+ "test/diff_test.rb",
52
+ "test/helper.rb",
53
+ "test/html_generator_test.rb",
54
+ "test/line_test.rb"
57
55
  ]
58
56
 
59
57
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pretty_diff
3
3
  version: !ruby/object:Gem::Version
4
- hash: 61
4
+ hash: 57
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 8
8
+ - 9
9
9
  - 1
10
- version: 0.8.1
10
+ version: 0.9.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ilya Sabanin
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-27 00:00:00 +07:00
18
+ date: 2012-04-18 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -46,7 +46,6 @@ extra_rdoc_files:
46
46
  - README.rdoc
47
47
  files:
48
48
  - .document
49
- - .gitignore
50
49
  - LICENSE
51
50
  - README.rdoc
52
51
  - Rakefile
@@ -73,8 +72,8 @@ homepage: http://github.com/isabanin/pretty_diff
73
72
  licenses: []
74
73
 
75
74
  post_install_message:
76
- rdoc_options:
77
- - --charset=UTF-8
75
+ rdoc_options: []
76
+
78
77
  require_paths:
79
78
  - lib
80
79
  required_ruby_version: !ruby/object:Gem::Requirement
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC