spandx 0.13.0 → 0.13.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -1
- data/ext/spandx/spandx.c +53 -0
- data/ext/spandx/spandx.h +6 -0
- data/lib/spandx/version.rb +1 -1
- data/spandx.gemspec +1 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 288989db458fbe8da46cf782ab6d0410dbcfe5f167a4fa258b2fb0bdd819b2c3
|
4
|
+
data.tar.gz: 3df236283d2d8149bb9c6c9633969540147cd31cc6dfdabb4c26b56d3a6d5b92
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c6bb83298a7298814f484236df79234aac9710cf990eb728db53465e1ec82943085a9057bc7d29e8f49ce74e76a6229606f1392bb13835db13ebbbfa18f173d
|
7
|
+
data.tar.gz: a95189cec4d7b0d5f4a6e8007bb79b805fe5072bf5a502c995140cfa5b495fb774e9e36fc2c6dbc17190ce8641fc9eb4ca1485e8dd033c70fce7960382a5d346
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Version 0.13.
|
1
|
+
Version 0.13.1
|
2
2
|
|
3
3
|
# Changelog
|
4
4
|
|
@@ -9,6 +9,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
9
9
|
|
10
10
|
## [Unreleased]
|
11
11
|
|
12
|
+
## [0.13.1] - 2020-05-16
|
13
|
+
### Fixed
|
14
|
+
- Add `ext/**/*.c` and `ext/**/*.h` to list of files.
|
15
|
+
|
12
16
|
## [0.13.0] - 2020-05-12
|
13
17
|
### Added
|
14
18
|
- Add progress bar
|
data/ext/spandx/spandx.c
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
#include "spandx.h"
|
2
|
+
|
3
|
+
VALUE rb_mSpandx;
|
4
|
+
VALUE rb_mCore;
|
5
|
+
VALUE rb_mCsvParser;
|
6
|
+
|
7
|
+
// "name","version","license"
|
8
|
+
// "name","version","license"\n
|
9
|
+
// "name","version","license"\r
|
10
|
+
// "name","version","license"\r\n
|
11
|
+
// "name","version",""\r\n
|
12
|
+
static VALUE parse(VALUE self, VALUE line)
|
13
|
+
{
|
14
|
+
if (NIL_P(line)) return Qnil;
|
15
|
+
|
16
|
+
char *p;
|
17
|
+
|
18
|
+
p = RSTRING_PTR(line);
|
19
|
+
if (*p != '"') return Qnil;
|
20
|
+
|
21
|
+
const VALUE items = rb_ary_new2(3);
|
22
|
+
const char *s, *n;
|
23
|
+
const int len = RSTRING_LEN(line);
|
24
|
+
enum { open, closed } state = closed;
|
25
|
+
|
26
|
+
for (int i = 0; i < len && *p; i++) {
|
27
|
+
if (*p == '"') {
|
28
|
+
n = p;
|
29
|
+
if (i < (len - 1)) *n++;
|
30
|
+
|
31
|
+
if (state == closed) {
|
32
|
+
s = n;
|
33
|
+
state = open;
|
34
|
+
} else if (state == open) {
|
35
|
+
if (!*n || n == p || *n == ',' || *n == 10) {
|
36
|
+
rb_ary_push(items, rb_str_new(s, p - s));
|
37
|
+
state = closed;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
*p++;
|
42
|
+
}
|
43
|
+
|
44
|
+
return items;
|
45
|
+
}
|
46
|
+
|
47
|
+
void Init_spandx(void)
|
48
|
+
{
|
49
|
+
rb_mSpandx = rb_define_module("Spandx");
|
50
|
+
rb_mCore = rb_define_module_under(rb_mSpandx, "Core");
|
51
|
+
rb_mCsvParser = rb_define_module_under(rb_mCore, "CsvParser");
|
52
|
+
rb_define_module_function(rb_mCsvParser, "parse", parse, 1);
|
53
|
+
}
|
data/ext/spandx/spandx.h
ADDED
data/lib/spandx/version.rb
CHANGED
data/spandx.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spandx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Can Eldem
|
@@ -331,6 +331,8 @@ files:
|
|
331
331
|
- README.md
|
332
332
|
- exe/spandx
|
333
333
|
- ext/spandx/extconf.rb
|
334
|
+
- ext/spandx/spandx.c
|
335
|
+
- ext/spandx/spandx.h
|
334
336
|
- lib/spandx.rb
|
335
337
|
- lib/spandx/cli.rb
|
336
338
|
- lib/spandx/cli/commands/build.rb
|