ruby_rnv 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/rnv/extconf.rb +1 -1
- data/ext/rnv/ruby_rnv.c +81 -380
- data/ext/rnv/ruby_rnv.h +62 -0
- data/ext/rnv/ruby_rnv_err.c +545 -0
- data/ext/rnv/src/ary.c +1 -2
- data/ext/rnv/src/drv.c +66 -62
- data/ext/rnv/src/drv.h +3 -2
- data/ext/rnv/src/er.c +1 -1
- data/ext/rnv/src/er.h +1 -1
- data/ext/rnv/src/erbit.h +3 -0
- data/ext/rnv/src/rn.c +24 -26
- data/ext/rnv/src/rn.h +1 -1
- data/ext/rnv/src/rnc.c +28 -16
- data/ext/rnv/src/rnc.h +3 -23
- data/ext/rnv/src/rnd.c +24 -20
- data/ext/rnv/src/rnd.h +3 -2
- data/ext/rnv/src/rnl.c +24 -20
- data/ext/rnv/src/rnl.h +2 -3
- data/ext/rnv/src/rnv.c +20 -18
- data/ext/rnv/src/rnv.h +2 -2
- data/ext/rnv/src/rnx.c +15 -17
- data/ext/rnv/src/rnx.h +2 -3
- data/ext/rnv/src/rx.c +44 -32
- data/ext/rnv/src/rx.h +7 -8
- data/ext/rnv/src/sc.c +5 -0
- data/ext/rnv/src/sc.h +1 -0
- data/ext/rnv/src/type.h +53 -29
- data/ext/rnv/src/xcl.c +24 -27
- data/ext/rnv/src/xsd.c +10 -23
- data/ext/rnv/src/xsd.h +1 -2
- data/lib/rnv/data_type_library.rb +5 -7
- data/lib/rnv/error.rb +28 -2
- data/lib/rnv/validator.rb +4 -4
- metadata +4 -2
data/ext/rnv/src/xsd.h
CHANGED
@@ -14,10 +14,9 @@
|
|
14
14
|
#define XSD_ER_WS 5
|
15
15
|
#define XSD_ER_ENUM 6
|
16
16
|
|
17
|
-
extern void xsd_default_verror_handler(
|
17
|
+
extern void xsd_default_verror_handler(void *data, int erno, int (*handler)(void *data, int erno,char *format, va_list ap), va_list ap);
|
18
18
|
|
19
19
|
extern void xsd_init(rx_st_t *rx_st);
|
20
|
-
extern void xsd_clear(void);
|
21
20
|
|
22
21
|
extern int xsd_allows(rx_st_t *rx_st, char *typ,char *ps,char *s,int n);
|
23
22
|
extern int xsd_equal(rx_st_t *rx_st, char *typ,char *val,char *s,int n);
|
@@ -2,21 +2,19 @@ module RNV
|
|
2
2
|
# Datatype library callback object
|
3
3
|
# @see https://www.oasis-open.org/committees/relax-ng/spec-20010811.html#IDA1I1R
|
4
4
|
class DataTypeLibrary
|
5
|
-
# @param [String] typ
|
5
|
+
# @param [String] typ the data type
|
6
6
|
# @param [String] val
|
7
7
|
# @param [String] s
|
8
|
-
# @param [Integer] n
|
9
8
|
# @return [Boolean]
|
10
|
-
def equal(typ, val, s
|
9
|
+
def equal(typ, val, s)
|
11
10
|
true
|
12
11
|
end
|
13
12
|
|
14
|
-
# @param [String] typ
|
13
|
+
# @param [String] typ the data type
|
15
14
|
# @param [String] ps
|
16
|
-
# @param [String] s
|
17
|
-
# @param [Integer] n
|
15
|
+
# @param [String] s the value
|
18
16
|
# @return [Boolean]
|
19
|
-
def allows(typ, ps, s
|
17
|
+
def allows(typ, ps, s)
|
20
18
|
true
|
21
19
|
end
|
22
20
|
end
|
data/lib/rnv/error.rb
CHANGED
@@ -1,13 +1,39 @@
|
|
1
1
|
module RNV
|
2
2
|
class Error
|
3
|
+
def message
|
4
|
+
@original_message
|
5
|
+
end
|
6
|
+
|
7
|
+
def expected
|
8
|
+
@original_expected
|
9
|
+
end
|
10
|
+
|
11
|
+
# @param [String] data original content
|
12
|
+
# @return [String] context
|
13
|
+
def contextualize(data, max_len = 60)
|
14
|
+
out = ""
|
15
|
+
if data and @line
|
16
|
+
err_data = data.split("\n")[@line - 1]
|
17
|
+
err_data.insert(@col - 1, "🢑")
|
18
|
+
|
19
|
+
start = 0
|
20
|
+
if @col > max_len
|
21
|
+
start = @col - max_len
|
22
|
+
end
|
23
|
+
out += (start > 0 ? "…" : "") + err_data[start..(@col + max_len)].strip + (@col + max_len < err_data.length ? "…" : "")
|
24
|
+
end
|
25
|
+
out
|
26
|
+
end
|
27
|
+
|
3
28
|
# @return [String]
|
4
29
|
def to_s
|
5
|
-
"#{@line}:#{@col}:error: #{
|
30
|
+
"#{@line}:#{@col}:error: #{self.message}\n#{self.expected}"
|
6
31
|
end
|
7
32
|
|
8
33
|
# @return [String]
|
9
34
|
def inspect
|
10
|
-
"#<RNV::Error code: :#{@code}, message: '#{@message}', expected: '#{@expected} line: #{@line}, column: #{@col}>"
|
35
|
+
#"#<RNV::Error code: :#{@code}, message: '#{@message}', expected: '#{@expected}, line: #{@line}, column: #{@col}>"
|
36
|
+
"#<RNV::Error code: :#{@code}, message: '#{self.message}', expected: '#{self.expected}, line: #{@line}, column: #{@col}>"
|
11
37
|
end
|
12
38
|
end
|
13
39
|
end
|
data/lib/rnv/validator.rb
CHANGED
@@ -13,26 +13,26 @@ module RNV
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def start_element_namespace(name, attrs = [], prefix = nil, uri = nil, ns = nil)
|
16
|
-
update_line_col
|
17
16
|
tag_attrs = attrs.map { |attr| [attr.uri ? "#{attr.uri}:#{attr.localname}" : attr.localname, attr.value] }
|
18
17
|
tag_name = uri ? "#{uri}:#{name}" : name
|
19
18
|
@document.start_tag(@pre_processor.tag(tag_name), @pre_processor.attributes(tag_attrs))
|
19
|
+
update_line_col
|
20
20
|
end
|
21
21
|
|
22
22
|
def end_element_namespace(name, prefix = nil, uri = nil)
|
23
|
-
update_line_col
|
24
23
|
tag_name = uri ? "#{uri}:#{name}" : name
|
25
24
|
@document.end_tag(@pre_processor.tag(tag_name))
|
25
|
+
update_line_col
|
26
26
|
end
|
27
27
|
|
28
28
|
def characters str
|
29
|
-
update_line_col
|
30
29
|
@document.characters(@pre_processor.text(str))
|
30
|
+
update_line_col
|
31
31
|
end
|
32
32
|
|
33
33
|
def cdata_block str
|
34
|
-
update_line_col
|
35
34
|
@document.characters(@pre_processor.text(str))
|
35
|
+
update_line_col
|
36
36
|
end
|
37
37
|
|
38
38
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_rnv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julien Boulnois
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -104,6 +104,8 @@ files:
|
|
104
104
|
- Gemfile
|
105
105
|
- ext/rnv/extconf.rb
|
106
106
|
- ext/rnv/ruby_rnv.c
|
107
|
+
- ext/rnv/ruby_rnv.h
|
108
|
+
- ext/rnv/ruby_rnv_err.c
|
107
109
|
- ext/rnv/src/ary.c
|
108
110
|
- ext/rnv/src/ary.h
|
109
111
|
- ext/rnv/src/drv.c
|