easy_sheet_io 0.4.8.2 → 0.4.9
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/lib/easy_sheet_io/version.rb +1 -1
- data/lib/easy_sheet_io.rb +31 -9
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7640c37216da2bfd884b84c614c924e0a3eca722a357c2ccca408e9fee42fc8
|
4
|
+
data.tar.gz: '0668281347c6848a0cdde66ff3e9db439202ae1c476807f5dbaa75a73f5415b6'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a7b3ab88ee7f34796898fe59db951d83d1c02c6c4d84aee9bba216abe5b3c57cfd2810b60d5af831a0b28459a6086d8539bbdf736781b6e5eaef09a3b46ba00
|
7
|
+
data.tar.gz: 9eed84c33a92b0f653241928bdccb10a070615767832820acf3ea14343d06a25527597c86d007b3dfd61c64b81d14c32a9dc4e82bcdeb432ab477f65ff70af57
|
data/lib/easy_sheet_io.rb
CHANGED
@@ -37,14 +37,21 @@ module EasySheetIo
|
|
37
37
|
if format.to_s == "array"
|
38
38
|
return csv
|
39
39
|
elsif format.to_s == "hash"
|
40
|
-
|
40
|
+
h, i = to_hash(csv, **opt)
|
41
|
+
return h
|
41
42
|
else # include format.nil? (in this case, convert to Daru::DF).
|
42
|
-
|
43
|
+
|
44
|
+
h, ind_orig = to_hash(csv, index: index, **opt)
|
45
|
+
ans = to_df(h, format: format)
|
43
46
|
|
44
47
|
# Converting Encode and Setting index.. rover not supported yet
|
45
48
|
if format.to_s == "daru" || format.nil?
|
46
49
|
ans.convert_enc!(from: encoding, to: "utf-8")
|
47
|
-
|
50
|
+
begin
|
51
|
+
ans.index = ind_orig if index
|
52
|
+
rescue
|
53
|
+
warn "Indexing failed (Parhaps due to duplicated index)."
|
54
|
+
end
|
48
55
|
end
|
49
56
|
|
50
57
|
return ans
|
@@ -59,11 +66,17 @@ module EasySheetIo
|
|
59
66
|
if format.to_s == "array"
|
60
67
|
return a2d
|
61
68
|
elsif format.to_s == "hash"
|
62
|
-
|
69
|
+
h, i = to_hash(a2d, **opt)
|
70
|
+
return h
|
63
71
|
else # include format.nil?
|
64
|
-
|
72
|
+
h, ind_orig = to_hash(a2d, index: index, **opt)
|
73
|
+
ans = to_df(h, format: format)
|
65
74
|
if format.to_s == "daru" || format.nil?
|
66
|
-
|
75
|
+
begin
|
76
|
+
ans.index = ind_orig if index
|
77
|
+
rescue
|
78
|
+
warn "Indexing failed (Parhaps due to duplicated index)."
|
79
|
+
end
|
67
80
|
end
|
68
81
|
return ans
|
69
82
|
end
|
@@ -75,7 +88,8 @@ module EasySheetIo
|
|
75
88
|
def to_hash(array2d, line_from: 1, line_until: nil, line_ignored: nil,
|
76
89
|
column_from: nil, column_until: nil,
|
77
90
|
header: 0, symbol_header: false,
|
78
|
-
replaced_by_nil: [], analyze_type: true
|
91
|
+
replaced_by_nil: [], analyze_type: true,
|
92
|
+
index: nil)
|
79
93
|
## TODO.. column_from: , column_until:
|
80
94
|
|
81
95
|
# Define Read Range------------
|
@@ -91,6 +105,10 @@ module EasySheetIo
|
|
91
105
|
# And get originally array-----
|
92
106
|
output = array2d[lfrom...luntil]
|
93
107
|
# -----------------------------
|
108
|
+
|
109
|
+
# Then get data of index-------
|
110
|
+
ind_orig = index ? output.map{ _1[index] } : nil
|
111
|
+
# -----------------------------
|
94
112
|
|
95
113
|
# Selecct Column---------------
|
96
114
|
output = output.map { _1[column_from...column_until] } if column_from || column_until
|
@@ -112,12 +130,16 @@ module EasySheetIo
|
|
112
130
|
# -----------------------------
|
113
131
|
|
114
132
|
# Make Hash(Header => Data Array)
|
115
|
-
return hd.each_with_object({}).with_index {|(hdr, hash), i| hash[hdr]=output_transpose[i]}
|
133
|
+
return hd.each_with_object({}).with_index {|(hdr, hash), i| hash[hdr]=output_transpose[i]}, ind_orig
|
116
134
|
end
|
117
135
|
|
118
136
|
# Convert Hash to DataFrame
|
119
137
|
def to_df(d, format: :daru)
|
120
|
-
|
138
|
+
if format.to_s == "daru" || format.nil?
|
139
|
+
Daru::DataFrame.new(d)
|
140
|
+
else
|
141
|
+
Rover::DataFrame.new(d)
|
142
|
+
end
|
121
143
|
end
|
122
144
|
|
123
145
|
#----------------------------
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy_sheet_io
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- show-o-atakun
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: daru
|