daff 1.1.16 → 1.1.19

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.
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