sql-server-raw-file 0.1.2 → 0.1.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
  SHA1:
3
- metadata.gz: 97dd8f35e8d1d64c91adf9164cc279a48963aeb2
4
- data.tar.gz: 2652ef2a7206d844246345042df4b59e5ab29727
3
+ metadata.gz: f0a2b45b85ef848488ef5c95351eb47908fef50b
4
+ data.tar.gz: a50f828eef6cfbbc284bdb0f01777c6be14cfd48
5
5
  SHA512:
6
- metadata.gz: 183c48f0e68f56e402263324819505bead820d4f35cda87a565e2d8874b56cd88a2b92ef4562a4035e87ee105835386d1c0e23a7d8f333ef91c8d58ba40f1087
7
- data.tar.gz: 2ba5ee93660ccce551e46a3b8154fb63c72ebeaed3016abf0140cf5003f319893b9bcb48b6fd2ca059b945101287421014c7aa041abedabb7cb1349d21a8af29
6
+ metadata.gz: c36e367bdaf32e80d4c50cdc54c6baf4880a53b9a4c31d75eed57db74017109ab4f910fe36294da3303a6c218cfefffb96a775ec5b068f87c99e940583309d5d
7
+ data.tar.gz: 1018b0c785ed7cb6ab454a311f111a7cce7b973fbab572a1c475d4c5ce7d39d46d5c1420df79ded488db6baf7b22d1e3a326f540086214d8db3ed36b1651d971
data/CHANGELOG.md CHANGED
@@ -1,61 +1,87 @@
1
+ ## 0.1.3 (Jun 3, 2016)
2
+
3
+ Features:
4
+
5
+ - add Fixture module
6
+ - add fixture data directory
7
+ - add SQL Server 12 raw file support
8
+
9
+ Bugfixes:
10
+
11
+ - check test_sql_data_and_header.rb
12
+
13
+
1
14
  ## 0.1.2 (Jan 25, 2016)
2
15
 
3
16
  Features:
4
17
 
5
- - added SqlServerDts::RawFile#get_len
6
- * get length of data by data or metadata
7
- - added support of data types
8
- * smallint
9
- * real (float(24))
10
- * money (decimal(19,4)), smallmoney ((decimal(10,4)))
11
- * tinyint
12
- * uniqueidentifier
13
- * varbinary, binary, timestamp
14
- * date
15
- * smalldatetime
16
- * time
17
- * datetimeoffset
18
+ - add SqlServerDts::RawFile#get_len
19
+
20
+ * get length of data by data or metadata
21
+
22
+ - add support of data types
23
+
24
+ * smallint
25
+ * real (float(24))
26
+ * money (decimal(19,4)), smallmoney ((decimal(10,4)))
27
+ * tinyint
28
+ * uniqueidentifier
29
+ * varbinary, binary, timestamp
30
+ * date
31
+ * smalldatetime
32
+ * time
33
+ * datetimeoffset
18
34
 
19
35
  Bugfixes:
20
36
 
21
- - fixed mappings for:
22
- * int
23
- * float
24
- * bigint
25
- * datetime
26
- * datetime2
37
+ - fixed mappings for:
38
+
39
+ * int
40
+ * float
41
+ * bigint
42
+ * datetime
43
+ * datetime2
44
+
27
45
 
28
46
  ## 0.1.1 (Jan 20, 2016)
29
47
 
30
48
  Features:
31
49
 
32
- - added SqlServerDts::RawFile#eof?
33
- * check io-stream eof
34
- - added SqlServerDts::RawFile#pos
35
- * get current position in inner io-stream object
50
+ - add SqlServerDts::RawFile#eof?
51
+
52
+ * check io-stream eof
53
+
54
+ - add SqlServerDts::RawFile#pos
55
+
56
+ * get current position in inner io-stream object
36
57
 
37
58
  Bugfixes:
38
59
 
39
- - missing method SqlServerDts::RawFile#close
40
- * is need to close inner io-stream object in some cases
60
+ - missing method SqlServerDts::RawFile#close
61
+
62
+ * is need to close inner io-stream object in some cases
63
+
41
64
 
42
65
  ## 0.0.1 (Jan 5, 2016)
43
66
 
44
67
  Features:
