censive 0.24 → 0.26
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/censive.gemspec +1 -1
- data/lib/censive.rb +6 -41
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 352fd46b3f3fe35f80d3ccdb10349112d5880007810265eaf05eaeaae77d13d4
|
4
|
+
data.tar.gz: 7cf15c90f45741185c681d962d0dcf0b95c0fed08ad40d0d98823d12bbc388dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: abc657f4df8f53d133008c653ab0fc632dd586443ece89a6961cec22c1794adc36d1bac76fbfd77480e83e5ae46dd2ee5943368d7c05bf07066ed6a6ff688a99
|
7
|
+
data.tar.gz: dbd98b250d85730a299b965cd73defc4b5ef17e3372ec5c78f5b84a42f43cd7196e4fe471c0ef0e316fb8e3e5880779976f31cc1479d96ec0ec937c0b01df2a8
|
data/censive.gemspec
CHANGED
data/lib/censive.rb
CHANGED
@@ -28,6 +28,8 @@
|
|
28
28
|
require "strscan"
|
29
29
|
|
30
30
|
class Censive < StringScanner
|
31
|
+
VERSION="0.26"
|
32
|
+
|
31
33
|
attr :encoding, :out, :rows
|
32
34
|
|
33
35
|
def self.parse(...)
|
@@ -36,7 +38,7 @@ class Censive < StringScanner
|
|
36
38
|
|
37
39
|
def self.writer(obj=nil, **opts, &code)
|
38
40
|
case obj
|
39
|
-
when String then File.open(obj, "w") {|io|
|
41
|
+
when String then File.open(obj, "w") {|io| new(out: io, **opts, &code) }
|
40
42
|
when IO,nil then new(out: obj, **opts, &code)
|
41
43
|
else abort "#{File.basename($0)}: invalid #{obj.class} object in writer"
|
42
44
|
end
|
@@ -71,7 +73,7 @@ class Censive < StringScanner
|
|
71
73
|
@encoding = str.encoding
|
72
74
|
@excel = excel
|
73
75
|
@mode = mode
|
74
|
-
@out = out ||
|
76
|
+
@out = out || $stdout
|
75
77
|
@relax = relax
|
76
78
|
@strip = strip
|
77
79
|
|
@@ -100,6 +102,8 @@ class Censive < StringScanner
|
|
100
102
|
@quoted = @excel ? /(?:=)?#{@quote}/o : @quote
|
101
103
|
@unquoted = /[^#{@sep}#{@cr}#{@lf}][^#{@quote}#{@cr}#{@lf}]*/o
|
102
104
|
@leadzero = /\A0\d*\z/
|
105
|
+
|
106
|
+
yield self if block_given?
|
103
107
|
end
|
104
108
|
|
105
109
|
def reset(str=nil)
|
@@ -248,42 +252,3 @@ class Censive < StringScanner
|
|
248
252
|
abort "\n#{File.basename($0)}: #{msg} at character #{pos} near '#{string[pos-4,7]}'"
|
249
253
|
end
|
250
254
|
end
|
251
|
-
|
252
|
-
if __FILE__ == $0
|
253
|
-
str = DATA.gets("\n\n").chomp
|
254
|
-
# str = File.read(ARGV.first || "lc-2023.csv")
|
255
|
-
# str = File.open("KEN_ALL.CSV", "r:cp932").read
|
256
|
-
|
257
|
-
# require "stringio"
|
258
|
-
# csv = Censive.new(str, excel: true, relax: true)
|
259
|
-
# out = "" # StringIO.new
|
260
|
-
# csv.export(out: out) # (excel: true) # sep: "|")
|
261
|
-
# puts out # .string
|
262
|
-
|
263
|
-
# csv = Censive.new(str, excel: true, relax: true, out: "")
|
264
|
-
# out = csv.export
|
265
|
-
# puts out.out
|
266
|
-
|
267
|
-
puts Censive.parse(str, excel: true, relax: true).to_csv
|
268
|
-
end
|
269
|
-
|
270
|
-
__END__
|
271
|
-
"AAA "BBB",CCC,"DDD"
|
272
|
-
|
273
|
-
"CHUI, LOK HANG "BENNY",224325325610,="001453","Hemoglobin A1c",=""
|
274
|
-
"Don",="007",10,"Ed"
|
275
|
-
Name,Age,,,Shoe,,,
|
276
|
-
"Alice",27,5
|
277
|
-
Bob,33,10 1/2
|
278
|
-
Charlie or "Chuck",=B2 + B3,9
|
279
|
-
Subtotal,=sum(B2:B5),="01234"
|
280
|
-
A,B,C,D
|
281
|
-
A,B,"C",D
|
282
|
-
A,B,C",D
|
283
|
-
A,B,"C",D
|
284
|
-
08/27/2022,="73859443",="04043260",,"Crossover @ Mathilda","CHO, JOELLE "JOJO"",08/19/2022
|
285
|
-
123,
|
286
|
-
123,"CHO, JOELLE "JOJO"",456
|
287
|
-
123,"CHO, JOELLE ""JOJO""",456
|
288
|
-
=,=x,x=,="x",="","","=",123,0123,="123",="0123"
|
289
|
-
,=x,x=,x,,,,,,=,,123,="0123",123,,="0123"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: censive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.26'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Shreeve
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A quick and lightweight CSV handling library for Ruby
|
14
14
|
email: steve.shreeve@gmail.com
|
@@ -47,7 +47,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
requirements: []
|
50
|
-
rubygems_version: 3.4.
|
50
|
+
rubygems_version: 3.4.8
|
51
51
|
signing_key:
|
52
52
|
specification_version: 4
|
53
53
|
summary: A quick and lightweight CSV handling library for Ruby
|