Module: KDL
- Defined in:
- lib/kdl.rb,
lib/kdl/v1.rb,
lib/kdl/node.rb,
lib/kdl/error.rb,
lib/kdl/types.rb,
lib/kdl/value.rb,
lib/kdl/builder.rb,
lib/kdl/kdl.tab.rb,
lib/kdl/v1/node.rb,
lib/kdl/version.rb,
lib/kdl/document.rb,
lib/kdl/types/ip.rb,
lib/kdl/v1/value.rb,
lib/kdl/tokenizer.rb,
lib/kdl/types/irl.rb,
lib/kdl/types/url.rb,
lib/kdl/types/uuid.rb,
lib/kdl/v1/kdl.tab.rb,
lib/kdl/types/email.rb,
lib/kdl/types/regex.rb,
lib/kdl/v1/document.rb,
lib/kdl/types/base64.rb,
lib/kdl/v1/tokenizer.rb,
lib/kdl/parser_common.rb,
lib/kdl/string_dumper.rb,
lib/kdl/types/country.rb,
lib/kdl/types/decimal.rb,
lib/kdl/types/currency.rb,
lib/kdl/types/duration.rb,
lib/kdl/types/hostname.rb,
lib/kdl/types/date_time.rb,
lib/kdl/types/irl/parser.rb,
lib/kdl/v1/string_dumper.rb,
lib/kdl/types/email/parser.rb,
lib/kdl/types/url_template.rb,
lib/kdl/types/hostname/validator.rb,
lib/kdl/types/duration/iso8601_parser.rb,
lib/kdl/types/country/iso3166_countries.rb,
lib/kdl/types/currency/iso4217_currencies.rb,
lib/kdl/types/country/iso3166_subdivisions.rb
Defined Under Namespace
Modules: ParserCommon, StringDumper, Types, V1
Classes: Builder, Document, Error, Node, ParseError, Parser, Tokenizer, UnsupportedVersionError, Value, VersionMismatchError
Constant Summary
collapse
- VERSION =
"2.1.0"
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.default_output_version ⇒ Object
Returns the value of attribute default_output_version.
19
20
21
|
# File 'lib/kdl.rb', line 19
def default_output_version
@default_output_version
end
|
.default_version ⇒ Object
Returns the value of attribute default_version.
18
19
20
|
# File 'lib/kdl.rb', line 18
def default_version
@default_version
end
|
Class Method Details
.auto_parse(input, output_version: default_output_version, **options) ⇒ Object
46
47
48
49
50
51
52
|
# File 'lib/kdl.rb', line 46
def self.auto_parse(input, output_version: default_output_version, **options)
parse(input, version: 2, output_version: output_version || 2, **options)
rescue VersionMismatchError => e
parse(input, version: e.version, output_version: output_version || e.version, **options)
rescue ParseError => e
parse(input, version: 1, output_version: output_version || 1, **options) rescue raise e
end
|
.build(&block) ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/kdl.rb', line 64
def self.build(&block)
builder = Builder.new
if block.arity >= 1
builder.document do
yield builder
end
else
builder.instance_exec(&block)
builder.document
end
end
|
.load_file(filespec, **options) ⇒ Object
40
41
42
43
44
|
# File 'lib/kdl.rb', line 40
def self.load_file(filespec, **options)
File.open(filespec, 'r:BOM|UTF-8') do |file|
parse(file.read, **options, filename: file.to_path)
end
end
|
.output_module(version) ⇒ Object
54
55
56
57
58
59
60
61
62
|
# File 'lib/kdl.rb', line 54
def self.output_module(version)
case version
when 1 then KDL::V1
when 2 then KDL
else
warn "[WARNING] Unknown output_version '#{version}', defaulting to v2"
KDL
end
end
|
.parse(input, version: default_version, output_version: default_output_version, filename: nil, **options) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/kdl.rb', line 27
def self.parse(input, version: default_version, output_version: default_output_version, filename: nil, **options)
case version
when 2
Parser.new(output_module: output_module(output_version || 2), **options).parse(input, filename:)
when 1
V1::Parser.new.parse(input, output_module: output_module(output_version || 1), filename:, **options)
when nil
auto_parse(input, output_version:, **options)
else
raise UnsupportedVersionError.new("unsupported version '#{version}'", version)
end
end
|
.parse_document(input, options = {}) ⇒ Object
22
23
24
25
|
# File 'lib/kdl.rb', line 22
def self.parse_document(input, options = {})
warn "[DEPRECATION] `KDL.parse_document' is deprecated. Please use `KDL.parse' instead."
parse(input, **options)
end
|