45
68
 
46
- - added support of SQL Server Dts Raw File versions:
47
- * 00.90.00.00 => 9 (SQL Server: 9/10)
48
- * 00.10.01.00 => 10 (SQL Server: 11)
49
- - added support of basic data types:
50
- * int (i.e. NULL w/o cast)
51
- * float
52
- * bit
53
- * bigint
54
- * (n)(var)char
55
- * decimal, numeric
56
- * datetime
57
- * datetime2 (only SQL Server 10/11)
69
+ - add support of SQL Server Dts Raw File versions:
70
+
71
+ * 00.90.00.00 => 9 (SQL Server: 9,10)
72
+ * 00.10.01.00 => 10 (SQL Server: 11)
73
+
74
+ - add support of basic data types:
75
+
76
+ * int (i.e. NULL w/o cast)
77
+ * float
78
+ * bit
79
+ * bigint
80
+ * (n)(var)char
81
+ * decimal, numeric
82
+ * datetime
83
+ * datetime2 (only SQL Server 10/11)
58
84
 
59
85
  Bugfixes:
60
86
 
61
- - initial release
87
+ - initial release
data/README.md CHANGED
@@ -1,13 +1,19 @@
1
1
  # sql-server-raw-file: sql-server-raw-file lib
2
2
 
3
- Converts SQL Server Integration Services Raw File source to hash.
3
+ Converts SQL Server Integration Services raw file to hash objects.
4
+ Supports raw files generated from SQL Server 9, 10, 11, 12.
4
5
 
5
6
  ### Installation and usage
6
7
 
8
+ Install:
9
+
10
+ ```
11
+ gem install sql-server-raw-file
7
12
  ```
8
- 1) gem install sql-server-raw-file
9
- 2) usage (examples):
10
13
 
14
+ Usage:
15
+
16
+ ```ruby
11
17
  # begin example 1
12
18
  require 'sql_server_raw_file'
13
19
 
@@ -42,11 +48,10 @@ SqlServerDts::RawFile.new('/path/to/sql/raw/file') { |raw_obj, raw_io|
42
48
  # ...
43
49
  }
44
50
  # end example 2
45
-
46
- 3) more detailed examples in ./test/test_sql_data_and_header.rb
47
51
  ```
48
52
 
53
+ More detailed examples in ./fixtures/fixture_sql_data_and_header.rb
54
+
49
55
  ### Troubleshooting
50
56
 
