daff 1.1.16 → 1.1.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. data/lib/daff.rb +24 -4
  2. data/lib/lib/coopy/alignment.rb +2 -1
  3. data/lib/lib/coopy/bag.rb +1 -0
  4. data/lib/lib/coopy/cell_builder.rb +17 -0
  5. data/lib/lib/coopy/cell_info.rb +1 -0
  6. data/lib/lib/coopy/change.rb +1 -0
  7. data/lib/lib/coopy/compare.rb +1 -0
  8. data/lib/lib/coopy/compare_flags.rb +28 -0
  9. data/lib/lib/coopy/compare_table.rb +29 -10
  10. data/lib/lib/coopy/coopy.rb +29 -15
  11. data/lib/lib/coopy/cross_match.rb +1 -0
  12. data/lib/lib/coopy/csv.rb +1 -0
  13. data/lib/lib/coopy/diff_render.rb +1 -0
  14. data/lib/lib/coopy/flat_cell_builder.rb +72 -0
  15. data/lib/lib/coopy/highlight_patch.rb +1 -0
  16. data/lib/lib/coopy/highlight_patch_unit.rb +1 -0
  17. data/lib/lib/coopy/index.rb +1 -0
  18. data/lib/lib/coopy/index_item.rb +1 -0
  19. data/lib/lib/coopy/index_pair.rb +1 -0
  20. data/lib/lib/coopy/merger.rb +1 -0
  21. data/lib/lib/coopy/mover.rb +1 -0
  22. data/lib/lib/coopy/ordering.rb +1 -0
  23. data/lib/lib/coopy/report.rb +1 -0
  24. data/lib/lib/coopy/row.rb +1 -0
  25. data/lib/lib/coopy/simple_cell.rb +1 -0
  26. data/lib/lib/coopy/simple_table.rb +5 -0
  27. data/lib/lib/coopy/simple_view.rb +3 -3
  28. data/lib/lib/coopy/sparse_sheet.rb +1 -0
  29. data/lib/lib/coopy/table.rb +2 -0
  30. data/lib/lib/coopy/table_comparison_state.rb +1 -0
  31. data/lib/lib/coopy/table_diff.rb +235 -172
  32. data/lib/lib/coopy/table_io.rb +1 -0
  33. data/lib/lib/coopy/table_modifier.rb +1 -0
  34. data/lib/lib/coopy/table_text.rb +1 -0
  35. data/lib/lib/coopy/terminal_diff_render.rb +1 -0
  36. data/lib/lib/coopy/unit.rb +1 -0
  37. data/lib/lib/coopy/view.rb +1 -0
  38. data/lib/lib/coopy/viewed_datum.rb +1 -0
  39. data/lib/lib/coopy/viterbi.rb +2 -1
  40. data/lib/lib/coopy/workspace.rb +1 -0
  41. data/lib/lib/haxe/ds/int_map.rb +1 -0
  42. data/lib/lib/haxe/ds/string_map.rb +1 -0
  43. data/lib/lib/haxe/format/json_parser.rb +1 -0
  44. data/lib/lib/haxe/format/json_printer.rb +1 -0
  45. data/lib/lib/haxe/imap.rb +1 -0
  46. data/lib/lib/haxe/io/bytes.rb +1 -0
  47. data/lib/lib/haxe/io/bytes_buffer.rb +1 -0
  48. data/lib/lib/haxe/io/bytes_input.rb +1 -0
  49. data/lib/lib/haxe/io/bytes_output.rb +1 -0
  50. data/lib/lib/haxe/io/eof.rb +1 -0
  51. data/lib/lib/haxe/io/input.rb +1 -0
  52. data/lib/lib/haxe/io/output.rb +1 -0
  53. data/lib/lib/hx_overrides.rb +1 -0
  54. data/lib/lib/hx_sys.rb +66 -0
  55. data/lib/lib/lambda.rb +1 -0
  56. data/lib/lib/list.rb +1 -0
  57. data/lib/lib/rb/boot.rb +2 -5
  58. data/lib/lib/rb/ruby_iterator.rb +1 -0
  59. data/lib/lib/reflect.rb +1 -0
  60. data/lib/lib/string_buf.rb +1 -0
  61. data/lib/lib/sys/io/file_output.rb +1 -0
  62. data/lib/lib/sys/io/hx_file.rb +20 -0
  63. data/lib/lib/type.rb +1 -0
  64. data/lib/lib/x_list/list_iterator.rb +32 -0
  65. metadata +7 -2
