• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

PolyMathOrg / DataFrame / 5392895710

pending completion
5392895710

push

github

web-flow
Merge pull request #271 from tomooda/master

add more formatting options to DataFrameCsvWriter

118 of 118 new or added lines in 3 files covered. (100.0%)

13056 of 13340 relevant lines covered (97.87%)

2.94 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

74.4
/src/DataFrame-IO/DataFrameCsvWriter.class.st
1
Class {
2
        #name : #DataFrameCsvWriter,
3
        #superclass : #DataFrameWriter,
4
        #instVars : [
5
                'separator',
6
                'lineEndConvention',
7
                'fieldWriter',
8
                'rowNameEnabled'
9
        ],
10
        #category : #'DataFrame-IO-Core'
11
}
12

13
{ #category : #'accessing - field writers' }
14
DataFrameCsvWriter >> defaultFieldWriter [
3✔
15

3✔
16
        ^ nil
3✔
17
]
3✔
18

19
{ #category : #accessing }
20
DataFrameCsvWriter >> defaultLineEndConvention [
3✔
21
        ^ {
3✔
22
                String cr -> #cr.
3✔
23
                String lf -> #lf.
3✔
24
                String crlf -> #crlf
3✔
25
        } asDictionary at: Smalltalk os lineEnding
3✔
26
]
3✔
27

28
{ #category : #accessing }
29
DataFrameCsvWriter >> defaultRowIndexEnabled [
3✔
30

3✔
31
        ^ true
3✔
32
]
3✔
33

34
{ #category : #accessing }
35
DataFrameCsvWriter >> defaultSeparator [
3✔
36
        ^ $,
3✔
37
]
3✔
38

39
{ #category : #'enable/disable' }
40
DataFrameCsvWriter >> disableRowName [
3✔
41

3✔
42
        self rowNameEnabled: false
3✔
43
]
3✔
44

45
{ #category : #'enable/disable' }
46
DataFrameCsvWriter >> enableRowName [
×
47

×
48
        self rowNameEnabled: true
×
49
]
×
50

51
{ #category : #'accessing - field writers' }
52
DataFrameCsvWriter >> fieldWriter [
×
53

×
54
        ^ fieldWriter
×
55
]
×
56

57
{ #category : #'accessing - field writers' }
58
DataFrameCsvWriter >> fieldWriter: aSymbol [
3✔
59

3✔
60
        fieldWriter := aSymbol
3✔
61
]
3✔
62

63
{ #category : #initialization }
64
DataFrameCsvWriter >> initialize [
3✔
65

3✔
66
        super initialize.
3✔
67
        separator := self defaultSeparator.
3✔
68
        lineEndConvention := self defaultLineEndConvention.
3✔
69
        fieldWriter := self defaultFieldWriter.
3✔
70
        rowNameEnabled := self defaultRowIndexEnabled
3✔
71
]
3✔
72

73
{ #category : #accessing }
74
DataFrameCsvWriter >> lineEndConvention [
3✔
75
        ^ lineEndConvention
3✔
76
]
3✔
77

78
{ #category : #accessing }
79
DataFrameCsvWriter >> lineEndConvention: aSymbol [
3✔
80
        "Set the end of line convention to be used.
3✔
81
        Either #cr, #lf or #crlf (os convention by default)."
3✔
82

3✔
83
        self assert: (#(cr lf crlf) includes: aSymbol).
3✔
84
        lineEndConvention := aSymbol
3✔
85
]
3✔
86

87
{ #category : #'accessing - field writers' }
88
DataFrameCsvWriter >> objectFieldWriter [
×
89

×
90
        ^ #object
×
91
]
×
92

93
{ #category : #'accessing - field writers' }
94
DataFrameCsvWriter >> optionalQuotedFieldWriter [
×
95

×
96
        ^ #optionalQuoted
×
97
]
×
98

99
{ #category : #'accessing - field writers' }
100
DataFrameCsvWriter >> quotedFieldWriter [
×
101

×
102
        ^ #quoted
×
103
]
×
104

105
{ #category : #'accessing - field writers' }
106
DataFrameCsvWriter >> rawFieldWriter [
3✔
107

3✔
108
        ^ #raw
3✔
109
]
3✔
110

111
{ #category : #accessing }
112
DataFrameCsvWriter >> rowNameEnabled [
3✔
113

3✔
114
        ^ rowNameEnabled
3✔
115
]
3✔
116

117
{ #category : #accessing }
118
DataFrameCsvWriter >> rowNameEnabled: aBoolean [
3✔
119

3✔
120
        rowNameEnabled := aBoolean = true
3✔
121
]
3✔
122

123
{ #category : #accessing }
124
DataFrameCsvWriter >> separator [
3✔
125
        ^ separator
3✔
126
]
3✔
127

128
{ #category : #accessing }
129
DataFrameCsvWriter >> separator: anObject [
3✔
130
        separator := anObject
3✔
131
]
3✔
132

133
{ #category : #'accessing - field writers' }
134
DataFrameCsvWriter >> useObjectFieldWriter [
×
135

×
136
        self fieldWriter: self objectFieldWriter
×
137
]
×
138

139
{ #category : #'accessing - field writers' }
140
DataFrameCsvWriter >> useOptionalQuotedFieldWriter [
×
141

×
142
        self fieldWriter: self optionalQuotedFieldWriter
×
143
]
×
144

145
{ #category : #'accessing - field writers' }
146
DataFrameCsvWriter >> useQuotedFieldWriter [
×
147

×
148
        self fieldWriter: self quotedFieldWriter
×
149
]
×
150

151
{ #category : #'accessing - field writers' }
152
DataFrameCsvWriter >> useRawFieldWriter [
3✔
153

3✔
154
        self fieldWriter: self rawFieldWriter
3✔
155
]
3✔
156

157
{ #category : #writing }
158
DataFrameCsvWriter >> write: aDataFrame to: aFileReference [
3✔
159

3✔
160
        | stream writer |
3✔
161
        stream := aFileReference writeStream.
3✔
162

3✔
163
        writer := NeoCSVWriter on: stream.
3✔
164
        fieldWriter ifNotNil: [ writer fieldWriter: fieldWriter ].
3✔
165
        writer separator: self separator.
3✔
166
        writer lineEndConvention: self lineEndConvention.
3✔
167

3✔
168
        self rowNameEnabled ifTrue: [
3✔
169
                writer
3✔
170
                        writeField: '';
3✔
171
                        writeSeparator ].
3✔
172
        writer writeHeader: aDataFrame columnNames.
3✔
173

3✔
174
        self rowNameEnabled
3✔
175
                ifTrue: [
3✔
176
                        aDataFrame do: [ :row |
3✔
177
                                writer
3✔
178
                                        writeField: row name;
3✔
179
                                        writeSeparator;
3✔
180
                                        nextPut: row ] ]
3✔
181
                ifFalse: [ aDataFrame do: [ :row | writer nextPut: row ] ].
3✔
182

3✔
183
        writer close
3✔
184
]
3✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc