easy_sheet_io 0.4.8.2 → 0.4.8.3
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 +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
|
#----------------------------
|