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.
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(rnv_t *rnv, int erno,va_list ap);
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, n)
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, n)
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: #{@message}\n#{@expected}"
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.3.1
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-09 00:00:00.000000000 Z
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