censive 0.24 → 0.25
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 +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: 576378807981d5da8807494a94c45c7a9c42939f216b579daa97b39bfd179b28
|
4
|
+
data.tar.gz: 325e720a55384d7ecee7059b3889e2c401f0bed74bf3a212b44533113017a3a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5975a7104ed337ce034e76d322cc6096714cbfd3807261ec127d5c8ed78f438e618d1d72ea1d8e7fa058e561690c63cf4662967f6d5311c100169144e974225f
|
7
|
+
data.tar.gz: 359d426bd92041250647aa85c17262b1a6356c49147236c3b6ab86df16c56e87708b09839c74970ccafa17121d80ee764b80824b5723ea3817447ba43d514ae9
|
data/censive.gemspec
CHANGED
data/lib/censive.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
VERSION="0.25"
|
4
|
+
|
3
5
|
# ============================================================================
|
4
6
|
# censive - A quick and lightweight CSV handling library for Ruby
|
5
7
|
#
|
@@ -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.25'
|
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
|