daff 1.3.1 → 1.3.2

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: 469baec08599142e1445a291410b340d9b621c52
4
- data.tar.gz: f9781651f9ca2650d61a1ba5632b2e8e40543b1a
3
+ metadata.gz: f83e7c531044c8304fe471789f88f1a25ccc3618
4
+ data.tar.gz: a131ce2c9f90a56e11c1cf7f0f7cf7216db7668a
5
5
  SHA512:
6
- metadata.gz: cfc0aa8b457f18094e9d8ed4c9835fee504ecc9875949a4c5e74057821eae741941bf98a75c9c295b520a2f22b1add61dd5099d63f900894bbe63c31cde47888
7
- data.tar.gz: 5a510890fe93b6b2d7c771524fe25f811f48a3addb377f97f565aa1f6507caa4069b09900c32c6c26c4242bf83b80dea94d47685472f53f733e44eecdf9333a4
6
+ metadata.gz: 3125f64b0ebf44d43e3fa7fa68223d093803842e360680720a7fbdba7a250f872b4e906ce8adc8265abec8e5072608da4e330a3d95653581f00ff394232046f4
7
+ data.tar.gz: 3ddd77a33fd57de5db60e056a9b269e07f3294e5a670d9ee5334d14e78bc75c1cff10dd867e768795217262091ebc6f04d1571a6c9003b882edfb7ce96ead4e1
@@ -24,6 +24,7 @@ module Coopy
24
24
  @tables = nil
25
25
  @parent = nil
26
26
  @count_like_a_spreadsheet = true
27
+ @ignore_whitespace = false
27
28
  end
28
29
 
29
30
  attr_accessor :ordered
@@ -45,6 +46,7 @@ module Coopy
45
46
  attr_accessor :show_unchanged_meta
46
47
  attr_accessor :parent
47
48
  attr_accessor :count_like_a_spreadsheet
49
+ attr_accessor :ignore_whitespace
48
50
 
49
51
  def filter(act,allow)
50
52
  if @acts == nil
@@ -121,7 +121,7 @@ module Coopy
121
121
  used = {}
122
122
  used_reverse = {}
123
123
  if ids != nil
124
- index_top = ::Coopy::IndexPair.new
124
+ index_top = ::Coopy::IndexPair.new(@comp.compare_flags)
125
125
  ids_as_map = {}
126
126
  begin
127
127
  _g2 = 0
@@ -260,7 +260,7 @@ module Coopy
260
260
  kk >>= 1
261
261
  at+=1
262
262
  end
263
- index = ::Coopy::IndexPair.new
263
+ index = ::Coopy::IndexPair.new(@comp.compare_flags)
264
264
  begin
265
265
  _g23 = 0
266
266
  _g13 = active_columns.length
@@ -499,6 +499,11 @@ module Coopy
499
499
  @flags.add_table(args[i + 1])
500
500
  args.slice!(i,2)
501
501
  break
502
+ elsif tag == "-w" || tag == "--ignore-whitespace"
503
+ more = true
504
+ @flags.ignore_whitespace = true
505
+ args.slice!(i,1)
506
+ break
502
507
  end
503
508
  end
504
509
  end
@@ -567,6 +572,7 @@ module Coopy
567
572
  io.write_stderr(" --output-format [csv|tsv|ssv|json|copy|html]: set format for output\n")
568
573
  io.write_stderr(" --table NAME: compare the named table, used with SQL sources\n")
569
574
  io.write_stderr(" --unordered: assume row order is meaningless (default for json formats)\n")
575
+ io.write_stderr(" -w / --ignore-whitespace: ignore changes in leading/trailing whitespace\n")
570
576
  io.write_stderr("\n")
571
577
  io.write_stderr(" daff render [--output OUTPUT.html] [--css CSS.css] [--fragment] [--plain] diff.csv\n")
572
578
  io.write_stderr(" --css CSS.css: generate a suitable css file to go with the html\n")
@@ -685,7 +691,7 @@ module Coopy
685
691
  class << self
686
692
  attr_accessor :version
687
693
  end
688
- @version = "1.3.1"
694
+ @version = "1.3.2"
689
695
 
690
696
  def Coopy.diff_as_html(local,remote,flags = nil)
691
697
  o = ::Coopy::Coopy.diff(local,remote,flags)
@@ -743,9 +749,9 @@ module Coopy
743
749
  st = ::Coopy::SimpleTable.new(1,1)
744
750
  v = ::Coopy::Viterbi.new
745
751
  td = ::Coopy::TableDiff.new(nil,nil)
746
- idx = ::Coopy::Index.new
747
- dr = ::Coopy::DiffRender.new
748
752
  cf = ::Coopy::CompareFlags.new