51
- mailto:d.a.mullo1981@gmail.com
52
- subject: sql-server-raw-file issue
57
+ Visit to [sql-server-raw-file homepage](https://github.com/dim11981/sql-server-raw-file)
@@ -0,0 +1 @@
1
+ 4
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/data/sql12.raw ADDED
Binary file
@@ -0,0 +1,3 @@
1
+ int float bit bigint varchar char nvarchar nchar decimal numeric datetime datetime2 NULL varbinary binary timestamp money smallmoney date time smalldatetime datetimeoffset uniqueidentifier smallint real tinyint
2
+ 1 3.14159265 true 1073741824 This is a variable length char string This is a char string Это строка переменной длины в Юникоде Это строка в Юникоде 9.110000 7.620000 2016-06-03 14:06:27.257 2016-06-03 14:06:27.0000000 30313233343536373839 40414243000000000000 0000000000000fa0 123.4500 2.2300 2016-06-03 14:06:27.0000000 2016-06-03 14:06:00.000 2016-06-03 14:06:27.0000000+03:00 6f9619ff-8b86-d011-b42d-00c04fc964ff 30000 1343542784.0 200
3
+ -2 -12.333333 false -1162261467 This is another variable length char string This is another char string Это еще одна строка переменной длины в Юникоде Это еще одна строка в Юникоде -99.999000 -5.560000 2016-06-03 14:06:27.257 2016-06-03 14:06:27.2587012 39383736353433323130 43424140000000000000 0000000000000fa0 -123.4500 -2.2300 2016-06-03 14:06:27.2570000 2016-06-03 14:06:00.000 2016-06-03 06:36:27.2587012-04:30 ffefaa09-8b86-d011-b42d-00c04fc964ff -30000 -434046272.0 10
@@ -0,0 +1,340 @@
1
+ [
2
+ {
3
+ "name": "int",
4
+ "data_type": 3,
5
+ "max_length": 4,
6
+ "p2": 116,
7
+ "p3": 12,
8
+ "p4": -1,
9
+ "precision": 0,
10
+ "scale": 0,
11
+ "code_page": 0,
12
+ "p8": 0,
13
+ "p9": 0
14
+ },
15
+ {
16
+ "name": "float",
17
+ "data_type": 5,
18
+ "max_length": 8,
19
+ "p2": 120,
20
+ "p3": 16,
21
+ "p4": -1,
22
+ "precision": 0,
23
+ "scale": 0,
24
+ "code_page": 0,
25
+ "p8": 0,
26
+ "p9": 0
27
+ },
28
+ {
29
+ "name": "bit",
30
+ "data_type": 11,
31
+ "max_length": 2,
32
+ "p2": 814,
33
+ "p3": 20,
34
+ "p4": -1,
35
+ "precision": 0,
36
+ "scale": 0,
37
+ "code_page": 0,
38
+ "p8": 0,
39
+ "p9": 0
40
+ },
41
+ {
42
+ "name": "bigint",
43
+ "data_type": 20,
44
+ "max_length": 8,
45
+ "p2": 192,
46
+ "p3": 24,
47
+ "p4": -1,
48
+ "precision": 0,
49
+ "scale": 0,
50
+ "code_page": 0,
51
+ "p8": 0,
52
+ "p9": 0
53
+ },
54
+ {
55
+ "name": "varchar",
56
+ "data_type": 129,
57
+ "max_length": 128,
58
+ "p2": 228,
59
+ "p3": 28,
60
+ "p4": -1,
61
+ "precision": 0,
62
+ "scale": 0,
63
+ "code_page": 1251,
64
+ "p8": 0,
65
+ "p9": 0
66
+ },
67
+ {
68
+ "name": "char",
69
+ "data_type": 129,
70
+ "max_length": 128,
71
+ "p2": 388,
72
+ "p3": 32,
73
+ "p4": -1,
74
+ "precision": 0,
75
+ "scale": 0,
76
+ "code_page": 1251,
77
+ "p8": 0,
78
+ "p9": 0
79
+ },
80
+ {
81
+ "name": "nvarchar",
82
+ "data_type": 130,
83
+ "max_length": 128,
84
+ "p2": 556,
85
+ "p3": 36,
86
+ "p4": -1,
87
+ "precision": 0,
88
+ "scale": 0,
89
+ "code_page": 0,
90
+ "p8": 0,
91
+ "p9": 0
92
+ },
93
+ {
94
+ "name": "nchar",
95
+ "data_type": 130,
96
+ "max_length": 128,
97
+ "p2": 820,
98
+ "p3": 40,
99
+ "p4": -1,
100
+ "precision": 0,
101
+ "scale": 0,
102
+ "code_page": 0,
103
+ "p8": 0,
104
+ "p9": 0
105
+ },
106
+ {
107
+ "name": "decimal",
108
+ "data_type": 131,
109
+ "max_length": 19,
110
+ "p2": 357,
111
+ "p3": 44,
112
+ "p4": -1,
113
+ "precision": 18,
114
+ "scale": 6,
115
+ "code_page": 0,
116
+ "p8": 0,
117
+ "p9": 0
118
+ },
119
+ {
120
+ "name": "numeric",
121
+ "data_type": 131,
122
+ "max_length": 19,
123
+ "p2": 517,
124
+ "p3": 48,
125
+ "p4": -1,
126
+ "precision": 18,
127
+ "scale": 6,
128
+ "code_page": 0,
129
+ "p8": 0,
130
+ "p9": 0
131
+ },
132
+ {
133
+ "name": "datetime",
134
+ "data_type": 135,
135
+ "max_length": 16,
136
+ "p2": 128,
137
+ "p3": 52,
138
+ "p4": -1,
139
+ "precision": 0,
140
+ "scale": 0,
141
+ "code_page": 0,
142
+ "p8": 0,
143
+ "p9": 0
144
+ },
145
+ {
146
+ "name": "datetime2",
147
+ "data_type": 304,
148
+ "max_length": 16,
149
+ "p2": 144,
150
+ "p3": 56,
151
+ "p4": -1,
152
+ "precision": 0,
153
+ "scale": 7,
154
+ "code_page": 0,
155
+ "p8": 0,
156
+ "p9": 0
157
+ },
158
+ {
159
+ "name": "NULL",
160
+ "data_type": 3,
161
+ "max_length": 4,
162
+ "p2": 224,
163
+ "p3": 60,
164
+ "p4": -1,
165
+ "precision": 0,
166
+ "scale": 0,
167
+ "code_page": 0,
168
+ "p8": 0,
169
+ "p9": 0
170
+ },
171
+ {
172
+ "name": "varbinary",
173
+ "data_type": 128,
174
+ "max_length": 10,
175
+ "p2": 1084,
176
+ "p3": 64,
177
+ "p4": 0,
178
+ "precision": 0,
179
+ "scale": 0,
180
+ "code_page": 0,
181
+ "p8": 0,
182
+ "p9": 0
183
+ },
184
+ {
185
+ "name": "binary",
186
+ "data_type": 128,
187
+ "max_length": 10,
188
+ "p2": 1096,
189
+ "p3": 68,
190
+ "p4": 4,
191
+ "precision": 0,
192
+ "scale": 0,
193
+ "code_page": 0,
194
+ "p8": 0,
195
+ "p9": 0
196
+ },
197
+ {
198
+ "name": "timestamp",
199
+ "data_type": 128,
200
+ "max_length": 8,
201
+ "p2": 208,
202
+ "p3": 72,
203
+ "p4": 8,
204
+ "precision": 0,
205
+ "scale": 0,
206
+ "code_page": 0,
207
+ "p8": 0,
208
+ "p9": 0
209
+ },
210
+ {
211
+ "name": "money",
212
+ "data_type": 6,
213
+ "max_length": 8,
214
+ "p2": 200,
215
+ "p3": 76,
216
+ "p4": -1,
217
+ "precision": 0,
218
+ "scale": 0,
219
+ "code_page": 0,
220
+ "p8": 0,
221
+ "p9": 0
222
+ },
223
+ {
224
+ "name": "smallmoney",
225
+ "data_type": 6,
226
+ "max_length": 8,
227
+ "p2": 216,
228
+ "p3": 80,
229
+ "p4": -1,
230
+ "precision": 0,
231
+ "scale": 0,
232
+ "code_page": 0,
233
+ "p8": 0,
234
+ "p9": 0
235
+ },
236
+ {
237
+ "name": "date",
238
+ "data_type": 133,
239
+ "max_length": 6,
240
+ "p2": 1078,
241
+ "p3": 84,
242
+ "p4": -1,
243
+ "precision": 0,
244
+ "scale": 0,
245
+ "code_page": 0,
246
+ "p8": 0,
247
+ "p9": 0
248
+ },
249
+ {
250
+ "name": "time",
251
+ "data_type": 145,
252
+ "max_length": 12,
253
+ "p2": 376,
254
+ "p3": 88,
255
+ "p4": -1,
256
+ "precision": 0,
257
+ "scale": 7,
258
+ "code_page": 0,
259
+ "p8": 0,
260
+ "p9": 0
261
+ },
262
+ {
263
+ "name": "smalldatetime",
264
+ "data_type": 135,
265
+ "max_length": 16,
266
+ "p2": 160,
267
+ "p3": 92,
268
+ "p4": -1,
269
+ "precision": 0,
270
+ "scale": 0,
271
+ "code_page": 0,
272
+ "p8": 0,
273
+ "p9": 0
274
+ },
275
+ {
276
+ "name": "datetimeoffset",
277
+ "data_type": 146,
278
+ "max_length": 20,
279
+ "p2": 536,
280
+ "p3": 96,
281
+ "p4": -1,
282
+ "precision": 0,
283
+ "scale": 7,
284
+ "code_page": 0,
285
+ "p8": 0,
286
+ "p9": 0
287
+ },
288
+ {
289
+ "name": "uniqueidentifier",
290
+ "data_type": 72,
291
+ "max_length": 16,
292
+ "p2": 176,
293
+ "p3": 100,
294
+ "p4": -1,
295
+ "precision": 0,
296
+ "scale": 0,
297
+ "code_page": 0,
298
+ "p8": 0,
299
+ "p9": 0
300
+ },
301
+ {
302
+ "name": "smallint",
303
+ "data_type": 2,
304
+ "max_length": 2,
305
+ "p2": 816,
306
+ "p3": 104,
307
+ "p4": -1,
308
+ "precision": 0,
309
+ "scale": 0,
310
+ "code_page": 0,
311
+ "p8": 0,
312
+ "p9": 0
313
+ },
314
+ {
315
+ "name": "real",
316
+ "data_type": 4,
317
+ "max_length": 4,
318
+ "p2": 1108,
319
+ "p3": 108,
320
+ "p4": -1,
321
+ "precision": 0,
322
+ "scale": 0,
323
+ "code_page": 0,
324
+ "p8": 0,
325
+ "p9": 0
326
+ },
327
+ {
328
+ "name": "tinyint",
329
+ "data_type": 17,
330
+ "max_length": 1,
331
+ "p2": 1094,
332
+ "p3": 112,
333
+ "p4": -1,
334
+ "precision": 0,
335
+ "scale": 0,
336
+ "code_page": 0,
337
+ "p8": 0,
338
+ "p9": 0
339
+ }
340
+ ]
@@ -0,0 +1,69 @@
1
+ # encoding: utf-8
2
+
3
+ require 'csv'
4
+ require 'json'
5
+
6
+ require(File.expand_path('../../lib/sql_server_raw_file.rb',__FILE__))
7
+
8
+ # Fixture module
9
+ # test fixture
10
+ module Fixture
11
+ def self.show
12
+ data_path = File.expand_path('../../data',__FILE__)+'/'
13
+ raw_file_name = %w(sql09.raw sql10.raw sql11.raw sql12_1.raw sql12_2.raw)
14
+
15
+ # current_fixture_index = 0
16
+ current_fixture_index = File.read(data_path+'/current_sql_index').to_i
17
+ raw_path = data_path+raw_file_name[current_fixture_index]
18
+
19
+ # show version of raw file
20
+ # signature: new(io)
21
+ # @param io [IO] IO-stream
22
+ # @return [SqlServerDts::RawFile]
23
+ File.open(raw_path) { |raw_io|
24
+ raw_obj = SqlServerDts::RawFile.new(raw_io)
25
+ puts "RAW VERSION: #{raw_obj.version}"
26
+ }
27
+
28
+ # show header of raw file and convert it into hash and save it as json-file
29
+ # signature: new(path)
30
+ # @param path [String] Path to raw file
31
+ # @return [SqlServerDts::RawFile]
32
+ raw_obj = SqlServerDts::RawFile.new(raw_path)
33
+ puts '=== BEGIN HEADER ==='
34
+ puts raw_obj.header
35
+ File.open("#{data_path+File.basename(raw_path, '.*')}_header.json",'wt') { |json_io|
36
+ header_json = JSON.pretty_generate(raw_obj.header)
37
+ json_io.write(header_json)
38
+ }
39
+ puts '=== END HEADER ==='
40
+ # get current position into inner IO-stream object for further using
41
+ init_pos = raw_obj.pos
42
+ # need to close inner IO-stream object
43
+ raw_obj.close
44
+ #exit
45
+ # show data of raw file in rows table and convert it into hash and save it as csv-file
46
+ # signature: new(path,init_pos)
47
+ # @param path [String] Path to raw file
48
+ # @param init_pos [String] Init pos in raw file where data rows from
49
+ # @return [ [SqlServerDts::RawFile,IO] ] block_given? == true
50
+ SqlServerDts::RawFile.new(raw_path,init_pos) { |raw_obj, raw_io|
51
+ puts '=== BEGIN DATA ==='
52
+ i=0
53
+ fields_arr = []
54
+ raw_obj.header.each { |field_info| fields_arr << field_info[:name] }
55
+ puts fields_arr.join("\t")
56
+ CSV.open("#{data_path+File.basename(raw_io.path, '.*')}_data.csv", 'wb', {headers: fields_arr, write_headers: true, col_sep: "\t"}) { |csv|
57
+ until raw_io.eof?
58
+ values_arr = []
59
+ raw_obj.read_line.each_value { |v| values_arr << v }
60
+ csv << values_arr
61
+ puts values_arr.join("\t")
62
+ i+=1
63
+ end
64
+ }
65
+ puts '=== END DATA ==='
66
+ puts "total: #{i}"
67
+ }
68
+ end
69
+ end
@@ -1,6 +1,6 @@
1
1
  # coding: utf-8
2
2
 
3
- require(File.expand_path('../sql_server_dts_ns.rb',__FILE__))
3
+ require(File.expand_path('../../lib/version.rb',__FILE__))
4
4
 
5
5
  # SqlServerDts::RawFile class
6
6
  class SqlServerDts::RawFile
@@ -27,8 +27,8 @@ class SqlServerDts::RawFile
27
27
  DEFAULT_ENCODING = 'utf-8'
28
28
 
29
29
  # supported versions of Raw File:
30
- # 00.90.00.00 => 9 (SQL Server: 9/10)
31
- # 00.10.01.00 => 10 (SQL Server: 11)
30
+ # 00.90.00.00 => 9 (SQL Server: 9,10)
31
+ # 00.10.01.00 => 10 (SQL Server: 11,12)
32
32
  SUPPORTED_RAW_VERSIONS = %w(00.10.01.00 00.90.00.00)
33
33
 
34
34
  # initialization
@@ -3,5 +3,5 @@
3
3
  # SqlServerDts module
4
4
  module SqlServerDts
5
5
  # current version
6
- VERSION = '0.1.2'
6
+ VERSION = '0.1.3'
7
7
  end
@@ -2,19 +2,18 @@
2
2
 
3
3
  require 'rubygems'
4
4
 
5
- #require "#{File.dirname(__FILE__)}/lib/sql_server_dts_ns"
6
- require(File.expand_path('../lib/sql_server_dts_ns.rb',__FILE__))
5
+ require(File.expand_path('../lib/version.rb',__FILE__))
7
6
 
8
7
  Gem::Specification.new do |s|
9
8
  s.name = 'sql-server-raw-file'
10
9
  s.version = SqlServerDts::VERSION
11
10
  s.licenses = ['MIT']
12
11
  s.summary = 'sql-server-raw-file lib'
13
- s.description = 'Converts SQL Server Integration Services Raw File source to hash.'
12
+ s.description = 'Converts SQL Server Integration Services raw file to hash objects'
14
13
  s.authors = ['Dmitriy Mullo']
15
14
  s.email = ['d.a.mullo1981@gmail.com']
16
15
  s.homepage = 'https://github.com/dim11981/sql-server-raw-file'
17
16
  s.platform = Gem::Platform::RUBY
18
- s.files = Dir['*.md']+Dir['sql-server-raw-file.*']+Dir['lib/*.rb']+Dir['test/*.rb']+Dir['fixtures/*']
17
+ s.files = Dir['*.md']+Dir['sql-server-raw-file.*']+Dir['lib/*.rb']+Dir['test/*.rb']+Dir['fixtures/*']+Dir['data/*']
19
18
  s.require_path = 'lib'
20
19
  end
@@ -1,63 +1,7 @@
1
- # coding: utf-8
1
+ # encoding: utf-8
2
2
 
3
- require 'csv'
4
- require 'json'
3
+ require(File.expand_path('../../fixtures/fixture_sql_data_and_header',__FILE__))
5
4
 
6
- require(File.expand_path('../../lib/sql_server_raw_file.rb',__FILE__))
7
-
8
- fixtures_path = File.expand_path('../../fixtures',__FILE__)+'/'
9
- raw_file_name = %w(sql09.raw sql10.raw sql11.raw)
10
-
11
- # current_fixture_index = 0
12
- current_fixture_index = File.read(fixtures_path+'/current_sql_index').to_i
13
- raw_path = fixtures_path+raw_file_name[current_fixture_index]
14
-
15
- # show version of raw file
16
- # signature: new(io)
17
- # @param io [IO] IO-stream
18
- # @return [SqlServerDts::RawFile]
19
- File.open(raw_path) { |raw_io|
20
- raw_obj = SqlServerDts::RawFile.new(raw_io)
21
- puts "RAW VERSION: #{raw_obj.version}"
22
- }
23
-
24
- # show header of raw file and convert it into hash and save it as json-file
25
- # signature: new(path)
26
- # @param path [String] Path to raw file
27
- # @return [SqlServerDts::RawFile]
28
- raw_obj = SqlServerDts::RawFile.new(raw_path)
29
- puts '=== BEGIN HEADER ==='
30
- puts raw_obj.header
31
- File.open("#{fixtures_path+File.basename(raw_path, '.*')}_header.json",'wt') { |json_io|
32
- header_json = JSON.pretty_generate(raw_obj.header)
33
- json_io.write(header_json)
34
- }
35
- puts '=== END HEADER ==='
36
- # get current position into inner IO-stream object for further using
37
- init_pos = raw_obj.pos
38
- # need to close inner IO-stream object
39
- raw_obj.close
40
- #exit
41
- # show data of raw file in rows table and convert it into hash and save it as csv-file
42
- # signature: new(path,init_pos)
43
- # @param path [String] Path to raw file
44
- # @param init_pos [String] Init pos in raw file where data rows from
45
- # @return [ [SqlServerDts::RawFile,IO] ] block_given? == true
46
- SqlServerDts::RawFile.new(raw_path,init_pos) { |raw_obj, raw_io|
47
- puts '=== BEGIN DATA ==='
48
- i=0
49
- fields_arr = []
50
- raw_obj.header.each { |field_info| fields_arr << field_info[:name] }
51
- puts fields_arr.join("\t")
52
- CSV.open("#{fixtures_path+File.basename(raw_io.path, '.*')}_data.csv", 'wb', {headers: fields_arr, write_headers: true, col_sep: "\t"}) { |csv|
53
- until raw_io.eof?
54
- values_arr = []
55
- raw_obj.read_line.each_value { |v| values_arr << v }
56
- csv << values_arr
57
- puts values_arr.join("\t")
58
- i+=1
59
- end
60
- }
61
- puts '=== END DATA ==='
62
- puts "total: #{i}"
63
- }
5
+ # begin test
6
+ Fixture.show
7
+ # end test
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sql-server-raw-file
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitriy Mullo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-03 00:00:00.000000000 Z
11
+ date: 2016-06-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Converts SQL Server Integration Services Raw File source to hash.
13
+ description: Converts SQL Server Integration Services raw file to hash objects
14
14
  email:
15
15
  - d.a.mullo1981@gmail.com
16
16
  executables: []
@@ -20,20 +20,24 @@ files:
20
20
  - CHANGELOG.md
21
21
  - LICENSE.md
22
22
  - README.md
23
- - fixtures/current_sql_index
24
- - fixtures/select-fixture-data-SQL_Server10_11.sql
25
- - fixtures/select-fixture-data-SQL_Server_9.sql
26
- - fixtures/sql09.raw
27
- - fixtures/sql09_data.csv
28
- - fixtures/sql09_header.json
29
- - fixtures/sql10.raw
30
- - fixtures/sql10_data.csv
31
- - fixtures/sql10_header.json
32
- - fixtures/sql11.raw
33
- - fixtures/sql11_data.csv
34
- - fixtures/sql11_header.json
35
- - lib/sql_server_dts_ns.rb
23
+ - data/current_sql_index
24
+ - data/select-fixture-data-SQL_Server10_11_12.sql
25
+ - data/select-fixture-data-SQL_Server_9.sql
26
+ - data/sql09.raw
27
+ - data/sql09_data.csv
28
+ - data/sql09_header.json
29
+ - data/sql10.raw
30
+ - data/sql10_data.csv
31
+ - data/sql10_header.json
32
+ - data/sql11.raw
33
+ - data/sql11_data.csv
34
+ - data/sql11_header.json
35
+ - data/sql12.raw
36
+ - data/sql12_data.csv
37
+ - data/sql12_header.json
38
+ - fixtures/fixture_sql_data_and_header.rb
36
39
  - lib/sql_server_raw_file.rb
40
+ - lib/version.rb
37
41
  - sql-server-raw-file.gemspec
38
42
  - test/test_sql_data_and_header.rb
39
43
  homepage: https://github.com/dim11981/sql-server-raw-file
@@ -1 +0,0 @@
1
- 2