daff 1.2.6 → 1.3.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.
- 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: '[](https://travis-ci.org/paulfitz/daff)
|
@@ -153,7 +154,7 @@ summary: '[ 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: '[;
|
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! [](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
|