daff 1.3.6 → 1.3.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 56cd28220d87d43853faf7c8133eb23dcd7fc0b3
4
- data.tar.gz: 0c14ac8d72f5f3348fe5b6b73c804a30364981f1
3
+ metadata.gz: fe5ac7c2439b43f603b802861b9e04b04f1c2773
4
+ data.tar.gz: 7d2bd90c028eb968d7369d765db5c2f319eb5d10
5
5
  SHA512:
6
- metadata.gz: c26c1ed6019d5131a5623dbd6b3eb120d237724c39e8c3c037c921b78ec7996ad83ec9dc121c7cf518b635a143db696aa5b4d8f800795ca2228b8f3e443fca8a
7
- data.tar.gz: 4a42d2fbe3732653ae83459aed3f01643c6ec8b78735717b0f248e5b763a332f851c79d00d61e18c669c2eacfbc17b872c227f9c06dab64dfaf561a7e8e7d9fc
6
+ metadata.gz: 29d7a4fd4f68ef891f2b739b983d18b3bb20cebcb47bb91394ebc98814cd7d6452480526c6ced4aee7ca00afa28b05cd6c2336cd8531e404aa729f1a5ec14b28
7
+ data.tar.gz: 379780b6745360e7b4d2842d57260b68b36e41cce310d01e3e158b343ddaf285d9adcc254888a36fd2dad95321ec9dc97a213894808bae5bf5dd26d94df52948
@@ -144,6 +144,7 @@ def hx_rescued(x)
144
144
  end
145
145
 
146
146
 
147
+ require_relative 'lib/coopy/table_view'
147
148
  Daff = Coopy
148
149
  if __FILE__ == $0
149
150
  Coopy::Coopy.main
@@ -4,8 +4,9 @@
4
4
  module Coopy
5
5
  class Coopy
6
6
 
7
- def initialize
7
+ def initialize(io = nil)
8
8
  self.init
9
+ @io = io
9
10
  end
10
11
 
11
12
  # protected - in ruby this doesn't play well with static/inline methods
@@ -262,6 +263,8 @@ module Coopy
262
263
  output
263
264
  end
264
265
 
266
+ public
267
+
265
268
  def load_table(name)
266
269
  ext = self.check_format(name)
267
270
  if ext == "sqlite"
@@ -298,6 +301,8 @@ module Coopy
298
301
  output
299
302
  end
300
303
 
304
+ # protected - in ruby this doesn't play well with static/inline methods
305
+
301
306
  attr_accessor :status
302
307
  attr_accessor :daff_cmd
303
308
 
@@ -811,12 +816,19 @@ module Coopy
811
816
  class << self
812
817
  attr_accessor :version
813
818
  end
814
- @version = "1.3.6"
819
+ @version = "1.3.8"
815
820
 
816
821
  def Coopy.diff_as_html(local,remote,flags = nil)
817
- o = ::Coopy::Coopy.diff(local,remote,flags)
822
+ comp = ::Coopy::TableComparisonState.new
823
+ td = ::Coopy::Coopy.align(local,remote,flags,comp)
824
+ o = ::Coopy::Coopy.get_blank_table(td,comp)
825
+ o = comp.a.create if comp.a != nil
826
+ o = comp.b.create if o == nil && comp.b != nil
827
+ o = ::Coopy::SimpleTable.new(0,0) if o == nil
828
+ os = ::Coopy::Tables.new(o)
829
+ td.hilite_with_nesting(os)
818
830
  render = ::Coopy::DiffRender.new
819
- render.render(o).html
831
+ render.render_tables(os).html
820
832
  end
821
833
 
822
834
  def Coopy.diff_as_ansi(local,remote,flags = nil)
@@ -827,6 +839,26 @@ module Coopy
827
839
 
828
840
  def Coopy.diff(local,remote,flags = nil)
829
841
  comp = ::Coopy::TableComparisonState.new
842
+ td = ::Coopy::Coopy.align(local,remote,flags,comp)
843
+ o = ::Coopy::Coopy.get_blank_table(td,comp)
844
+ o = comp.a.create if comp.a != nil
845
+ o = comp.b.create if o == nil && comp.b != nil
846
+ o = ::Coopy::SimpleTable.new(0,0) if o == nil
847
+ td.hilite(o)
848
+ o
849
+ end
850
+
851
+ # protected - in ruby this doesn't play well with static/inline methods
852
+
853
+ def Coopy.get_blank_table(td,comp)
854
+ o = nil
855
+ o = comp.a.create if comp.a != nil
856
+ o = comp.b.create if o == nil && comp.b != nil
857
+ o = ::Coopy::SimpleTable.new(0,0) if o == nil
858
+ o
859
+ end
860
+
861
+ def Coopy.align(local,remote,flags,comp)
830
862
  comp.a = ::Coopy::Coopy.tablify(local)
