daff 1.2.6 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -6
- data/bin/daff.rb +0 -0
- data/lib/daff.rb +6 -0
- data/lib/lib/coopy/alignment.rb +146 -169
- data/lib/lib/coopy/cell_builder.rb +1 -1
- data/lib/lib/coopy/cell_info.rb +2 -1
- data/lib/lib/coopy/column_change.rb +16 -0
- data/lib/lib/coopy/compare_flags.rb +33 -5
- data/lib/lib/coopy/compare_table.rb +219 -99
- data/lib/lib/coopy/coopy.rb +205 -99
- data/lib/lib/coopy/csv.rb +17 -22
- data/lib/lib/coopy/diff_render.rb +16 -8
- data/lib/lib/coopy/flat_cell_builder.rb +11 -8
- data/lib/lib/coopy/highlight_patch.rb +363 -63
- data/lib/lib/coopy/highlight_patch_unit.rb +1 -1
- data/lib/lib/coopy/index.rb +21 -8
- data/lib/lib/coopy/index_item.rb +7 -3
- data/lib/lib/coopy/index_pair.rb +13 -10
- data/lib/lib/coopy/merger.rb +3 -3
- data/lib/lib/coopy/meta.rb +17 -0
- data/lib/lib/coopy/mover.rb +7 -5
- data/lib/lib/coopy/ndjson.rb +2 -2
- data/lib/lib/coopy/nested_cell_builder.rb +7 -7
- data/lib/lib/coopy/ordering.rb +6 -2
- data/lib/lib/coopy/property_change.rb +16 -0
- data/lib/lib/coopy/row.rb +1 -0
- data/lib/lib/coopy/row_change.rb +42 -0
- data/lib/lib/coopy/row_stream.rb +11 -0
- data/lib/lib/coopy/simple_table.rb +84 -30
- data/lib/lib/coopy/simple_view.rb +8 -8
- data/lib/lib/coopy/sparse_sheet.rb +1 -1
- data/lib/lib/coopy/sql_column.rb +22 -10
- data/lib/lib/coopy/sql_compare.rb +397 -85
- data/lib/lib/coopy/sql_database.rb +2 -0
- data/lib/lib/coopy/sql_helper.rb +5 -0
- data/lib/lib/coopy/sql_table.rb +122 -19
- data/lib/lib/coopy/sql_table_name.rb +1 -1
- data/lib/lib/coopy/sqlite_helper.rb +250 -3
- data/lib/lib/coopy/table.rb +1 -0
- data/lib/lib/coopy/table_diff.rb +643 -464
- data/lib/lib/coopy/table_io.rb +19 -6
- data/lib/lib/coopy/table_modifier.rb +1 -1
- data/lib/lib/coopy/table_stream.rb +102 -0
- data/lib/lib/coopy/terminal_diff_render.rb +4 -3
- data/lib/lib/coopy/unit.rb +22 -2
- data/lib/lib/coopy/viterbi.rb +4 -4
- data/lib/lib/haxe/ds/int_map.rb +1 -1
- data/lib/lib/haxe/ds/string_map.rb +1 -1
- data/lib/lib/haxe/format/json_parser.rb +1 -1
- data/lib/lib/haxe/format/json_printer.rb +1 -1
- data/lib/lib/haxe/io/bytes.rb +2 -2
- data/lib/lib/haxe/io/eof.rb +1 -1
- data/lib/lib/haxe/io/output.rb +1 -1
- data/lib/lib/hx_overrides.rb +1 -1
- data/lib/lib/hx_sys.rb +9 -5
- data/lib/lib/lambda.rb +3 -3
- data/lib/lib/list.rb +1 -1
- data/lib/lib/rb/ruby_iterator.rb +2 -2
- data/lib/lib/reflect.rb +1 -1
- data/lib/lib/sys/io/file_output.rb +1 -1
- data/lib/lib/sys/io/hx_file.rb +1 -1
- data/lib/lib/x_list/list_iterator.rb +2 -2
- metadata +29 -25
- data/lib/lib/coopy/table_text.rb +0 -26
- data/lib/lib/haxe/io/bytes_buffer.rb +0 -19
- data/lib/lib/haxe/io/bytes_input.rb +0 -13
- data/lib/lib/haxe/io/bytes_output.rb +0 -33
- data/lib/lib/haxe/io/input.rb +0 -11
data/lib/lib/sys/io/hx_file.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: daff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Smith
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-09-18 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Diff and patch tables
|
15
15
|
email:
|
@@ -26,6 +26,7 @@ files:
|
|
26
26
|
- lib/lib/coopy/alignment.rb
|
27
27
|
- lib/lib/coopy/cell_builder.rb
|
28
28
|
- lib/lib/coopy/cell_info.rb
|
29
|
+
- lib/lib/coopy/column_change.rb
|
29
30
|
- lib/lib/coopy/compare_flags.rb
|
30
31
|
- lib/lib/coopy/compare_table.rb
|
31
32
|
- lib/lib/coopy/coopy.rb
|
@@ -39,11 +40,15 @@ files:
|
|
39
40
|
- lib/lib/coopy/index_item.rb
|
40
41
|
- lib/lib/coopy/index_pair.rb
|
41
42
|
- lib/lib/coopy/merger.rb
|
43
|
+
- lib/lib/coopy/meta.rb
|
42
44
|
- lib/lib/coopy/mover.rb
|
43
45
|
- lib/lib/coopy/ndjson.rb
|
44
46
|
- lib/lib/coopy/nested_cell_builder.rb
|
45
47
|
- lib/lib/coopy/ordering.rb
|
48
|
+
- lib/lib/coopy/property_change.rb
|
46
49
|
- lib/lib/coopy/row.rb
|
50
|
+
- lib/lib/coopy/row_change.rb
|
51
|
+
- lib/lib/coopy/row_stream.rb
|
47
52
|
- lib/lib/coopy/simple_table.rb
|
48
53
|
- lib/lib/coopy/simple_view.rb
|
49
54
|
- lib/lib/coopy/sparse_sheet.rb
|
@@ -59,7 +64,7 @@ files:
|
|
59
64
|
- lib/lib/coopy/table_diff.rb
|
60
65
|
- lib/lib/coopy/table_io.rb
|
61
66
|
- lib/lib/coopy/table_modifier.rb
|
62
|
-
- lib/lib/coopy/
|
67
|
+
- lib/lib/coopy/table_stream.rb
|
63
68
|
- lib/lib/coopy/terminal_diff_render.rb
|
64
69
|
- lib/lib/coopy/unit.rb
|
65
70
|
- lib/lib/coopy/view.rb
|
@@ -70,12 +75,8 @@ files:
|
|
70
75
|
- lib/lib/haxe/format/json_printer.rb
|
71
76
|
- lib/lib/haxe/imap.rb
|
72
77
|
- lib/lib/haxe/io/bytes.rb
|
73
|
-
- lib/lib/haxe/io/bytes_buffer.rb
|
74
|
-
- lib/lib/haxe/io/bytes_input.rb
|
75
|
-
- lib/lib/haxe/io/bytes_output.rb
|
76
78
|
- lib/lib/haxe/io/eof.rb
|
77
79
|
- lib/lib/haxe/io/error.rb
|
78
|
-
- lib/lib/haxe/io/input.rb
|
79
80
|
- lib/lib/haxe/io/output.rb
|
80
81
|
- lib/lib/hx_overrides.rb
|
81
82
|
- lib/lib/hx_sys.rb
|
@@ -102,17 +103,17 @@ require_paths:
|
|
102
103
|
- lib
|
103
104
|
required_ruby_version: !ruby/object:Gem::Requirement
|
104
105
|
requirements:
|
105
|
-
- -
|
106
|
+
- - '>='
|
106
107
|
- !ruby/object:Gem::Version
|
107
108
|
version: '0'
|
108
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
110
|
requirements:
|
110
|
-
- -
|
111
|
+
- - '>='
|
111
112
|
- !ruby/object:Gem::Version
|
112
113
|
version: '0'
|
113
114
|
requirements: []
|
114
115
|
rubyforge_project:
|
115
|
-
rubygems_version: 2.
|
116
|
+
rubygems_version: 2.4.8
|
116
117
|
signing_key:
|
117
118
|
specification_version: 4
|
118
119
|
summary: '[![Build Status](https://travis-ci.org/paulfitz/daff.svg?branch=master)](https://travis-ci.org/paulfitz/daff)
|
@@ -153,7 +154,7 @@ summary: '[![Build Status](https://travis-ci.org/paulfitz/daff.svg?branch=master
|
|
153
154
|
with git -------------- Run `daff git csv` to install daff as a diff and merge
|
154
155
|
handler for `*.csv` files in your repository. Run `daff git` for instructions on
|
155
156
|
doing this manually. Your CSV diffs and merges will get smarter, since git will
|
156
|
-
suddenly understand about rows and columns, not just lines: ![Example CSV diff](
|
157
|
+
suddenly understand about rows and columns, not just lines: ![Example CSV diff](http://paulfitz.github.io/daff-doc/images/daff_vs_diff.png) The
|
157
158
|
library ----------- You can use `daff` as a library from any supported language. We
|
158
159
|
take here the example of Javascript. To use `daff` on a webpage, first include
|
159
160
|
`daff.js`: ```html <script src="daff.js"></script> ``` Or if using node outside
|
@@ -183,30 +184,33 @@ summary: '[![Build Status](https://travis-ci.org/paulfitz/daff.svg?branch=master
|
|
183
184
|
how to apply that difference as a patch: ```js var patcher = new daff.HighlightPatch(table1,table_diff);
|
184
185
|
patcher.apply(); // table1 should now equal table2 ``` For other languages, you
|
185
186
|
should find sample code in the packages on the [Releases](https://github.com/paulfitz/daff/releases)
|
186
|
-
page.
|
187
|
+
page. Supported languages ------------------- The `daff` library is written in
|
187
188
|
[Haxe](http://haxe.org/), which can be translated reasonably well into at least
|
188
189
|
the following languages: * Javascript * Python * Java * C# * C++ * Ruby (using
|
189
190
|
an [unofficial haxe target](https://github.com/paulfitz/haxe) developed for `daff`) *
|
190
191
|
PHP Some translations are done for you on the [Releases](https://github.com/paulfitz/daff/releases)
|
191
|
-
page. To make another translation,
|
192
|
-
for the language you care about
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
192
|
+
page. To make another translation, or to compile from source first follow the [Haxe
|
193
|
+
getting started tutorial](http://haxe.org/doc/start) for the language you care about. At
|
194
|
+
the time of writing, if you are on OSX, you should install haxe using `brew install
|
195
|
+
haxe --HEAD`. Then do one of: ``` make js make php make py make java make cs make
|
196
|
+
cpp ``` For each language, the `daff` library expects to be handed an interface
|
197
|
+
to tables you create, rather than creating them itself. This is to avoid inefficient
|
198
|
+
copies from one format to another. You''ll find a `SimpleTable` class you can use
|
199
|
+
if you find this awkward. Other possibilities: * There''s a daff wrapper for R
|
200
|
+
written by [Edwin de Jonge](https://github.com/edwindj), see https://github.com/edwindj/daff
|
201
|
+
and http://cran.r-project.org/web/packages/daff * There''s a hand-written ruby port
|
202
|
+
by [James Smith](https://github.com/Floppy), see https://github.com/theodi/coopy-ruby API
|
203
|
+
documentation ----------------- * You can browse the `daff` classes at http://paulfitz.github.io/daff-doc/ Sponsors
|
202
204
|
-------- The [Data Commons Co-op](http://datacommons.coop), "perhaps the geekiest
|
203
205
|
of all cooperative organizations on the planet," has given great moral support during
|
204
206
|
the initial development of `daff`. There''s currently no financial support for `daff`.
|
205
207
|
You could change that! [![tips](https://img.shields.io/gratipay/paulfitz.svg)](https://gratipay.com/paulfitz/) Reading
|
206
208
|
material ---------------- * http://dataprotocols.org/tabular-diff-format/ : a specification
|
207
209
|
of the diff format we use. * http://theodi.org/blog/csvhub-github-diffs-for-csv-files
|
208
|
-
: using this library with github. *
|
209
|
-
:
|
210
|
+
: using this library with github. * https://github.com/ropensci/unconf/issues/19
|
211
|
+
: a thread about diffing data in which daff shows up in at least four guises (see
|
212
|
+
if you can spot them all). * http://theodi.org/blog/adapting-git-simple-data : using
|
213
|
+
this library with gitlab. * http://okfnlabs.org/blog/2013/08/08/diffing-and-patching-data.html
|
210
214
|
: a summary of where the library came from. * http://blog.okfn.org/2013/07/02/git-and-github-for-data/
|
211
215
|
: a post about storing small data in git/github. * http://blog.ouseful.info/2013/08/27/diff-or-chop-github-csv-data-files-and-openrefine/
|
212
216
|
: counterpoint - a post discussing tracked-changes rather than diffs. ## License daff
|
data/lib/lib/coopy/table_text.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# encoding: utf-8
|
3
|
-
|
4
|
-
module Coopy
|
5
|
-
class TableText
|
6
|
-
|
7
|
-
def initialize(tab)
|
8
|
-
@tab = tab
|
9
|
-
@view = tab.get_cell_view
|
10
|
-
end
|
11
|
-
|
12
|
-
protected
|
13
|
-
|
14
|
-
attr_accessor :tab
|
15
|
-
attr_accessor :view
|
16
|
-
|
17
|
-
public
|
18
|
-
|
19
|
-
def get_cell_text(x,y)
|
20
|
-
return @view.to_s(@tab.get_cell(x,y))
|
21
|
-
end
|
22
|
-
|
23
|
-
haxe_me
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# encoding: utf-8
|
3
|
-
|
4
|
-
module Haxe
|
5
|
-
module Io
|
6
|
-
class BytesBuffer
|
7
|
-
|
8
|
-
# protected - in ruby this doesn't play well with static/inline methods
|
9
|
-
|
10
|
-
attr_accessor :b
|
11
|
-
|
12
|
-
public
|
13
|
-
|
14
|
-
attr_accessor :length
|
15
|
-
haxe_me
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# encoding: utf-8
|
3
|
-
|
4
|
-
module Haxe
|
5
|
-
module Io
|
6
|
-
class BytesOutput < ::Haxe::Io::Output
|
7
|
-
|
8
|
-
# protected - in ruby this doesn't play well with static/inline methods
|
9
|
-
|
10
|
-
attr_accessor :b
|
11
|
-
|
12
|
-
public
|
13
|
-
|
14
|
-
attr_accessor :length
|
15
|
-
|
16
|
-
def write_byte(c)
|
17
|
-
@b.b.concat(c)
|
18
|
-
end
|
19
|
-
|
20
|
-
|
21
|
-
def write_bytes(buf,pos,len)
|
22
|
-
begin
|
23
|
-
raise hx_raise(::Haxe::Io::Error.outside_bounds) if pos < 0 || len < 0 || pos + len > buf.length
|
24
|
-
@b.b += buf.b.byteslice(pos,len)
|
25
|
-
end
|
26
|
-
return len
|
27
|
-
end
|
28
|
-
|
29
|
-
haxe_me
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|