Module: Odin

Defined in:
lib/odin.rb,
lib/odin/export.rb,
lib/odin/version.rb,
lib/odin/types/diff.rb,
lib/odin/diff/differ.rb,
lib/odin/diff/patcher.rb,
lib/odin/types/errors.rb,
lib/odin/types/schema.rb,
lib/odin/types/values.rb,
lib/odin/parsing/token.rb,
lib/odin/parsing/parser.rb,
lib/odin/types/document.rb,
lib/odin/types/directive.rb,
lib/odin/types/dyn_value.rb,
lib/odin/types/modifiers.rb,
lib/odin/types/array_item.rb,
lib/odin/types/value_type.rb,
lib/odin/utils/path_utils.rb,
lib/odin/parsing/tokenizer.rb,
lib/odin/types/ordered_map.rb,
lib/odin/parsing/token_type.rb,
lib/odin/utils/format_utils.rb,
lib/odin/parsing/value_parser.rb,
lib/odin/validation/validator.rb,
lib/odin/utils/security_limits.rb,
lib/odin/transform/verb_context.rb,
lib/odin/types/document_builder.rb,
lib/odin/serialization/stringify.rb,
lib/odin/resolver/import_resolver.rb,
lib/odin/transform/source_parsers.rb,
lib/odin/validation/schema_parser.rb,
lib/odin/transform/transform_types.rb,
lib/odin/transform/verbs/geo_verbs.rb,
lib/odin/serialization/canonicalize.rb,
lib/odin/transform/format_exporters.rb,
lib/odin/transform/transform_engine.rb,
lib/odin/transform/transform_parser.rb,
lib/odin/validation/redos_protection.rb,
lib/odin/transform/verbs/object_verbs.rb,
lib/odin/validation/format_validators.rb,
lib/odin/validation/schema_serializer.rb,
lib/odin/transform/verbs/numeric_verbs.rb,
lib/odin/transform/verbs/datetime_verbs.rb,
lib/odin/transform/verbs/financial_verbs.rb,
lib/odin/transform/verbs/collection_verbs.rb,
lib/odin/transform/verbs/aggregation_verbs.rb

Defined Under Namespace

Modules: Diff, Errors, Export, Parsing, Resolver, Serialization, Transform, Types, Utils, Validation

Constant Summary collapse

VERSION =
"1.0.3"

Class Method Summary collapse

Class Method Details

.builderObject



72
73
74
# File 'lib/odin.rb', line 72

def builder
  Types::OdinDocumentBuilder.new
end

.canonicalize(doc) ⇒ Object



51
52
53
# File 'lib/odin.rb', line 51

def canonicalize(doc)
  Serialization::Canonicalize.new.canonicalize(doc)
end

.diff(a, b) ⇒ Object



64
65
66
# File 'lib/odin.rb', line 64

def diff(a, b)
  Diff::Differ.new.compute_diff(a, b)
end

.execute_transform(transform_def, source) ⇒ Object



81
82
83
# File 'lib/odin.rb', line 81

def execute_transform(transform_def, source)
  Transform::TransformEngine.new.execute(transform_def, source)
end

.parse(text, options = nil) ⇒ Object



42
43
44
45
# File 'lib/odin.rb', line 42

def parse(text, options = nil)
  text = text.encode("UTF-8") if text.is_a?(String) && text.encoding != Encoding::UTF_8
  Parsing::OdinParser.new.parse(text, options)
end

.parse_schema(text) ⇒ Object



55
56
57
58
# File 'lib/odin.rb', line 55

def parse_schema(text)
  text = text.encode("UTF-8") if text.is_a?(String) && text.encoding != Encoding::UTF_8
  Validation::SchemaParser.new.parse_schema(text)
end

.parse_transform(text) ⇒ Object



76
77
78
79
# File 'lib/odin.rb', line 76

def parse_transform(text)
  text = text.encode("UTF-8") if text.is_a?(String) && text.encoding != Encoding::UTF_8
  Transform::TransformParser.new.parse(text)
end

.patch(doc, diff_result) ⇒ Object



68
69
70
# File 'lib/odin.rb', line 68

def patch(doc, diff_result)
  Diff::Patcher.new.apply_patch(doc, diff_result)
end

.stringify(doc, options = {}) ⇒ Object



47
48
49
# File 'lib/odin.rb', line 47

def stringify(doc, options = {})
  Serialization::Stringify.new(options).stringify(doc)
end

.transform(transform_text, source) ⇒ Object



85
86
87
88
# File 'lib/odin.rb', line 85

def transform(transform_text, source)
  td = parse_transform(transform_text)
  execute_transform(td, source)
end

.validate(doc, schema, options = {}) ⇒ Object



60
61
62
# File 'lib/odin.rb', line 60

def validate(doc, schema, options = {})
  Validation::Validator.new.validate(doc, schema, options)
end