excelsior 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile
CHANGED
@@ -8,7 +8,7 @@ PKG_FILES = %w(Rakefile) +
|
|
8
8
|
|
9
9
|
gem_spec = Gem::Specification.new do |gem_spec|
|
10
10
|
gem_spec.name = 'excelsior'
|
11
|
-
gem_spec.version = '0.0.
|
11
|
+
gem_spec.version = '0.0.7'
|
12
12
|
gem_spec.summary = 'A Ruby gem that uses C bindings to read CSV files superfast. I\'m totally serial!'
|
13
13
|
gem_spec.description = 'A Ruby gem that uses C bindings to read CSV files superfast. I\'m totally serial!'
|
14
14
|
gem_spec.email = 'matt@toastyapps.com'
|
@@ -238,7 +238,7 @@ _eof_trans:
|
|
238
238
|
break;
|
239
239
|
case 7:
|
240
240
|
#line 17 "excelsior_reader.rl"
|
241
|
-
{te = p+1;{ rb_yield(arr); arr = rb_ary_new(); has_found = 0; }}
|
241
|
+
{te = p+1;{ if(has_found ==0) rb_ary_push(arr, Qnil); rb_yield(arr); arr = rb_ary_new(); has_found = 0; }}
|
242
242
|
break;
|
243
243
|
case 8:
|
244
244
|
#line 21 "excelsior_reader.rl"
|
@@ -246,7 +246,7 @@ _eof_trans:
|
|
246
246
|
break;
|
247
247
|
case 9:
|
248
248
|
#line 17 "excelsior_reader.rl"
|
249
|
-
{te = p;p--;{ rb_yield(arr); arr = rb_ary_new(); has_found = 0; }}
|
249
|
+
{te = p;p--;{ if(has_found ==0) rb_ary_push(arr, Qnil); rb_yield(arr); arr = rb_ary_new(); has_found = 0; }}
|
250
250
|
break;
|
251
251
|
case 10:
|
252
252
|
#line 20 "excelsior_reader.rl"
|
@@ -7,18 +7,18 @@ int has_found = 0;
|
|
7
7
|
|
8
8
|
%%{
|
9
9
|
machine excelsior_scan;
|
10
|
-
|
11
|
-
newline = "\r"? "\n" | "\r"
|
12
|
-
|
13
|
-
letter =
|
14
|
-
string = '"' (
|
10
|
+
delimiter = ",";
|
11
|
+
newline = "\r"? "\n" | "\r";
|
12
|
+
string_character = any - '"';
|
13
|
+
letter = string_character - delimiter - newline;
|
14
|
+
string = '"' (string_character | '""')* '"' ;
|
15
15
|
value = letter+;
|
16
16
|
main := |*
|
17
|
-
|
17
|
+
newline { if(has_found ==0) rb_ary_push(arr, Qnil); rb_yield(arr); arr = rb_ary_new(); has_found = 0; };
|
18
18
|
space;
|
19
19
|
value { rb_ary_push(arr, rb_str_new(ts, te - ts)); has_found = 1;};
|
20
20
|
string { rb_ary_push(arr, rb_str_new(ts + 1, te - ts - 2)); has_found = 1;};
|
21
|
-
|
21
|
+
delimiter { if(has_found == 0) rb_ary_push(arr, Qnil); has_found = 0;};
|
22
22
|
*|;
|
23
23
|
}%%
|
24
24
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: excelsior
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Mongeau
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-09 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -51,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements: []
|
52
52
|
|
53
53
|
rubyforge_project:
|
54
|
-
rubygems_version: 1.3.
|
54
|
+
rubygems_version: 1.3.5
|
55
55
|
signing_key:
|
56
56
|
specification_version: 3
|
57
57
|
summary: A Ruby gem that uses C bindings to read CSV files superfast. I'm totally serial!
|