data/lib/daff.rb CHANGED
@@ -7,19 +7,39 @@ if ruby_major<1 || (ruby_major==1 && (ruby_minor<9 || (ruby_minor==9 && ruby_pat
7
7
  $stderr.puts "Your current Ruby version is: #{RUBY_VERSION}. Haxe/Ruby generates code for version 1.9.3 or later."
8
8
  Kernel.exit 1
9
9
  end
10
+ def haxe_me
11
+ _haxe_vars_ = {}
12
+ instance_methods(false).grep(/=$/).each do |v|
13
+ _haxe_vars_[v.to_s[0..-2].to_sym] = ('@'+v.to_s[0..-2]).to_sym
14
+ end
15
+ define_method(:[]) do |x|
16
+ tag = _haxe_vars_[x]
17
+ return instance_variable_get(tag) if tag
18
+ method x
19
+ end
20
+ define_method(:[]=) do |x,y|
21
+ instance_variable_set(_haxe_vars_[x],y)
22
+ end
23
+ class << self
24
+ define_method(:[]) do |x|
25
+ method x
26
+ end
27
+ end
28
+ end
10
29
 
11
30
  require 'date'
12
31
  require_relative 'lib/hx_overrides'
13
32
  require_relative 'lib/lambda'
14
33
  require_relative 'lib/list'
15
- require_relative 'lib/_list/list_iterator'
34
+ require_relative 'lib/x_list/list_iterator'
16
35
  require_relative 'lib/reflect'
17
36
  require_relative 'lib/string_buf'
18
- require_relative 'lib/sys'
37
+ require_relative 'lib/hx_sys'
19
38
  require_relative 'lib/value_type'
20
39
  require_relative 'lib/type'
21
40
  require_relative 'lib/coopy/alignment'
22
41
  require_relative 'lib/coopy/bag'
42
+ require_relative 'lib/coopy/cell_builder'
23
43
  require_relative 'lib/coopy/cell_info'
24
44
  require_relative 'lib/coopy/change'
25
45
  require_relative 'lib/coopy/change_type'
@@ -30,6 +50,7 @@ require_relative 'lib/coopy/coopy'
30
50
  require_relative 'lib/coopy/cross_match'
31
51
  require_relative 'lib/coopy/csv'
32
52
  require_relative 'lib/coopy/diff_render'
53
+ require_relative 'lib/coopy/flat_cell_builder'
33
54
  require_relative 'lib/coopy/row'
34
55
  require_relative 'lib/coopy/highlight_patch'
35
56
  require_relative 'lib/coopy/highlight_patch_unit'
@@ -57,7 +78,6 @@ require_relative 'lib/coopy/viewed_datum'
57
78
  require_relative 'lib/coopy/viterbi'
58
79
  require_relative 'lib/coopy/workspace'
59
80
  require_relative 'lib/haxe/imap'
60
- require_relative 'lib/haxe/log'
61
81
  require_relative 'lib/haxe/ds/int_map'
62
82
  require_relative 'lib/haxe/ds/string_map'
63
83
  require_relative 'lib/haxe/format/json_parser'
@@ -73,7 +93,7 @@ require_relative 'lib/haxe/io/error'
73
93
  require_relative 'lib/rb/boot'
74
94
  require_relative 'lib/rb/ruby_iterator'
75
95
  require_relative 'lib/sys/io/file_handle'
76
- require_relative 'lib/sys/io/file'
96
+ require_relative 'lib/sys/io/hx_file'
77
97
  require_relative 'lib/sys/io/file_output'
78
98
 
79
99
 
@@ -174,7 +174,7 @@ module Coopy
174
174
  while(ct_vp > 0 || ct_vl > 0 || ct_vr > 0)
175
175
  ct+=1
176
176
  if ct > max_ct
177
- ::Haxe::Log._trace.call("Ordering took too long, something went wrong",{ file_name: "Alignment.hx", line_number: 153, class_name: "coopy.Alignment", method_name: "toOrder3"})
177
+ puts "Ordering took too long, something went wrong"
178
178
  break
179
179
  end
180
180
  xp = 0 if xp >= hp
@@ -294,6 +294,7 @@ module Coopy
294
294
  return order
295
295
  end
296
296
 
297
+ haxe_me
297
298
  end
298
299
 
299
300
  end
data/lib/lib/coopy/bag.rb CHANGED
@@ -6,6 +6,7 @@ module Coopy
6
6
  def get_size() puts "Abstract Bag.get_size called" end
7
7
  def getItem(x) puts "Abstract Bag.getItem called" end
8
8
  def getItemView() puts "Abstract Bag.getItemView called" end
9
+ haxe_me
9
10
  end
10
11
 
11
12
  end
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Coopy
5
+ class CellBuilder
6
+ def needSeparator() puts "Abstract CellBuilder.needSeparator called" end
7
+ def setSeparator(separator) puts "Abstract CellBuilder.setSeparator called" end
8
+ def setConflictSeparator(separator) puts "Abstract CellBuilder.setConflictSeparator called" end
9
+ def setView(view) puts "Abstract CellBuilder.setView called" end
10
+ def update(local,remote) puts "Abstract CellBuilder.update called" end
11
+ def conflict(parent,local,remote) puts "Abstract CellBuilder.conflict called" end
12
+ def marker(label) puts "Abstract CellBuilder.marker called" end
13
+ def links(unit) puts "Abstract CellBuilder.links called" end
14
+ haxe_me
15
+ end
16
+
17
+ end
@@ -25,6 +25,7 @@ module Coopy
25
25
  return _hx_str(@pvalue) + "||" + _hx_str(@lvalue) + "::" + _hx_str(@rvalue)
26
26
  end
27
27
 
28
+ haxe_me
28
29
  end
29
30
 
30
31
  end
@@ -43,6 +43,7 @@ module Coopy
43
43
  end
44
44
  end
45
45
 
46
+ haxe_me
46
47
  end
47
48
 
48
49
  end
@@ -93,6 +93,7 @@ module Coopy
93
93
  return true
94
94
  end
95
95
 
96
+ haxe_me
96
97
  end
97
98
 
98
99
  end
@@ -15,6 +15,7 @@ module Coopy
15
15
  @always_show_header = true
16
16
  @acts = nil
17
17
  @ids = nil
18
+ @columns_to_ignore = nil
18
19
  end
19
20
 
20
21
  attr_accessor :ordered
@@ -27,6 +28,7 @@ module Coopy
27
28
  attr_accessor :always_show_header
28
29
  attr_accessor :acts
29
30
  attr_accessor :ids
31
+ attr_accessor :columns_to_ignore
30
32
 
31
33
  def allow_update
32
34
  return true if @acts == nil
@@ -43,6 +45,32 @@ module Coopy
43
45
  return @acts.include?("delete")
44
46
  end
45
47
 
48
+ def get_ignored_columns
49
+ return nil if @columns_to_ignore == nil
50
+ ignore = {}
51
+ begin
52
+ _g1 = 0
53
+ _g = @columns_to_ignore.length
54
+ while(_g1 < _g)
55
+ i = _g1
56
+ _g1+=1
57
+ ignore[@columns_to_ignore[i]] = true
58
+ end
59
+ end
60
+ return ignore
61
+ end
62
+
63
+ def add_primary_key(column)
64
+ @ids = Array.new if @ids == nil
65
+ @ids.push(column)
66
+ end
67
+
68
+ def ignore_column(column)
69
+ @columns_to_ignore = Array.new if @columns_to_ignore == nil
70
+ @columns_to_ignore.push(column)
71
+ end
72
+
73
+ haxe_me
46
74
  end
47
75
 
48
76
  end
@@ -50,25 +50,43 @@ module Coopy
50
50
  align.meta = ::Coopy::Alignment.new if align.meta == nil
51
51
  self.align_columns(align.meta,a,b)
52
52
  column_order = align.meta.to_order
53
+ align.range(a.get_height,b.get_height)
54
+ align.tables(a,b)
55
+ align.set_rowlike(true)
56
+ w = a.get_width
57
+ ha = a.get_height
58
+ hb = b.get_height
59
+ av = a.get_cell_view
60
+ ids = nil
61
+ ignore = nil
62
+ if @comp.compare_flags != nil
63
+ ids = @comp.compare_flags.ids
64
+ ignore = @comp.compare_flags.get_ignored_columns
65
+ end
53
66
  common_units = Array.new
67
+ ra_header = align.get_source_header
68
+ rb_header = align.get_source_header
54
69
  begin
55
70
  _g = 0
56
71
  _g1 = column_order.get_list
57
72
  while(_g < _g1.length)
58
73
  unit = _g1[_g]
59
74
  _g+=1
60
- common_units.push(unit) if unit.l >= 0 && unit.r >= 0 && unit.p != -1
75
+ if unit.l >= 0 && unit.r >= 0 && unit.p != -1
76
+ if ignore != nil
77
+ if unit.l >= 0 && ra_header >= 0 && ra_header < a.get_height
78
+ name = av.to_s(a.get_cell(unit.l,ra_header))
79
+ next if ignore.include?(name)
80
+ end
81
+ if unit.r >= 0 && rb_header >= 0 && rb_header < b.get_height
82
+ name1 = av.to_s(b.get_cell(unit.r,rb_header))
83
+ next if ignore.include?(name1)
84
+ end
85
+ end
86
+ common_units.push(unit)
87
+ end
61
88
  end
62
89
  end
63
- align.range(a.get_height,b.get_height)
64
- align.tables(a,b)
65
- align.set_rowlike(true)
66
- w = a.get_width
67
- ha = a.get_height
68
- hb = b.get_height
69
- av = a.get_cell_view
70
- ids = nil
71
- ids = @comp.compare_flags.ids if @comp.compare_flags != nil
72
90
  if ids != nil
73
91
  index = ::Coopy::IndexPair.new
74
92
  ids_as_map = {}
@@ -493,6 +511,7 @@ module Coopy
493
511
  return @indexes
494
512
  end
495
513
 
514
+ haxe_me
496
515
  end
497
516
 
498
517
  end
@@ -384,6 +384,18 @@ module Coopy
384
384
  flags.ids.push(args[i + 1])
385
385
  args.slice!(i,2)
386
386
  break
387
+ elsif tag == "--ignore"
388
+ more = true
389
+ flags.columns_to_ignore = Array.new if flags.columns_to_ignore == nil
390
+ flags.columns_to_ignore.push(args[i + 1])
391
+ args.slice!(i,2)
392
+ break
393
+ elsif tag == "--index"
394
+ more = true
395
+ flags.always_show_order = true
396
+ flags.never_show_order = false
397
+ args.slice!(i,1)
398
+ break
387
399
  end
388
400
  end
389
401
  end
@@ -436,6 +448,7 @@ module Coopy
436
448
  io.write_stderr("If you need more control, here is the full list of flags:\n")
437
449
  io.write_stderr(" daff diff [--output OUTPUT.csv] [--context NUM] [--all] [--act ACT] a.csv b.csv\n")
438
450
  io.write_stderr(" --id: specify column to use as primary key (repeat for multi-column key)\n")
451
+ io.write_stderr(" --ignore: specify column to ignore completely (can repeat)\n")
439
452
  io.write_stderr(" --color: highlight changes with terminal colors\n")
440
453
  io.write_stderr(" --context NUM: show NUM rows of context\n")
441
454
  io.write_stderr(" --all: do not prune unchanged rows\n")
@@ -445,6 +458,7 @@ module Coopy
445
458
  io.write_stderr("\n")
446
459
  io.write_stderr(" daff diff --git path old-file old-hex old-mode new-file new-hex new-mode\n")
447
460
  io.write_stderr(" --git: process arguments provided by git to diff drivers\n")
461
+ io.write_stderr(" --index: include row/columns numbers from orginal tables\n")
448
462
  io.write_stderr("\n")
449
463
  io.write_stderr(" daff render [--output OUTPUT.html] [--css CSS.css] [--fragment] [--plain] diff.csv\n")
450
464
  io.write_stderr(" --css CSS.css: generate a suitable css file to go with the html\n")
@@ -550,7 +564,7 @@ module Coopy
550
564
  class << self
551
565
  attr_accessor :version
552
566
  end
553
- @version = "1.1.16"
567
+ @version = "1.1.19"
554
568
 
555
569
  def Coopy.compare_tables(local,remote,flags = nil)
556
570
  ct = ::Coopy::CompareTable.new
@@ -578,35 +592,35 @@ module Coopy
578
592
  def Coopy.random_tests
579
593
  st = ::Coopy::SimpleTable.new(15,6)
580
594
  tab = st
581
- ::Haxe::Log._trace.call("table size is " + _hx_str(tab.get_width) + "x" + _hx_str(tab.get_height),{ file_name: "Coopy.hx", line_number: 53, class_name: "coopy.Coopy", method_name: "randomTests"})
595
+ puts "table size is " + _hx_str(tab.get_width) + "x" + _hx_str(tab.get_height)
582
596
  tab.set_cell(3,4,::Coopy::SimpleCell.new(33))
583
- ::Haxe::Log._trace.call("element is " + _hx_str(lambda{ s = tab.get_cell(3,4)
584
- _r = s.to_s}.call()),{ file_name: "Coopy.hx", line_number: 55, class_name: "coopy.Coopy", method_name: "randomTests"})
597
+ puts "element is " + _hx_str(lambda{ s = tab.get_cell(3,4)
598
+ _r = s.to_s}.call())
585
599
  compare = ::Coopy::Compare.new
586
600
  d1 = ::Coopy::ViewedDatum.get_simple_view(::Coopy::SimpleCell.new(10))
587
601
  d2 = ::Coopy::ViewedDatum.get_simple_view(::Coopy::SimpleCell.new(10))
588
602
  d3 = ::Coopy::ViewedDatum.get_simple_view(::Coopy::SimpleCell.new(20))
589
603
  report = ::Coopy::Report.new
590
604
  compare.compare(d1,d2,d3,report)
591
- ::Haxe::Log._trace.call("report is " + _hx_str(report.to_s),{ file_name: "Coopy.hx", line_number: 63, class_name: "coopy.Coopy", method_name: "randomTests"})
605
+ puts "report is " + _hx_str(report.to_s)
592
606
  d2 = ::Coopy::ViewedDatum.get_simple_view(::Coopy::SimpleCell.new(50))
593
607
  report.clear
594
608
  compare.compare(d1,d2,d3,report)
595
- ::Haxe::Log._trace.call("report is " + _hx_str(report.to_s),{ file_name: "Coopy.hx", line_number: 67, class_name: "coopy.Coopy", method_name: "randomTests"})
609
+ puts "report is " + _hx_str(report.to_s)
596
610
  d2 = ::Coopy::ViewedDatum.get_simple_view(::Coopy::SimpleCell.new(20))
597
611
  report.clear
598
612
  compare.compare(d1,d2,d3,report)
599
- ::Haxe::Log._trace.call("report is " + _hx_str(report.to_s),{ file_name: "Coopy.hx", line_number: 71, class_name: "coopy.Coopy", method_name: "randomTests"})
613
+ puts "report is " + _hx_str(report.to_s)
600
614
  d1 = ::Coopy::ViewedDatum.get_simple_view(::Coopy::SimpleCell.new(20))
601
615
  report.clear
602
616
  compare.compare(d1,d2,d3,report)
603
- ::Haxe::Log._trace.call("report is " + _hx_str(report.to_s),{ file_name: "Coopy.hx", line_number: 75, class_name: "coopy.Coopy", method_name: "randomTests"})
617
+ puts "report is " + _hx_str(report.to_s)
604
618
  comp = ::Coopy::TableComparisonState.new
605
619
  ct = ::Coopy::CompareTable.new
606
620
  comp.a = st
607
621
  comp.b = st
608
622
  ct.attach(comp)
609
- ::Haxe::Log._trace.call("comparing tables",{ file_name: "Coopy.hx", line_number: 83, class_name: "coopy.Coopy", method_name: "randomTests"})
623
+ puts "comparing tables"
610
624
  t1 = ::Coopy::SimpleTable.new(3,2)
611
625
  t2 = ::Coopy::SimpleTable.new(3,2)
612
626
  t3 = ::Coopy::SimpleTable.new(3,2)
@@ -614,13 +628,13 @@ module Coopy
614
628
  dt2 = ::Coopy::ViewedDatum.new(t2,::Coopy::SimpleView.new)
615
629
  dt3 = ::Coopy::ViewedDatum.new(t3,::Coopy::SimpleView.new)
616
630
  compare.compare(dt1,dt2,dt3,report)
617
- ::Haxe::Log._trace.call("report is " + _hx_str(report.to_s),{ file_name: "Coopy.hx", line_number: 91, class_name: "coopy.Coopy", method_name: "randomTests"})
631
+ puts "report is " + _hx_str(report.to_s)
618
632
  t3.set_cell(1,1,::Coopy::SimpleCell.new("hello"))
619
633
  compare.compare(dt1,dt2,dt3,report)
620
- ::Haxe::Log._trace.call("report is " + _hx_str(report.to_s),{ file_name: "Coopy.hx", line_number: 94, class_name: "coopy.Coopy", method_name: "randomTests"})
634
+ puts "report is " + _hx_str(report.to_s)
621
635
  t1.set_cell(1,1,::Coopy::SimpleCell.new("hello"))
622
636
  compare.compare(dt1,dt2,dt3,report)
623
- ::Haxe::Log._trace.call("report is " + _hx_str(report.to_s),{ file_name: "Coopy.hx", line_number: 97, class_name: "coopy.Coopy", method_name: "randomTests"})
637
+ puts "report is " + _hx_str(report.to_s)
624
638
  v = ::Coopy::Viterbi.new
625
639
  td = ::Coopy::TableDiff.new(nil,nil)
626
640
  idx = ::Coopy::Index.new
@@ -633,8 +647,7 @@ module Coopy
633
647
  end
634
648
 
635
649
  def Coopy.cell_for(x)
636
- return nil if x == nil
637
- return ::Coopy::SimpleCell.new(x)
650
+ return x
638
651
  end
639
652
 
640
653
  def Coopy.json_to_table(json)
@@ -726,7 +739,7 @@ module Coopy
726
739
  txt += "\n"
727
740
  end
728
741
  end
729
- ::Haxe::Log._trace.call(txt,{ file_name: "Coopy.hx", line_number: 705, class_name: "coopy.Coopy", method_name: "show"})
742
+ puts txt
730
743
  end
731
744
 
732
745
  def Coopy.jsonify(t)
@@ -761,6 +774,7 @@ module Coopy
761
774
  return workbook
762
775
  end
763
776
 
777
+ haxe_me
764
778
  end
765
779
 
766
780
  end
@@ -11,6 +11,7 @@ module Coopy
11
11
  attr_accessor :spot_b
12
12
  attr_accessor :item_a
13
13
  attr_accessor :item_b
14
+ haxe_me
14
15
  end
15
16
 
16
17
  end
data/lib/lib/coopy/csv.rb CHANGED
@@ -180,6 +180,7 @@ module Coopy
180
180
  return self.parse_cell(txt)
181
181
  end
182
182
 
183
+ haxe_me
183
184
  end
184
185
 
185
186
  end
@@ -252,6 +252,7 @@ module Coopy
252
252
  return cell
253
253
  end
254
254
 
255
+ haxe_me
255
256
  end
256
257
 
257
258
  end
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ module Coopy
5
+ class FlatCellBuilder
6
+
7
+ def initialize
8
+ end
9
+
10
+ # protected - in ruby this doesn't play well with static/inline methods
11
+
12
+ attr_accessor :view
13
+ attr_accessor :separator
14
+ attr_accessor :conflict_separator
15
+
16
+ public
17
+
18
+ def need_separator
19
+ return true
20
+ end
21
+
22
+ def set_separator(separator)
23
+ @separator = separator
24
+ end
25
+
26
+ def set_conflict_separator(separator)
27
+ @conflict_separator = separator
28
+ end
29
+
30
+ def set_view(view)
31
+ @view = view
32
+ end
33
+
34
+ def update(local,remote)
35
+ return @view.to_datum(_hx_str(::Coopy::FlatCellBuilder.quote_for_diff(@view,local)) + _hx_str(@separator) + _hx_str(::Coopy::FlatCellBuilder.quote_for_diff(@view,remote)))
36
+ end
37
+
38
+ def conflict(parent,local,remote)
39
+ return _hx_str(@view.to_s(parent)) + _hx_str(@conflict_separator) + _hx_str(@view.to_s(local)) + _hx_str(@conflict_separator) + _hx_str(@view.to_s(remote))
40
+ end
41
+
42
+ def marker(label)
43
+ return @view.to_datum(label)
44
+ end
45
+
46
+ def links(unit)
47
+ return @view.to_datum(unit.to_s)
48
+ end
49
+
50
+ def FlatCellBuilder.quote_for_diff(v,d)
51
+ _nil = "NULL"
52
+ return _nil if v.equals(d,nil)
53
+ str = v.to_s(d)
54
+ score = 0
55
+ begin
56
+ _g1 = 0
57
+ _g = str.length
58
+ while(_g1 < _g)
59
+ i = _g1
60
+ _g1+=1
61
+ break if (str[score].ord rescue nil) != 95
62
+ score+=1
63
+ end
64
+ end
65
+ str = "_" + _hx_str(str) if str[score..-1] == _nil
66
+ return str
67
+ end
68
+
69
+ haxe_me
70
+ end
71
+
72
+ end