ruby_rnv 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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