odin-foundation 1.0.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.
- checksums.yaml +7 -0
- data/lib/odin/diff/differ.rb +115 -0
- data/lib/odin/diff/patcher.rb +64 -0
- data/lib/odin/export.rb +330 -0
- data/lib/odin/parsing/parser.rb +1193 -0
- data/lib/odin/parsing/token.rb +26 -0
- data/lib/odin/parsing/token_type.rb +40 -0
- data/lib/odin/parsing/tokenizer.rb +825 -0
- data/lib/odin/parsing/value_parser.rb +322 -0
- data/lib/odin/resolver/import_resolver.rb +137 -0
- data/lib/odin/serialization/canonicalize.rb +112 -0
- data/lib/odin/serialization/stringify.rb +582 -0
- data/lib/odin/transform/format_exporters.rb +819 -0
- data/lib/odin/transform/source_parsers.rb +385 -0
- data/lib/odin/transform/transform_engine.rb +2837 -0
- data/lib/odin/transform/transform_parser.rb +979 -0
- data/lib/odin/transform/transform_types.rb +278 -0
- data/lib/odin/transform/verb_context.rb +87 -0
- data/lib/odin/transform/verbs/aggregation_verbs.rb +106 -0
- data/lib/odin/transform/verbs/collection_verbs.rb +640 -0
- data/lib/odin/transform/verbs/datetime_verbs.rb +602 -0
- data/lib/odin/transform/verbs/financial_verbs.rb +356 -0
- data/lib/odin/transform/verbs/geo_verbs.rb +125 -0
- data/lib/odin/transform/verbs/numeric_verbs.rb +434 -0
- data/lib/odin/transform/verbs/object_verbs.rb +123 -0
- data/lib/odin/types/array_item.rb +42 -0
- data/lib/odin/types/diff.rb +89 -0
- data/lib/odin/types/directive.rb +28 -0
- data/lib/odin/types/document.rb +92 -0
- data/lib/odin/types/document_builder.rb +67 -0
- data/lib/odin/types/dyn_value.rb +270 -0
- data/lib/odin/types/errors.rb +149 -0
- data/lib/odin/types/modifiers.rb +45 -0
- data/lib/odin/types/ordered_map.rb +79 -0
- data/lib/odin/types/schema.rb +262 -0
- data/lib/odin/types/value_type.rb +28 -0
- data/lib/odin/types/values.rb +618 -0
- data/lib/odin/types.rb +12 -0
- data/lib/odin/utils/format_utils.rb +186 -0
- data/lib/odin/utils/path_utils.rb +25 -0
- data/lib/odin/utils/security_limits.rb +17 -0
- data/lib/odin/validation/format_validators.rb +238 -0
- data/lib/odin/validation/redos_protection.rb +102 -0
- data/lib/odin/validation/schema_parser.rb +813 -0
- data/lib/odin/validation/schema_serializer.rb +262 -0
- data/lib/odin/validation/validator.rb +1061 -0
- data/lib/odin/version.rb +5 -0
- data/lib/odin.rb +90 -0
- metadata +160 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Odin
|
|
4
|
+
module Parsing
|
|
5
|
+
class Token
|
|
6
|
+
attr_reader :type, :value, :line, :column, :raw
|
|
7
|
+
|
|
8
|
+
def initialize(type, value, line, column, raw: nil)
|
|
9
|
+
@type = type
|
|
10
|
+
@value = value
|
|
11
|
+
@line = line
|
|
12
|
+
@column = column
|
|
13
|
+
@raw = raw
|
|
14
|
+
freeze
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def to_s
|
|
18
|
+
"Token(#{type}, #{value.inspect}, L#{line}:#{column})"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def error?
|
|
22
|
+
type == TokenType::ERROR
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Odin
|
|
4
|
+
module Parsing
|
|
5
|
+
module TokenType
|
|
6
|
+
# Structure
|
|
7
|
+
HEADER_OPEN = :header_open
|
|
8
|
+
HEADER_CLOSE = :header_close
|
|
9
|
+
EQUALS = :equals
|
|
10
|
+
NEWLINE = :newline
|
|
11
|
+
PIPE = :pipe
|
|
12
|
+
|
|
13
|
+
# Values
|
|
14
|
+
STRING = :string
|
|
15
|
+
NUMBER = :number
|
|
16
|
+
INTEGER = :integer
|
|
17
|
+
CURRENCY = :currency
|
|
18
|
+
PERCENT = :percent
|
|
19
|
+
BOOLEAN = :boolean
|
|
20
|
+
NULL = :null
|
|
21
|
+
REFERENCE = :reference
|
|
22
|
+
BINARY = :binary
|
|
23
|
+
DATE = :date
|
|
24
|
+
TIMESTAMP = :timestamp
|
|
25
|
+
TIME = :time
|
|
26
|
+
DURATION = :duration
|
|
27
|
+
VERB = :verb
|
|
28
|
+
|
|
29
|
+
# Metadata
|
|
30
|
+
PATH = :path
|
|
31
|
+
COMMENT = :comment
|
|
32
|
+
DIRECTIVE = :directive
|
|
33
|
+
MODIFIER = :modifier
|
|
34
|
+
|
|
35
|
+
# Control
|
|
36
|
+
EOF = :eof
|
|
37
|
+
ERROR = :error
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|