tabulator 0.3.0 → 0.4.0

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: 6614ecbc5384ffd1b1ccc32d65b5e93527bb6099
4
- data.tar.gz: 92f8b1d2a6dc6af04689352fb60fbb97ba099ec6
3
+ metadata.gz: ede125563ddede5588d96f30f03e2d3625091f88
4
+ data.tar.gz: f5dbb7687ac762b49cf477970941ed901248b45a
5
5
  SHA512:
6
- metadata.gz: 4b4503620928bcf4c2e89d29615e5d58992ee8a9dee9ea63658263983115719297ae65bfe532565ec41c9ed76af994b64820af37236c42305945d68e3daa5ec4
7
- data.tar.gz: ea92e662653f25d63c3a7bcce33691bb9b77b8ea1aa628cdf993bd464d6f6692c5158c06eb86b20db6f590f3b81a1e7508e4ed4b5376177bc37192d771729552
6
+ metadata.gz: 5ed7efe57fc0794edd3b52484a75c0842bc2b03f2ef88085cb4f4de609d5e55f1eaca3ed5287375b139035af2866adcfad57e7d1c45ea17ce3e5d250b9ca9f35
7
+ data.tar.gz: 6d85d2a75f5c953ec1c54f052fcb4d3e35da1d87d9affc0058cea5d3cae3a2a0886192f617c2d6409ab966e54eca6cbc428ad7d1e4ad8c4caf0829b30049d6f6
@@ -27,8 +27,8 @@ module Tabulator
27
27
  rows.slice! index_definition
28
28
  }
29
29
 
30
- header_row = rows[header].map { |raw_header_col|
31
- I18n.transliterate(raw_header_col.strip.gsub(/\s/, '_')).downcase.to_sym
30
+ header_row = rows[header].reduce([]) { |accepted_headers, raw_header_col|
31
+ accepted_headers << safe_generate_header(raw_header_col, accepted_headers)
32
32
  }
33
33
 
34
34
  new rows.drop(skip).map { |row|
@@ -36,6 +36,22 @@ module Tabulator
36
36
  }
37
37
  end
38
38
 
39
+ def self.generate_header text
40
+ I18n.transliterate(text.strip.gsub(/\s/, '_')).downcase.to_sym
41
+ end
42
+
43
+ def self.safe_generate_header text, headers
44
+ candidate = generate_header(text)
45
+ suffix = 1
46
+
47
+ while headers.include? candidate
48
+ candidate = generate_header([text, suffix].join('_'))
49
+ suffix += 1
50
+ end
51
+
52
+ candidate
53
+ end
54
+
39
55
  def initialize rows
40
56
  @rows = rows
41
57
  end
@@ -77,7 +93,12 @@ module Tabulator
77
93
 
78
94
  private
79
95
  def json_dump_options
80
- JSON::Ext::Generator::State.new indent: ' ', space: ' ', object_nl: "\n", array_nl: "\n"
96
+ {
97
+ indent: ' ',
98
+ space: ' ',
99
+ object_nl: "\n",
100
+ array_nl: "\n"
101
+ }
81
102
  end
82
103
  end
83
104
  end
@@ -1,3 +1,3 @@
1
1
  module Tabulator
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tabulator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - chapuzzo