kwalify 0.5.0 → 0.5.1
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/ChangeLog +8 -3
- data/README.txt +1 -1
- data/bin/kwalify +1 -1
- data/doc/users-guide.html +11 -3
- data/examples/address-book/address-book.schema.yaml +1 -1
- data/examples/invoice/invoice.schema.yaml +1 -1
- data/examples/tapkit/tapkit.schema.yaml +1 -1
- data/lib/kwalify.rb +2 -2
- data/lib/kwalify/errors.rb +1 -1
- data/lib/kwalify/main.rb +125 -124
- data/lib/kwalify/messages.rb +23 -6
- data/lib/kwalify/meta-validator.rb +1 -1
- data/lib/kwalify/rule.rb +1 -1
- data/lib/kwalify/types.rb +1 -1
- data/lib/kwalify/util/assert-diff.rb +1 -1
- data/lib/kwalify/util/option-parser.rb +1 -1
- data/lib/kwalify/util/yaml-helper.rb +1 -1
- data/lib/kwalify/validator.rb +1 -1
- data/lib/kwalify/yaml-parser.rb +3 -3
- data/test/test-main.rb +1 -1
- data/test/test-main.yaml +61 -12
- data/test/test-metavalidator.rb +1 -1
- data/test/test-metavalidator.yaml +2 -2
- data/test/test-rule.rb +1 -1
- data/test/test-rule.yaml +2 -2
- data/test/test-validator.rb +1 -1
- data/test/test-validator.yaml +2 -2
- data/test/test-yamlparser.rb +1 -1
- data/test/test-yamlparser.yaml +2 -2
- data/test/test.rb +1 -1
- metadata +2 -2
data/ChangeLog
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
.=title: ChangeLog
|
2
|
-
.?release: $Release: 0.5.
|
3
|
-
.?lastupdate: $Date: 2005-12-
|
4
|
-
.?version: $Rev:
|
2
|
+
.?release: $Release: 0.5.1 $
|
3
|
+
.?lastupdate: $Date: 2005-12-20 12:50:56 +0900 (Tue, 20 Dec 2005) $
|
4
|
+
.?version: $Rev: 44 $
|
5
|
+
|
6
|
+
|
7
|
+
.: 2005-12-20 (release 0.5.1)
|
8
|
+
.* Enhances:
|
9
|
+
.- add new command-line option '-E' which show errors in emacs-compatible style.
|
5
10
|
|
6
11
|
.: 2005-12-17 (release 0.5.0)
|
7
12
|
.* Enhances:
|
data/README.txt
CHANGED
data/bin/kwalify
CHANGED
data/doc/users-guide.html
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
<div align="left"><h1>Kwalify Users' Guide (for Ruby and Java)</h1></div>
|
16
16
|
<div align="left">
|
17
17
|
makoto kuwata <kwa(at)kuwata-lab.com><br>
|
18
|
-
last update: $Date: 2005-12-
|
18
|
+
last update: $Date: 2005-12-20 12:50:56 +0900 (Tue, 20 Dec 2005) $<br>
|
19
19
|
</div>
|
20
20
|
|
21
21
|
<a name="preface"></a>
|
@@ -173,9 +173,17 @@ $ java -classpath kwalify.jar kwalify.Main -m schema.yaml [schema2.yaml ...]
|
|
173
173
|
<dd class="dd3">
|
174
174
|
Show linenumber on which error found.
|
175
175
|
</dd>
|
176
|
+
<dt class="dt3"><strong>
|
177
|
+
<code>-E</code> </strong></dt>
|
178
|
+
<dd class="dd3">
|
179
|
+
Show errors in Emacs-compatible style (implies '-l' option).
|
180
|
+
</dd>
|
176
181
|
</dl>
|
177
182
|
<p>Notice that the command-line option <code>-l</code> is an experimental feature, for kwalify command use original YAML parser instead of Syck parser when this option is specified.
|
178
183
|
</p>
|
184
|
+
<p>If you are an Emacs user, try <code>-E</code> option that show errors in format which Emacs can parse and jump to errors.
|
185
|
+
You can use <code>C-x `</code> (next-error) to jump into errors.
|
186
|
+
</p>
|
179
187
|
<br>
|
180
188
|
|
181
189
|
|
@@ -195,7 +203,7 @@ validator = Kwalify::Validator.new(schema) # raises Kwalify::SchemaError if wro
|
|
195
203
|
document = YAML.load_file('document.yaml')
|
196
204
|
error_list = validator.validate(document)
|
197
205
|
unless error_list.empty?
|
198
|
-
error_list.each do |error| # error is Kwalify::ValidationError
|
206
|
+
error_list.each do |error| # error is instance of Kwalify::ValidationError
|
199
207
|
puts "[#{error.path}] #{error.message}"
|
200
208
|
end
|
201
209
|
end
|
@@ -596,7 +604,7 @@ sequence:
|
|
596
604
|
required: yes
|
597
605
|
pattern: /@/
|
598
606
|
password:
|
599
|
-
type: text
|
607
|
+
type: text # new rule
|
600
608
|
length: { max: 16, min: 8 }
|
601
609
|
age:
|
602
610
|
type: int # new rule
|
data/lib/kwalify.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
###
|
2
2
|
### $Rev: 42 $
|
3
|
-
### $Release: 0.5.
|
3
|
+
### $Release: 0.5.1 $
|
4
4
|
### copyright(c) 2005 kuwata-lab all rights reserved.
|
5
5
|
###
|
6
6
|
|
7
7
|
|
8
8
|
module Kwalify
|
9
9
|
|
10
|
-
RELEASE = ("$Release: 0.5.
|
10
|
+
RELEASE = ("$Release: 0.5.1 $" =~ /[.\d]+/) && $&
|
11
11
|
|
12
12
|
end
|
13
13
|
|
data/lib/kwalify/errors.rb
CHANGED
data/lib/kwalify/main.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
###
|
2
|
-
### $Rev:
|
3
|
-
### $Release: 0.5.
|
2
|
+
### $Rev: 44 $
|
3
|
+
### $Release: 0.5.1 $
|
4
4
|
### copyright(c) 2005 kuwata-lab all rights reserved.
|
5
5
|
###
|
6
6
|
|
@@ -46,12 +46,19 @@ module Kwalify
|
|
46
46
|
@flag_silent = false
|
47
47
|
@flag_meta = false
|
48
48
|
@flag_untabify = false
|
49
|
+
@flag_emacs = false
|
49
50
|
@flag_linenum = false
|
50
51
|
@flag_debug = false
|
51
52
|
@schema_filename = nil
|
52
53
|
@properties = {}
|
53
54
|
end
|
54
55
|
|
56
|
+
|
57
|
+
def debug?
|
58
|
+
@flag_debug
|
59
|
+
end
|
60
|
+
|
61
|
+
|
55
62
|
def _inspect()
|
56
63
|
s = ""
|
57
64
|
s << "command : #{@command}\n"
|
@@ -60,6 +67,7 @@ module Kwalify
|
|
60
67
|
s << "flag_silent : #{@flag_silent}\n"
|
61
68
|
s << "flag_meta : #{@flag_meta}\n"
|
62
69
|
s << "flag_untabify : #{@flag_untabify}\n"
|
70
|
+
s << "flag_emacs : #{@flag_emacs}\n"
|
63
71
|
s << "flag_linenum : #{@flag_linenum}\n"
|
64
72
|
s << "flag_debug : #{@flag_debug}\n"
|
65
73
|
s << "schema_filename : #{@schema_filename != nil ? @schema_filename : 'null'}\n"
|
@@ -72,20 +80,25 @@ module Kwalify
|
|
72
80
|
|
73
81
|
|
74
82
|
def execute(argv=ARGV)
|
83
|
+
# parse command-line options
|
75
84
|
filenames = _parse_argv(argv)
|
76
85
|
|
86
|
+
# help or version
|
77
87
|
s = ''
|
78
88
|
s << _version() << "\n" if @flag_version
|
79
89
|
s << _usage() if @flag_help
|
80
90
|
return s unless s.empty?
|
81
91
|
|
82
|
-
|
92
|
+
# validation
|
93
|
+
if @flag_meta2
|
94
|
+
s = _quick_meta_validate(filenames)
|
95
|
+
elsif @flag_meta
|
83
96
|
s = _meta_validate(filenames)
|
84
97
|
elsif @schema_filename
|
85
98
|
if @flag_debug
|
86
|
-
s = _inspect_schema(@
|
99
|
+
s = _inspect_schema(@schema_filename)
|
87
100
|
else
|
88
|
-
s = _validate(filenames)
|
101
|
+
s = _validate(filenames, @schema_filename)
|
89
102
|
end
|
90
103
|
else
|
91
104
|
#* key=:command_option_noaction msg="command-line option '-f' or '-m' required."
|
@@ -107,8 +120,12 @@ module Kwalify
|
|
107
120
|
# $stderr.puts "ERROR: #{ex.message}"
|
108
121
|
# exit 1
|
109
122
|
rescue => ex
|
110
|
-
|
111
|
-
|
123
|
+
if main.debug?
|
124
|
+
raise ex
|
125
|
+
else
|
126
|
+
$stderr.puts ex.message
|
127
|
+
exit 1
|
128
|
+
end
|
112
129
|
end
|
113
130
|
end
|
114
131
|
|
@@ -122,161 +139,142 @@ module Kwalify
|
|
122
139
|
end
|
123
140
|
|
124
141
|
|
125
|
-
def
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
return
|
142
|
+
def _inspect_schema(schema_filename)
|
143
|
+
filename = schema_filename
|
144
|
+
str = File.open(schema_filename) { |f| f.read() }
|
145
|
+
str = YamlUtil.untabify(str) if @flag_untabify
|
146
|
+
schema = YAML.load(str)
|
147
|
+
return nil if schema == nil
|
148
|
+
validator = Kwalify::Validator.new(schema) # error raised when schema is wrong
|
149
|
+
s = validator._inspect()
|
150
|
+
s << "\n" unless s[-1] == ?\n
|
151
|
+
return s
|
135
152
|
end
|
136
153
|
|
137
154
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
end
|
155
|
+
#class QuickMetaValidator
|
156
|
+
# def validate(schema)
|
157
|
+
# errors = []
|
158
|
+
# begin
|
159
|
+
# validator = Kwalify::Validator.new(schema) # error raised when schema is wrong
|
160
|
+
# rescue Kwalify::SchemaError => ex
|
161
|
+
# errors << ex
|
162
|
+
# end
|
163
|
+
# return errors
|
164
|
+
# end
|
165
|
+
#end
|
148
166
|
|
149
167
|
|
150
|
-
def
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
if !schema || schema.empty?
|
155
|
-
#* key=:meta_empty msg="%s: empty.\n"
|
156
|
-
return Kwalify.msg(:meta_emtpy) % filename
|
157
|
-
end
|
158
|
-
errors = nil
|
159
|
-
if meta_validator
|
160
|
-
errors = meta_validator.validate(schema)
|
161
|
-
else
|
168
|
+
def _quick_meta_validate(filenames)
|
169
|
+
meta_validator = Object.new
|
170
|
+
def meta_validator.validate(schema)
|
171
|
+
errors = []
|
162
172
|
begin
|
163
|
-
validator = Kwalify::Validator.new(schema)
|
173
|
+
validator = Kwalify::Validator.new(schema) # error raised when schema is wrong
|
164
174
|
rescue Kwalify::SchemaError => ex
|
165
|
-
errors
|
175
|
+
errors << ex
|
166
176
|
end
|
177
|
+
return errors
|
167
178
|
end
|
168
|
-
s =
|
169
|
-
if !errors || errors.empty?
|
170
|
-
#* key=:meta_valid msg="%s: ok.\n"
|
171
|
-
s << (Kwalify.msg(:meta_valid) % filename) unless @flag_silent
|
172
|
-
else
|
173
|
-
#* key=:meta_invalid msg="%s: NG!\n"
|
174
|
-
s << (Kwalify.msg(:meta_invalid) % filename)
|
175
|
-
s << _errors_to_str(errors)
|
176
|
-
end
|
179
|
+
s = _validate_files(meta_validator, filenames)
|
177
180
|
return s
|
178
181
|
end
|
179
182
|
|
180
183
|
|
181
|
-
def
|
182
|
-
|
183
|
-
|
184
|
-
if flag_linenum
|
185
|
-
@parser.set_errors_linenum(errors)
|
186
|
-
errors = errors.sort
|
187
|
-
end
|
188
|
-
errors.each do |error|
|
189
|
-
if flag_linenum
|
190
|
-
s << " - (line #{error.linenum}) [#{error.path}] #{error.message}\n"
|
191
|
-
else
|
192
|
-
s << " - [#{error.path}] #{error.message}\n"
|
193
|
-
end
|
194
|
-
end
|
184
|
+
def _meta_validate(filenames)
|
185
|
+
meta_validator = Kwalify::MetaValidator.instance()
|
186
|
+
s = _validate_files(meta_validator, filenames)
|
195
187
|
return s
|
196
188
|
end
|
197
189
|
|
198
190
|
|
199
|
-
def _validate(filenames)
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
191
|
+
def _validate(filenames, schema_filename)
|
192
|
+
filename = schema_filename
|
193
|
+
str = File.open(filename) { |f| f.read() } # or File.read(filename) in ruby1.8
|
194
|
+
str = YamlHelper.untabify(str) if @flag_untabify
|
195
|
+
schema = YAML.load(str)
|
196
|
+
if schema
|
197
|
+
validator = Kwalify::Validator.new(schema)
|
198
|
+
s = _validate_files(validator, filenames)
|
199
|
+
else
|
200
|
+
#* key=:schema_empty msg="%s: empty schema.\n"
|
201
|
+
s = Kwalify.msg(:schema_emtpy) % filename
|
208
202
|
end
|
209
203
|
return s
|
210
204
|
end
|
211
205
|
|
212
206
|
|
213
|
-
def
|
214
|
-
str = filename ? File.open(filename) { |f| f.read() } : $stdin.read()
|
215
|
-
filename ||= "(stdin)"
|
207
|
+
def _validate_files(validator, filenames)
|
216
208
|
s = ''
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
209
|
+
filenames = [ nil ] if filenames.empty?
|
210
|
+
filenames.each do |filename|
|
211
|
+
if filename
|
212
|
+
str = File.open(filename) { |f| f.read() } # or File.read(filename) in ruby1.8
|
213
|
+
else
|
214
|
+
str = $stdin.read()
|
215
|
+
filename = '(stdin)'
|
224
216
|
end
|
225
|
-
|
226
|
-
if
|
227
|
-
|
228
|
-
|
217
|
+
str = YamlHelper.untabify(str) if @flag_untabify
|
218
|
+
if @flag_linenum
|
219
|
+
parser = Kwalify::YamlParser.new(str)
|
220
|
+
i = 0
|
221
|
+
while parser.has_next?
|
222
|
+
doc = parser.parse()
|
223
|
+
s << _validate_document(validator, doc, filename, i, parser)
|
224
|
+
i += 1
|
225
|
+
end
|
229
226
|
else
|
230
|
-
|
231
|
-
|
232
|
-
|
227
|
+
parser = nil
|
228
|
+
i = 0
|
229
|
+
YAML.load_documents(str) do |doc|
|
230
|
+
s << _validate_document(validator, doc, filename, i, nil)
|
231
|
+
i += 1
|
232
|
+
end
|
233
233
|
end
|
234
234
|
end
|
235
235
|
return s
|
236
236
|
end
|
237
237
|
|
238
238
|
|
239
|
-
def
|
240
|
-
|
241
|
-
if
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
239
|
+
def _validate_document(validator, doc, filename, i, parser=nil)
|
240
|
+
s = ''
|
241
|
+
if doc == nil
|
242
|
+
#* key=:validation_empty msg="%s#%d: empty.\n"
|
243
|
+
s << kwalify.msg(:validation_empty) % [filename, i]
|
244
|
+
return s
|
245
|
+
end
|
246
|
+
errors = validator.validate(doc)
|
247
|
+
if errors == nil || errors.empty?
|
248
|
+
#* key=:validation_valid msg="%s#%d: valid.\n"
|
249
|
+
s << Kwalify.msg(:validation_valid) % [filename, i] unless @flag_silent
|
247
250
|
else
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
+
#* key=:validation_invalid msg="%s#%d: INVALID\n"
|
252
|
+
s << Kwalify.msg(:validation_invalid) % [filename, i]
|
253
|
+
if @flag_linenum
|
254
|
+
#assert parser != nil
|
255
|
+
raise unless parser != nil
|
256
|
+
parser.set_errors_linenum(errors)
|
257
|
+
errors.sort!
|
258
|
+
end
|
259
|
+
errors.each do |error|
|
260
|
+
if @flag_emacs
|
261
|
+
#assert @flag_linenum
|
262
|
+
raise unless @flag_linenum
|
263
|
+
s << "#{filename}:#{error.linenum}: [#{error.path}] #{error.message}\n"
|
264
|
+
elsif @flag_linenum
|
265
|
+
s << " - (line #{error.linenum}) [#{error.path}] #{error.message}\n"
|
266
|
+
else
|
267
|
+
s << " - [#{error.path}] #{error.message}\n"
|
268
|
+
end
|
251
269
|
end
|
252
270
|
end
|
253
|
-
end
|
254
|
-
|
255
|
-
|
256
|
-
def _inspect_schema(schema_filename)
|
257
|
-
filename = schema_filename
|
258
|
-
str = filename ? File.open(filename) { |f| f.read() } : $stdin.read()
|
259
|
-
schema = _load_yaml(str)
|
260
|
-
return nil if !schema || schema.empty?
|
261
|
-
validator = Kwalify::Validator.new(schema) # error raised when schema is wrong
|
262
|
-
s = validator._inspect()
|
263
|
-
s << "\n" unless s[-1] == ?\n
|
264
271
|
return s
|
265
272
|
end
|
266
273
|
|
267
274
|
|
268
275
|
def _usage()
|
269
|
-
|
270
|
-
|
271
|
-
s << "Usage2: #{@command} [-hvstl] -m schema.yaml [schema2.yaml ...]\n"
|
272
|
-
s << " -h, --help : help\n"
|
273
|
-
s << " -v : version\n"
|
274
|
-
s << " -s : silent\n"
|
275
|
-
s << " -f schema.yaml : schema definition file\n"
|
276
|
-
s << " -m : meta-validation mode\n"
|
277
|
-
s << " -t : expand tab character automatically\n"
|
278
|
-
s << " -l : show linenumber when errored (experimental)\n"
|
279
|
-
return s
|
276
|
+
msg = Kwalify.msg(:command_help) % [@command, @command]
|
277
|
+
return msg
|
280
278
|
end
|
281
279
|
|
282
280
|
|
@@ -284,6 +282,7 @@ module Kwalify
|
|
284
282
|
return RELEASE
|
285
283
|
end
|
286
284
|
|
285
|
+
|
287
286
|
def _to_value(str)
|
288
287
|
case str
|
289
288
|
when nil, "null", "nil" ; return nil
|
@@ -297,6 +296,7 @@ module Kwalify
|
|
297
296
|
end
|
298
297
|
end
|
299
298
|
|
299
|
+
|
300
300
|
def _parse_argv(argv)
|
301
301
|
while argv[0] && argv[0][0] == ?-
|
302
302
|
optstr = argv.shift
|
@@ -321,9 +321,10 @@ module Kwalify
|
|
321
321
|
when ?v ; @flag_version = true
|
322
322
|
when ?s ; @flag_silent = true
|
323
323
|
when ?t ; @flag_untabify = true
|
324
|
-
when ?l ; @flag_linenum = true
|
325
324
|
when ?m ; @flag_meta = true
|
326
325
|
when ?M ; @flag_meta2 = true
|
326
|
+
when ?E ; @flag_emacs = true ; @flag_linenum = true
|
327
|
+
when ?l ; @flag_linenum = true
|
327
328
|
when ?D ; @flag_debug = true
|
328
329
|
when ?f ;
|
329
330
|
arg = optstr.empty? ? argv.shift : optstr
|
data/lib/kwalify/messages.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
###
|
2
|
-
### $Rev:
|
3
|
-
### $Release: 0.5.
|
2
|
+
### $Rev: 44 $
|
3
|
+
### $Release: 0.5.1 $
|
4
4
|
### copyright(c) 2005 kuwata-lab all rights reserved.
|
5
5
|
###
|
6
6
|
|
@@ -12,14 +12,31 @@ module Kwalify
|
|
12
12
|
return @@messages[key]
|
13
13
|
end
|
14
14
|
|
15
|
-
|
15
|
+
|
16
|
+
|
17
|
+
@@messages[:command_help] = <<END
|
18
|
+
Usage1: %s [-hvstlE] -f schema.yaml doc.yaml [doc2.yaml ...]
|
19
|
+
Usage2: %s [-hvstlE] -m schema.yaml [schema2.yaml ...]
|
20
|
+
-h, --help : help
|
21
|
+
-v : version
|
22
|
+
-s : silent
|
23
|
+
-f schema.yaml : schema definition file
|
24
|
+
-m : meta-validation mode
|
25
|
+
-t : expand tab character automatically
|
26
|
+
-l : show linenumber when errored (experimental)
|
27
|
+
-E : show errors in emacs-style (implies '-l')
|
28
|
+
END
|
29
|
+
|
30
|
+
|
31
|
+
|
16
32
|
##----- begin
|
17
33
|
# filename: lib/kwalify/main.rb
|
18
34
|
@@messages[:command_option_noaction] = "command-line option '-f' or '-m' required."
|
19
35
|
@@messages[:meta_empty] = "%s: empty.\n"
|
20
36
|
@@messages[:meta_valid] = "%s: ok.\n"
|
21
37
|
@@messages[:meta_invalid] = "%s: NG!\n"
|
22
|
-
@@messages[:schema_empty] = "%s#%d: empty.\n"
|
38
|
+
@@messages[:schema_empty] = "%s#%d: empty schema.\n"
|
39
|
+
@@messages[:validation_empty] = "%s#%d: empty.\n"
|
23
40
|
@@messages[:validation_valid] = "%s#%d: valid.\n"
|
24
41
|
@@messages[:validation_invalid] = "%s#%d: INVALID\n"
|
25
42
|
@@messages[:command_property_invalid] = "%s: invalid property."
|
@@ -122,11 +139,11 @@ module Kwalify
|
|
122
139
|
|
123
140
|
|
124
141
|
@@words = {}
|
125
|
-
|
142
|
+
|
126
143
|
def self.word(key)
|
127
144
|
return @@words[key] || key
|
128
145
|
end
|
129
|
-
|
146
|
+
|
130
147
|
@@words['str'] = 'string'
|
131
148
|
@@words['int'] = 'integer'
|
132
149
|
@@words['bool'] = 'boolean'
|
data/lib/kwalify/rule.rb
CHANGED
data/lib/kwalify/types.rb
CHANGED
data/lib/kwalify/validator.rb
CHANGED
data/lib/kwalify/yaml-parser.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
###
|
2
|
-
### $Rev:
|
3
|
-
### $Release: 0.5.
|
2
|
+
### $Rev: 44 $
|
3
|
+
### $Release: 0.5.1 $
|
4
4
|
### copyright(c) 2005 kuwata-lab all rights reserved.
|
5
5
|
###
|
6
6
|
|
@@ -50,7 +50,7 @@ module Kwalify
|
|
50
50
|
end
|
51
51
|
|
52
52
|
|
53
|
-
def has_next
|
53
|
+
def has_next?
|
54
54
|
return @end_flag != 'EOF'
|
55
55
|
end
|
56
56
|
|
data/test/test-main.rb
CHANGED
data/test/test-main.yaml
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
##
|
2
|
-
## $Rev:
|
3
|
-
## $Release: 0.5.
|
2
|
+
## $Rev: 44 $
|
3
|
+
## $Release: 0.5.1 $
|
4
4
|
## copyright(c) 2005 kuwata-lab all rights reserved.
|
5
5
|
##
|
6
6
|
---
|
7
7
|
name: parseOptions1
|
8
8
|
desc: test Main#parseOptions()
|
9
9
|
method: parseOptions
|
10
|
-
args: [ -
|
10
|
+
args: [ -hvsmtlEDf, schema.yaml, document.yaml, document2.yaml ]
|
11
11
|
inspect: |
|
12
12
|
command : kwalify
|
13
13
|
flag_help : true
|
@@ -15,6 +15,7 @@ inspect: |
|
|
15
15
|
flag_silent : true
|
16
16
|
flag_meta : true
|
17
17
|
flag_untabify : true
|
18
|
+
flag_emacs : true
|
18
19
|
flag_linenum : true
|
19
20
|
flag_debug : true
|
20
21
|
schema_filename : schema.yaml
|
@@ -35,6 +36,7 @@ inspect: |
|
|
35
36
|
flag_silent : false
|
36
37
|
flag_meta : false
|
37
38
|
flag_untabify : false
|
39
|
+
flag_emacs : false
|
38
40
|
flag_linenum : true
|
39
41
|
flag_debug : false
|
40
42
|
schema_filename : schema.yaml
|
@@ -53,6 +55,7 @@ inspect: |
|
|
53
55
|
flag_silent : false
|
54
56
|
flag_meta : false
|
55
57
|
flag_untabify : false
|
58
|
+
flag_emacs : false
|
56
59
|
flag_linenum : false
|
57
60
|
flag_debug : false
|
58
61
|
schema_filename : null
|
@@ -62,6 +65,26 @@ inspect: |
|
|
62
65
|
- document.yaml
|
63
66
|
#
|
64
67
|
---
|
68
|
+
name: parseOptions4
|
69
|
+
desc: "'-E' turns on '-l'"
|
70
|
+
method: parseOptions
|
71
|
+
args: [ -E, document.yaml ]
|
72
|
+
inspect: |
|
73
|
+
command : kwalify
|
74
|
+
flag_help : false
|
75
|
+
flag_version : false
|
76
|
+
flag_silent : false
|
77
|
+
flag_meta : false
|
78
|
+
flag_untabify : false
|
79
|
+
flag_emacs : true
|
80
|
+
flag_linenum : true
|
81
|
+
flag_debug : false
|
82
|
+
schema_filename : null
|
83
|
+
properties:
|
84
|
+
filenames:
|
85
|
+
- document.yaml
|
86
|
+
#
|
87
|
+
---
|
65
88
|
name: optionError1
|
66
89
|
desc: invalid command-line option
|
67
90
|
method: parseOptions
|
@@ -116,7 +139,7 @@ message: "command-line option '-f' or '-m' required."
|
|
116
139
|
error_symbol*:
|
117
140
|
ruby: !ruby/sym :command_option_noschema
|
118
141
|
java: command.option.noaction
|
119
|
-
|
142
|
+
#
|
120
143
|
---
|
121
144
|
name: version
|
122
145
|
desc: option '-v'
|
@@ -131,8 +154,8 @@ desc: option '-h'
|
|
131
154
|
method: execute
|
132
155
|
args: [ -hD, document.yaml ]
|
133
156
|
expected: |
|
134
|
-
Usage1: kwalify [-
|
135
|
-
Usage2: kwalify [-
|
157
|
+
Usage1: kwalify [-hvstlE] -f schema.yaml doc.yaml [doc2.yaml ...]
|
158
|
+
Usage2: kwalify [-hvstlE] -m schema.yaml [schema2.yaml ...]
|
136
159
|
-h, --help : help
|
137
160
|
-v : version
|
138
161
|
-s : silent
|
@@ -140,6 +163,7 @@ expected: |
|
|
140
163
|
-m : meta-validation mode
|
141
164
|
-t : expand tab character automatically
|
142
165
|
-l : show linenumber when errored (experimental)
|
166
|
+
-E : show errors in emacs-style (implies '-l')
|
143
167
|
#
|
144
168
|
---
|
145
169
|
name: silent1
|
@@ -249,7 +273,7 @@ schema: |
|
|
249
273
|
- type: str
|
250
274
|
document: |
|
251
275
|
expected: |
|
252
|
-
meta1.schema:
|
276
|
+
meta1.schema#0: valid.
|
253
277
|
#
|
254
278
|
---
|
255
279
|
name: meta2
|
@@ -262,14 +286,40 @@ schema: |
|
|
262
286
|
- type: str
|
263
287
|
document: |
|
264
288
|
expected: |
|
265
|
-
meta2.schema:
|
289
|
+
meta2.schema#0: INVALID
|
266
290
|
- [/] type 'map' requires 'mapping:'.
|
267
291
|
- [/] 'sequence:': not available with mapping.
|
268
292
|
#
|
293
|
+
---
|
294
|
+
name: emacs
|
295
|
+
desc: show errors in emacs style
|
296
|
+
method: execute
|
297
|
+
args: [ -Ef, emacs.schema, emacs.document ]
|
298
|
+
schema: |
|
299
|
+
type: seq
|
300
|
+
sequence:
|
301
|
+
- type: map
|
302
|
+
mapping:
|
303
|
+
"key": { type: str, required: yes }
|
304
|
+
"value": { type: any }
|
305
|
+
document: |
|
306
|
+
- key: one
|
307
|
+
value: 1
|
308
|
+
- key: 2
|
309
|
+
val: two
|
310
|
+
- kye: three
|
311
|
+
value:
|
312
|
+
expected: |
|
313
|
+
emacs.document#0: INVALID
|
314
|
+
emacs.document:3: [/1/key] '2': not a string.
|
315
|
+
emacs.document:4: [/1/val] key 'val:' is undefined.
|
316
|
+
emacs.document:5: [/2] key 'key:' is required.
|
317
|
+
emacs.document:5: [/2/kye] key 'kye:' is undefined.
|
318
|
+
#
|
269
319
|
|
270
|
-
|
271
|
-
|
272
|
-
|
320
|
+
###
|
321
|
+
### user's guide
|
322
|
+
###
|
273
323
|
---
|
274
324
|
name: validation01
|
275
325
|
desc: basic validation
|
@@ -753,4 +803,3 @@ invalid-out: |
|
|
753
803
|
validation15.invalid#0: INVALID
|
754
804
|
- (line 4) [/user] key 'email:' is required.
|
755
805
|
- (line 5) [/user/name] 'toooooo-looooong-name': too long (length 21 > max 16).
|
756
|
-
#
|
data/test/test-metavalidator.rb
CHANGED
data/test/test-rule.rb
CHANGED
data/test/test-rule.yaml
CHANGED
data/test/test-validator.rb
CHANGED
data/test/test-validator.yaml
CHANGED
data/test/test-yamlparser.rb
CHANGED
data/test/test-yamlparser.yaml
CHANGED
data/test/test.rb
CHANGED
metadata
CHANGED