@@ -5,11 +5,30 @@ Class {
55 ' separator' ,
66 ' lineEndConvention' ,
77 ' fieldWriter' ,
8- ' rowNameEnabled'
8+ ' rowNameEnabled' ,
9+ ' columnNameEnabled'
910 ],
1011 #category : #' DataFrame-IO-Core'
1112}
1213
14+ { #category : #accessing }
15+ DataFrameCsvWriter >> columnNameEnabled [
16+
17+ ^ columnNameEnabled
18+ ]
19+
20+ { #category : #accessing }
21+ DataFrameCsvWriter >> columnNameEnabled: aBoolean [
22+
23+ columnNameEnabled := aBoolean = true
24+ ]
25+
26+ { #category : #accessing }
27+ DataFrameCsvWriter >> defaultColumnIndexEnabled [
28+
29+ ^ true
30+ ]
31+
1332{ #category : #' accessing - field writers' }
1433DataFrameCsvWriter >> defaultFieldWriter [
1534
@@ -36,12 +55,24 @@ DataFrameCsvWriter >> defaultSeparator [
3655 ^ $,
3756]
3857
58+ { #category : #' enable/disable' }
59+ DataFrameCsvWriter >> disableColumnName [
60+
61+ self columnNameEnabled: false
62+ ]
63+
3964{ #category : #' enable/disable' }
4065DataFrameCsvWriter >> disableRowName [
4166
4267 self rowNameEnabled: false
4368]
4469
70+ { #category : #' enable/disable' }
71+ DataFrameCsvWriter >> enableColumnName [
72+
73+ self columnNameEnabled: true
74+ ]
75+
4576{ #category : #' enable/disable' }
4677DataFrameCsvWriter >> enableRowName [
4778
@@ -67,7 +98,8 @@ DataFrameCsvWriter >> initialize [
6798 separator := self defaultSeparator.
6899 lineEndConvention := self defaultLineEndConvention.
69100 fieldWriter := self defaultFieldWriter.
70- rowNameEnabled := self defaultRowIndexEnabled
101+ rowNameEnabled := self defaultRowIndexEnabled.
102+ columnNameEnabled := self defaultColumnIndexEnabled
71103]
72104
73105{ #category : #accessing }
@@ -156,16 +188,15 @@ DataFrameCsvWriter >> useRawFieldWriter [
156188
157189{ #category : #writing }
158190DataFrameCsvWriter >> write: aDataFrame to: aFileReference [
159-
160191 | stream writer |
161192 stream := aFileReference writeStream.
162-
163193 writer := NeoCSVWriter on: stream.
164194 fieldWriter ifNotNil: [ writer fieldWriter: fieldWriter ].
165195 writer separator: self separator.
166196 writer lineEndConvention: self lineEndConvention.
167197
168- self rowNameEnabled ifTrue: [
198+ self columnNameEnabled ifTrue: [
199+ self rowNameEnabled ifTrue: [
169200 writer
170201 writeField: ' ' ;
171202 writeSeparator ].
@@ -178,7 +209,17 @@ DataFrameCsvWriter >> write: aDataFrame to: aFileReference [
178209 writeField: row name;
179210 writeSeparator;
180211 nextPut: row ] ]
181- ifFalse: [ aDataFrame do: [ :row | writer nextPut: row ] ].
212+ ifFalse: [ aDataFrame do: [ :row | writer nextPut: row ] ]]
213+
214+ ifFalse: [
215+ self rowNameEnabled ifTrue: [
216+ aDataFrame do: [ :row |
217+ writer
218+ writeField: row name;
219+ writeSeparator;
220+ nextPut: row ] ]
221+ ifFalse: [ aDataFrame do: [ :row | writer nextPut: row ] ] ].
222+
223+ writer close.
182224
183- writer close
184225]
0 commit comments