753
+ idx = ::Coopy::Index.new(cf)
754
+ dr = ::Coopy::DiffRender.new
749
755
  hp = ::Coopy::HighlightPatch.new(nil,nil)
750
756
  csv = ::Coopy::Csv.new
751
757
  tm = ::Coopy::TableModifier.new(nil)
@@ -4,13 +4,15 @@
4
4
  module Coopy
5
5
  class Index
6
6
 
7
- def initialize
7
+ def initialize(flags)
8
8
  @items = {}
9
9
  @cols = Array.new
10
10
  @keys = Array.new
11
11
  @top_freq = 0
12
12
  @height = 0
13
13
  @hdr = 0
14
+ @ignore_whitespace = false
15
+ @ignore_whitespace = flags.ignore_whitespace if flags != nil
14
16
  end
15
17
 
16
18
  attr_accessor :items
@@ -24,6 +26,7 @@ module Coopy
24
26
  attr_accessor :v
25
27
  attr_accessor :indexed_table
26
28
  attr_accessor :hdr
29
+ attr_accessor :ignore_whitespace
27
30
 
28
31
  public
29
32
 
@@ -79,6 +82,7 @@ module Coopy
79
82
  _g1+=1
80
83
  d = t.get_cell(@cols[k],i)
81
84
  txt = @v.to_s(d)
85
+ txt = txt.strip if @ignore_whitespace
82
86
  wide += " // " if k > 0
83
87
  next if txt == nil || txt == "" || txt == "null" || txt == "undefined"
84
88
  wide += txt
@@ -101,6 +105,7 @@ module Coopy
101
105
  k = _g1
102
106
  _g1+=1
103
107
  txt = row.get_row_string(@cols[k])
108
+ txt = txt.strip if @ignore_whitespace
104
109
  wide += " // " if k > 0
105
110
  next if txt == nil || txt == "" || txt == "null" || txt == "undefined"
106
111
  wide += txt
@@ -4,9 +4,10 @@
4
4
  module Coopy
5
5
  class IndexPair
6
6
 
7
- def initialize
8
- @ia = ::Coopy::Index.new
9
- @ib = ::Coopy::Index.new
7
+ def initialize(flags)
8
+ @flags = flags
9
+ @ia = ::Coopy::Index.new(flags)
10
+ @ib = ::Coopy::Index.new(flags)
10
11
  @quality = 0
11
12
  @hdr = 0
12
13
  end
@@ -17,6 +18,7 @@ module Coopy
17
18
  attr_accessor :ib
18
19
  attr_accessor :hdr
19
20
  attr_accessor :quality
21
+ attr_accessor :flags
20
22
 
21
23
  public
22
24
 
@@ -743,6 +743,13 @@ module Coopy
743
743
  end
744
744
  end
745
745
 
746
+ def is_equal(v,aa,bb)
747
+ return lambda{|_this_| s = v.to_s(aa)
748
+ _r = s.strip}.call(self) == lambda{|_this_| s1 = v.to_s(bb)
749
+ _r2 = s1.strip}.call(self) if @flags.ignore_whitespace
750
+ v.equals(aa,bb)
751
+ end
752
+
746
753
  def scan_row(unit,output,at,i)
747
754
  begin
748
755
  _g1 = 0
@@ -784,14 +791,14 @@ module Coopy
784
791
  if have_pp
785
792
  if !have_rr
786
793
  dd = pp
787
- elsif @v.equals(pp,rr)
794
+ elsif self.is_equal(@v,pp,rr)
788
795
  dd = ll
789
796
  else
790
797
  dd = pp
791
798
  dd_to = rr
792
799
  have_dd_to = true
793
- if !@v.equals(pp,ll)
794
- if !@v.equals(pp,rr)
800
+ if !self.is_equal(@v,pp,ll)
801
+ if !self.is_equal(@v,pp,rr)
795
802
  dd_to_alt = ll
796
803
  have_dd_to_alt = true
797
804
  end
@@ -800,7 +807,7 @@ module Coopy
800
807
  elsif have_ll
801
808
  if !have_rr
802
809
  dd = ll
803
- elsif @v.equals(ll,rr)
810
+ elsif self.is_equal(@v,ll,rr)
804
811
  dd = ll
805
812
  else
806
813
  dd = ll
@@ -823,7 +830,7 @@ module Coopy
823
830
  end
824
831
  is_conflict = false
825
832
  if have_dd_to_alt
826
- is_conflict = true if !@v.equals(dd_to,dd_to_alt)
833
+ is_conflict = true if !self.is_equal(@v,dd_to,dd_to_alt)
827
834
  end
828
835
  if !is_conflict
829
836
  cell = @builder.update(dd,dd_to)
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.1
4
+ version: 1.3.2
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-09-18 00:00:00.000000000 Z
12
+ date: 2015-09-22 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Diff and patch tables
15
15
  email: