water 0.6.0 → 0.7.0
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/Rakefile +1 -1
- data/assets/water.css +50 -0
- data/lib/water.rb +10 -61
- data/readme.textile +19 -5
- data/water.gemspec +2 -2
- metadata +19 -14
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YmE0MDQ1M2JmNWQ2ZjlkYTQ5YWY2NWZmYTgyNGI3NzdmMmVkODk4MA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZTY3NzZlZGJmNjQwN2U1ODFlMDc4MTBkMTFkMjA4MjRjOWJjMjU3Yg==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OWVkMTdhZDMzY2ZmN2ZiNjY5NWEyMWUwYzk1ZDM0ZWMxMjM1MzZlNWQ1OTNl
|
10
|
+
M2QwODE3OTlhMTg2NGI3MjdmZmFiMmY0ODY5MzZlYWUwOTRjODY1ODMxYmFm
|
11
|
+
MDA4YmZlOGJiMTQwYWQ2YjQ4ZDM3YjYwZWE0NWEyNDUxOTI0YzA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZTE2NTg1N2NiYmI4M2M5ODBiMjc0MDhlNmQzYWUzODdhOGViODE1OWRiNGRk
|
14
|
+
MmE1MDFkOWQyODlkMmFiODg4M2YyMDJhM2E4NDg2NzM2ZGE5OTkzZTg3YTE1
|
15
|
+
ODAzN2FmYjk2ZWI1MDE0N2E2MzU5MjUzNTdhMTdkODFiNjAxNzU=
|
data/Rakefile
CHANGED
data/assets/water.css
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
body {
|
2
|
+
background: gray;
|
3
|
+
padding-bottom: 1000px;
|
4
|
+
}
|
5
|
+
body > a {
|
6
|
+
display: block;
|
7
|
+
position: fixed;
|
8
|
+
top: 0;
|
9
|
+
right: 0;
|
10
|
+
background: gray;
|
11
|
+
color: white;
|
12
|
+
padding: 5px 10px;
|
13
|
+
font-family: monospace;
|
14
|
+
font-weight: bold;
|
15
|
+
text-decoration: none;
|
16
|
+
}
|
17
|
+
body > a:hover {
|
18
|
+
text-decoration: underline;
|
19
|
+
}
|
20
|
+
|
21
|
+
.diff-block {
|
22
|
+
background: hsl(0,0%,95%);
|
23
|
+
margin: 5px;
|
24
|
+
margin-bottom: 0;
|
25
|
+
padding: 3px 6px;
|
26
|
+
overflow-y: visible;
|
27
|
+
overflow-x: auto;
|
28
|
+
-webkit-transition: 0.3s;
|
29
|
+
-moz-transition: 0.3s;
|
30
|
+
transition: 0.3s;
|
31
|
+
}
|
32
|
+
.diff-block.closed {
|
33
|
+
margin-top: -5px;
|
34
|
+
overflow: hidden;
|
35
|
+
}
|
36
|
+
.diff-block:first-of-type.closed {
|
37
|
+
margin-top: 0;
|
38
|
+
}
|
39
|
+
|
40
|
+
.CodeRay pre {
|
41
|
+
width: -moz-fit-content;
|
42
|
+
line-height: 15px;
|
43
|
+
}
|
44
|
+
.CodeRay .line {
|
45
|
+
float: none;
|
46
|
+
height: 15px;
|
47
|
+
}
|
48
|
+
.diff-block-content .CodeRay .line {
|
49
|
+
margin-bottom: -15px;
|
50
|
+
}
|
data/lib/water.rb
CHANGED
@@ -5,7 +5,9 @@ require 'coderay'
|
|
5
5
|
require 'launchy'
|
6
6
|
|
7
7
|
class Water
|
8
|
-
DIFF_DIR_NAME
|
8
|
+
DIFF_DIR_NAME = Pathname.new('~/.water').expand_path
|
9
|
+
|
10
|
+
CSS = File.read(File.expand_path('../../assets/water.css', __FILE__))
|
9
11
|
|
10
12
|
def self.run
|
11
13
|
new.run
|
@@ -44,7 +46,7 @@ class Water
|
|
44
46
|
end
|
45
47
|
|
46
48
|
def water diff
|
47
|
-
output = diff.gsub(/\r\n?/, "\n").scan(/ (?> ^(?!-(
|
49
|
+
output = diff.gsub(/\r\n?/, "\n").scan(/ (?> ^(?!-(?!--\ )|\+(?!\+\+)|[\\ ]|$|@@) .*\n)* (?> ^(?=-(?!--\ )|\+(?!\+\+)|[\\ ]|$|@@) .*(?:\n|\z))+ /x).map do |block|
|
48
50
|
head_ray, content_ray = CodeRay.scanner(:diff).tokenize(block.split("\n", 2))
|
49
51
|
content_ray ||= ''
|
50
52
|
|
@@ -58,80 +60,27 @@ class Water
|
|
58
60
|
|
59
61
|
output.extend(CodeRay::Encoders::HTML::Output)
|
60
62
|
output.css = CodeRay::Encoders::HTML::CSS.new(:alpha)
|
61
|
-
|
62
|
-
output.css.stylesheet << <<-CSS
|
63
|
-
|
64
|
-
body {
|
65
|
-
background: gray;
|
66
|
-
padding-bottom: 1000px;
|
67
|
-
}
|
68
|
-
body > a {
|
69
|
-
display: block;
|
70
|
-
position: fixed;
|
71
|
-
top: 0;
|
72
|
-
right: 0;
|
73
|
-
background: gray;
|
74
|
-
color: white;
|
75
|
-
padding: 5px 10px;
|
76
|
-
font-family: monospace;
|
77
|
-
font-weight: bold;
|
78
|
-
text-decoration: none;
|
79
|
-
}
|
80
|
-
body > a:hover {
|
81
|
-
text-decoration: underline;
|
82
|
-
}
|
83
|
-
|
84
|
-
.diff-block {
|
85
|
-
background: hsl(0,0%,95%);
|
86
|
-
margin: 5px;
|
87
|
-
margin-bottom: 0;
|
88
|
-
padding: 3px 6px;
|
89
|
-
overflow-y: visible;
|
90
|
-
overflow-x: auto;
|
91
|
-
-webkit-transition: 0.3s;
|
92
|
-
-moz-transition: 0.3s;
|
93
|
-
transition: 0.3s;
|
94
|
-
}
|
95
|
-
.diff-block.closed {
|
96
|
-
margin-top: -5px;
|
97
|
-
overflow: hidden;
|
98
|
-
}
|
99
|
-
.diff-block:first-of-type.closed {
|
100
|
-
margin-top: 0;
|
101
|
-
}
|
102
|
-
|
103
|
-
.CodeRay pre {
|
104
|
-
width: -moz-fit-content;
|
105
|
-
line-height: 15px;
|
106
|
-
}
|
107
|
-
.CodeRay .line {
|
108
|
-
float: none;
|
109
|
-
height: 15px;
|
110
|
-
}
|
111
|
-
.diff-block-content .CodeRay .line {
|
112
|
-
margin-bottom: -15px;
|
113
|
-
}
|
114
|
-
CSS
|
63
|
+
output.css.stylesheet << Water::CSS
|
115
64
|
|
116
65
|
output.wrap_in! CodeRay::Encoders::HTML::Output.page_template_for_css(output.css)
|
117
66
|
output.apply_title! "diff #{Dir.pwd} | water"
|
118
67
|
|
119
68
|
output[/<\/head>\s*<body[^>]*>?/] = <<-JS
|
120
|
-
<script src="
|
69
|
+
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
|
121
70
|
<script>
|
122
71
|
$(function () {
|
123
|
-
$(
|
72
|
+
$(document).on('click', '.diff-block', function () {
|
124
73
|
$(this).toggleClass('closed').find('.diff-block-content').slideToggle('fast');
|
125
74
|
$('html, body').animate({ scrollTop: $(this).offset().top }, 'fast');
|
126
75
|
});
|
127
|
-
$(
|
76
|
+
$(document).on('touchend', '.diff-block', function () {
|
128
77
|
$(this).toggleClass('closed').find('.diff-block-content').slideToggle('fast');
|
129
78
|
$('html, body').animate({ scrollTop: $(this).offset().top }, 'fast');
|
130
79
|
});
|
131
|
-
$('a.toggle-all'
|
80
|
+
$(document).on('click', 'a.toggle-all', function () {
|
132
81
|
$('.diff-block').toggleClass('closed').find('.diff-block-content').toggle();
|
133
82
|
});
|
134
|
-
})
|
83
|
+
});
|
135
84
|
</script>
|
136
85
|
</head>
|
137
86
|
|
data/readme.textile
CHANGED
@@ -1,14 +1,28 @@
|
|
1
1
|
h1. Water
|
2
2
|
|
3
|
-
Water takes a unified diff
|
3
|
+
Water takes a unified diff and opens it in your browser – nicely formatted.
|
4
|
+
|
5
|
+
p=. !http://cl.ly/Cdh8!
|
6
|
+
|
7
|
+
h2. Features
|
8
|
+
|
9
|
+
* syntax colors (CodeRay)
|
10
|
+
* highlighting of in-line changes ("eye-catchers")
|
11
|
+
* toggle files with a click
|
4
12
|
|
5
13
|
h2. Usage
|
6
|
-
|
7
|
-
bc.
|
14
|
+
|
15
|
+
bc. git diff | water
|
16
|
+
|
17
|
+
bc. svn diff -rPREV:HEAD | water
|
18
|
+
|
19
|
+
bc. diff -wu | water
|
20
|
+
|
21
|
+
p. …et cetera.
|
8
22
|
|
9
23
|
h2. Installation
|
10
24
|
|
11
25
|
bc. gem install water
|
12
26
|
|
13
|
-
This will install a
|
14
|
-
and launchy (along with its dependencies)
|
27
|
+
This will install a latest version of CodeRay,
|
28
|
+
and launchy (along with its dependencies) for cross-platform browser opening.
|
data/water.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "water"
|
6
|
-
s.version = '0.
|
6
|
+
s.version = '0.7.0'
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.authors = ["Kornelius Kalnbach"]
|
9
9
|
s.email = ["murphy@rubychan.de"]
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.summary = "diff viewer with code highlighting"
|
12
12
|
s.description = "The diff washing machine. See your code changes clearly."
|
13
13
|
|
14
|
-
s.add_dependency "coderay", '~> 1.0.
|
14
|
+
s.add_dependency "coderay", '~> 1.0.7'
|
15
15
|
s.add_dependency "launchy", '~> 2.0.0'
|
16
16
|
|
17
17
|
s.files = `git ls-files`.split("\n")
|
metadata
CHANGED
@@ -1,38 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: water
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.7.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Kornelius Kalnbach
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-10-03 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: coderay
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.0.
|
19
|
+
version: 1.0.7
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.7
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: launchy
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
31
|
- - ~>
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: 2.0.0
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.0.0
|
36
41
|
description: The diff washing machine. See your code changes clearly.
|
37
42
|
email:
|
38
43
|
- murphy@rubychan.de
|
@@ -46,32 +51,32 @@ files:
|
|
46
51
|
- Gemfile
|
47
52
|
- LICENSE.txt
|
48
53
|
- Rakefile
|
54
|
+
- assets/water.css
|
49
55
|
- bin/water
|
50
56
|
- lib/water.rb
|
51
57
|
- readme.textile
|
52
58
|
- water.gemspec
|
53
59
|
homepage: http://water.rubychan.de
|
54
60
|
licenses: []
|
61
|
+
metadata: {}
|
55
62
|
post_install_message:
|
56
63
|
rdoc_options: []
|
57
64
|
require_paths:
|
58
65
|
- lib
|
59
66
|
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
-
none: false
|
61
67
|
requirements:
|
62
68
|
- - ! '>='
|
63
69
|
- !ruby/object:Gem::Version
|
64
70
|
version: '0'
|
65
71
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
72
|
requirements:
|
68
73
|
- - ! '>='
|
69
74
|
- !ruby/object:Gem::Version
|
70
75
|
version: '0'
|
71
76
|
requirements: []
|
72
77
|
rubyforge_project:
|
73
|
-
rubygems_version:
|
78
|
+
rubygems_version: 2.0.7
|
74
79
|
signing_key:
|
75
|
-
specification_version:
|
80
|
+
specification_version: 4
|
76
81
|
summary: diff viewer with code highlighting
|
77
82
|
test_files: []
|