831
863
  comp.b = ::Coopy::Coopy.tablify(remote)
832
864
  flags = ::Coopy::CompareFlags.new if flags == nil
@@ -834,14 +866,11 @@ module Coopy
834
866
  ct = ::Coopy::CompareTable.new(comp)
835
867
  align = ct.align
836
868
  td = ::Coopy::TableDiff.new(align,flags)
837
- o = nil
838
- o = comp.a.create if comp.a != nil
839
- o = comp.b.create if o == nil && comp.b != nil
840
- o = ::Coopy::SimpleTable.new(0,0) if o == nil
841
- td.hilite(o)
842
- o
869
+ td
843
870
  end
844
871
 
872
+ public
873
+
845
874
  def Coopy.patch(local,patch,flags = nil)
846
875
  patcher = ::Coopy::HighlightPatch.new(::Coopy::Coopy.tablify(local),::Coopy::Coopy.tablify(patch))
847
876
  patcher.apply
@@ -959,8 +988,7 @@ module Coopy
959
988
  def Coopy.tablify(data)
960
989
  return data if data == nil
961
990
  return data if data.respond_to? :get_cell_view
962
- require 'ruby_table_view' unless defined?(RubyTableView)
963
- ::RubyTableView.new(data)
991
+ ::Coopy::TableView.new(data)
964
992
  end
965
993
 
966
994
  haxe_me ["coopy", "Coopy"]
@@ -97,6 +97,7 @@ module Coopy
97
97
  end
98
98
 
99
99
  def render(tab)
100
+ tab = ::Coopy::Coopy.tablify(tab)
100
101
  return self if tab.get_width == 0 || tab.get_height == 0
101
102
  render = self
102
103
  render.begin_table
@@ -112,7 +112,7 @@ module Coopy
112
112
  end
113
113
 
114
114
  def create
115
- ::Coopy::JsonTable.new(nil,nil)
115
+ nil
116
116
  end
117
117
 
118
118
  def alter_columns(columns)
@@ -9,7 +9,7 @@ module Coopy
9
9
  names = Reflect.field(json,"names")
10
10
  allowed = nil
11
11
  count = names.length
12
- if flags.tables != nil
12
+ if flags != nil && flags.tables != nil
13
13
  allowed = {}
14
14
  begin
15
15
  _g = 0
@@ -120,7 +120,7 @@ module Coopy
120
120
  end
121
121
 
122
122
  def create
123
- ::Coopy::JsonTables.new(nil,nil)
123
+ nil
124
124
  end
125
125
 
126
126
  haxe_me ["coopy", "JsonTables"]
@@ -953,6 +953,13 @@ module Coopy
953
953
  public
954
954
 
955
955
  def hilite(output)
956
+ output = ::Coopy::Coopy.tablify(output)
957
+ self.hilite_single(output)
958
+ end
959
+
960
+ protected
961
+
962
+ def hilite_single(output)
956
963
  return false if !output.is_resizable
957
964
  if @builder == nil
958
965
  if @flags.allow_nested_cells
@@ -1065,9 +1072,11 @@ module Coopy
1065
1072
  true
1066
1073
  end
1067
1074
 
1075
+ public
1076
+
1068
1077
  def hilite_with_nesting(output)
1069
1078
  base = output.add("base")
1070
- result = self.hilite(base)
1079
+ result = self.hilite_single(base)
1071
1080
  return false if !result
1072
1081
  return true if @align.comp == nil
1073
1082
  order = @align.comp.child_order
@@ -1086,7 +1095,7 @@ module Coopy
1086
1095
  end
1087
1096
  td = ::Coopy::TableDiff.new(alignment,@flags)
1088
1097
  child_output = output.add(name)
1089
- result = result && td.hilite(child_output)
1098
+ result = result && td.hilite_single(child_output)
1090
1099
  end
1091
1100
  end
1092
1101
  result
@@ -1104,6 +1113,11 @@ module Coopy
1104
1113
  @nesting_present
1105
1114
  end
1106
1115
 
1116
+ def get_comparison_state
1117
+ return nil if @align == nil
1118
+ @align.comp
1119
+ end
1120
+
1107
1121
  haxe_me ["coopy", "TableDiff"]
