easy_sheet_io 0.4.8.2 → 0.4.8.3
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 +23 -9
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68608659ae3ff0047c484023e40620ff8fe21a6e4a581bf5e8f8b4ff34f4b522
|
4
|
+
data.tar.gz: 1bbfe8f270b425dbdd7aa493e53e27e500561885fb96e93c01ba6682abdc5a49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55127eb592a1e4ee2616d084dff54b87d10dbb22c63b845880b52a85f1c2c28c5cf6f064a02a5c970c54d56af6bc3b6e7d065a253a61f8e83a12dfc75dd2d68a
|
7
|
+
data.tar.gz: f83ef0ff3cd9b7554348613ac3cef1a5cebc6ea3f0e40ff66a6765bf2925d5baddeb83eb1bbf72418f27056704fe6efe2359fbcd8c2dc81d9a2c496adea136f1
|
data/lib/easy_sheet_io.rb
CHANGED
@@ -37,14 +37,17 @@ 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
|
-
ans.
|
50
|
+
ans.index = ind_orig if index
|
48
51
|
end
|
49
52
|
|
50
53
|
return ans
|
@@ -59,11 +62,13 @@ module EasySheetIo
|
|
59
62
|
if format.to_s == "array"
|
60
63
|
return a2d
|
61
64
|
elsif format.to_s == "hash"
|
62
|
-
|
65
|
+
h, i = to_hash(a2d, **opt)
|
66
|
+
return h
|
63
67
|
else # include format.nil?
|
64
|
-
|
68
|
+
h, ind_orig = to_hash(a2d, index: index, **opt)
|
69
|
+
ans = to_df(h, format: format)
|
65
70
|
if format.to_s == "daru" || format.nil?
|
66
|
-
ans.
|
71
|
+
ans.index = ind_orig if index
|
67
72
|
end
|
68
73
|
return ans
|
69
74
|
end
|
@@ -75,7 +80,8 @@ module EasySheetIo
|
|
75
80
|
def to_hash(array2d, line_from: 1, line_until: nil, line_ignored: nil,
|
76
81
|
column_from: nil, column_until: nil,
|
77
82
|
header: 0, symbol_header: false,
|
78
|
-
replaced_by_nil: [], analyze_type: true
|
83
|
+
replaced_by_nil: [], analyze_type: true,
|
84
|
+
index: nil)
|
79
85
|
## TODO.. column_from: , column_until:
|
80
86
|
|
81
87
|
# Define Read Range------------
|
@@ -91,6 +97,10 @@ module EasySheetIo
|
|
91
97
|
# And get originally array-----
|
92
98
|
output = array2d[lfrom...luntil]
|
93
99
|
# -----------------------------
|
100
|
+
|
101
|
+
# Then get data of index-------
|
102
|
+
ind_orig = index ? output.map{ _1[index] } : nil
|
103
|
+
# -----------------------------
|
94
104
|
|
95
105
|
# Selecct Column---------------
|
96
106
|
output = output.map { _1[column_from...column_until] } if column_from || column_until
|
@@ -112,12 +122,16 @@ module EasySheetIo
|
|
112
122
|
# -----------------------------
|
113
123
|
|
114
124
|
# Make Hash(Header => Data Array)
|
115
|
-
return hd.each_with_object({}).with_index {|(hdr, hash), i| hash[hdr]=output_transpose[i]}
|
125
|
+
return hd.each_with_object({}).with_index {|(hdr, hash), i| hash[hdr]=output_transpose[i]}, ind_orig
|
116
126
|
end
|
117
127
|
|
118
128
|
# Convert Hash to DataFrame
|
119
129
|
def to_df(d, format: :daru)
|
120
|
-
|
130
|
+
if format.to_s == "daru" || format.nil?
|
131
|
+
Daru::DataFrame.new(d)
|
132
|
+
else
|
133
|
+
Rover::DataFrame.new(d)
|
134
|
+
end
|
121
135
|
end
|
122
136
|
|
123
137
|
#----------------------------
|