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 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