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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c96b508dacc94ed1f5627c6a5b40f2282d08178a54b9114201d818a88752984d
4
- data.tar.gz: 3b028f6e872d98c4f9dd5405a5a9278e439893270442a87d35d50823ae756e29
3
+ metadata.gz: 68608659ae3ff0047c484023e40620ff8fe21a6e4a581bf5e8f8b4ff34f4b522
4
+ data.tar.gz: 1bbfe8f270b425dbdd7aa493e53e27e500561885fb96e93c01ba6682abdc5a49
5
5
  SHA512:
6
- metadata.gz: ef3207db108cee37db118c5ec8e73b05bd43fd721f1a2685f88abf2e8a73d2ea780c42cdef37169b9bdfa221e7ca6afa53c67871f2e42e154b9f480e6b6a75b8
7
- data.tar.gz: e3bc6a74cb7f4fca7602b5c4a9f1cb3d1eac21e35b492b0303080ee9fc700536b3fb0b7750b9ec1c8412203edca5e2579791926e02ec4f76fafbb168d11d3b0b
6
+ metadata.gz: 55127eb592a1e4ee2616d084dff54b87d10dbb22c63b845880b52a85f1c2c28c5cf6f064a02a5c970c54d56af6bc3b6e7d065a253a61f8e83a12dfc75dd2d68a
7
+ data.tar.gz: f83ef0ff3cd9b7554348613ac3cef1a5cebc6ea3f0e40ff66a6765bf2925d5baddeb83eb1bbf72418f27056704fe6efe2359fbcd8c2dc81d9a2c496adea136f1
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EasySheetIo
4
- VERSION = "0.4.8.2"
4
+ VERSION = "0.4.8.3"
5
5
  end
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
- return to_hash(csv, **opt)
40
+ h, i = to_hash(csv, **opt)
41
+ return h
41
42
  else # include format.nil? (in this case, convert to Daru::DF).
42
- ans = to_df(to_hash(csv, **opt), format: format)
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.set_index!(index) if index
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
- return to_hash(a2d, **opt)
65
+ h, i = to_hash(a2d, **opt)
66
+ return h
63
67
  else # include format.nil?
64
- ans = to_df(to_hash(a2d, **opt), format: format)
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.set_index!(index) if index
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
- return format.to_s == "daru" || format.nil? ? Daru::DataFrame.new(d) : Rover::DataFrame.new(d)
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
  #----------------------------
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy_sheet_io
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8.2
4
+ version: 0.4.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - show-o-atakun