1108
1122
  end
1109
1123
 
@@ -0,0 +1,148 @@
1
+ module Coopy
2
+ class TableView < ::Coopy::Table
3
+ def initialize(data)
4
+ @data = data
5
+ @height = data.length
6
+ @width = 0
7
+ @width = data[0].length if @height>0
8
+ end
9
+
10
+ def get_width() @width end
11
+
12
+ def get_height() @height end
13
+
14
+ def get_cell(x,y)
15
+ @data[y][x]
16
+ end
17
+
18
+ def set_cell(x,y,c)
19
+ @data[y][x] = c
20
+ end
21
+
22
+ def to_s
23
+ ::Coopy::SimpleTable::table_to_string(self)
24
+ end
25
+
26
+ def get_cell_view
27
+ ::Coopy::SimpleView.new
28
+ end
29
+
30
+ def is_resizable
31
+ true
32
+ end
33
+
34
+ def resize(w,h)
35
+ @width = w
36
+ @height = h
37
+ @data.length.times do |i|
38
+ row = @data[i]
39
+ row = @data[i] = [] if row.nil?
40
+ while row.length<w
41
+ row << nil
42
+ end
43
+ end
44
+ while @data.length<h
45
+ row = []
46
+ w.times do |i|
47
+ row << nil
48
+ end
49
+ @data << row
50
+ end
51
+ true
52
+ end
53
+
54
+ def clear
55
+ @data.clear
56
+ @width = 0
57
+ @height = 0
58
+ end
59
+
60
+ def trim_blank
61
+ false
62
+ end
63
+
64
+ def get_data
65
+ return @data
66
+ end
67
+
68
+ def insert_or_delete_rows(fate,hfate)
69
+ ndata = []
70
+ fate.length.times do |i|
71
+ j = fate[i];
72
+ ndata[j] = @data[i] if j!=-1
73
+ end
74
+ @data.clear
75
+ ndata.length.times do |i|
76
+ @data[i] = ndata[i]
77
+ end
78
+ self.resize(@width,hfate)
79
+ true
80
+ end
81
+
82
+ def insert_or_delete_columns(fate,wfate)
83
+ if wfate==@width and wfate==fate.length
84
+ eq = true
85
+ wfate.times do |i|
86
+ if fate[i]!=i
87
+ eq = false
88
+ break
89
+ end
90
+ end
91
+ return true if eq
92
+ end
93
+ @height.times do |i|
94
+ row = @data[i]
95
+ nrow = []
96
+ @width.times do |j|
97
+ next if fate[j]==-1
98
+ nrow[fate[j]] = row[j]
99
+ end
100
+ while nrow.length<wfate
101
+ nrow << nil
102
+ end
103
+ @data[i] = nrow
104
+ end
105
+ @width = wfate
106
+ if @width == 0
107
+ @height = 0
108
+ end
109
+ true
110
+ end
111
+
112
+ def is_similar(alt)
113
+ return false if alt.width!=@width
114
+ return false if alt.height!=@height
115
+ @width.times do |c|
116
+ @height.times do |r|
117
+ v1 = "" + self.get_cell(c,r)
118
+ v2 = "" + alt.get_cell(c,r)
119
+ if (v1!=v2)
120
+ puts("MISMATCH "+ v1 + " " + v2);
121
+ return false
122
+ end
123
+ end
124
+ end
125
+ true
126
+ end
127
+
128
+
129
+ def clone
130
+ result = TableView.new([])
131
+ result.resize(@width,@height)
132
+ @width.times do |c|
133
+ @height.times do |r|
134
+ result.set_cell(c,r,self.get_cell(c,r))
135
+ end
136
+ end
137
+ result
138
+ end
139
+
140
+ def create
141
+ TableView.new([])
142
+ end
143
+
144
+ def get_meta
145
+ nil
146
+ end
147
+ end
148
+ end
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.3.6
4
+ version: 1.3.8
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-11-05 00:00:00.000000000 Z
12
+ date: 2016-01-03 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Diff and patch tables
15
15
  email:
@@ -72,6 +72,7 @@ files:
72
72
  - lib/lib/coopy/table_io.rb
73
73
  - lib/lib/coopy/table_modifier.rb
74
74
  - lib/lib/coopy/table_stream.rb
75
+ - lib/lib/coopy/table_view.rb
75
76
  - lib/lib/coopy/tables.rb
76
77
  - lib/lib/coopy/terminal_diff_render.rb
77
78
  - lib/lib/coopy/unit.rb