easy_sheet_io 0.4.8.2 → 0.4.9
Sign up to get free protection for your applications and to get access to all the features.
- 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
|