sql-server-raw-file 0.1.2 → 0.1.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
  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