lutaml 0.4.1 → 0.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 778331709b63955afae5ec2639758cd7d2ce68716f924552810eca11164bc2fc
4
- data.tar.gz: bfcc945badadc762e377ece6d56fecb6138bcdb268837514c841fb93dc38c7d0
3
+ metadata.gz: 2798d99ace6b24bd0796035c70b8a9399a9677ec062b9e88d0d45efc03b71560
4
+ data.tar.gz: 904f3edd91cbaf215d3b86ec756cdfe7bcd8c5568decbe0cf363dbf743ccf796
5
5
  SHA512:
6
- metadata.gz: 67658e85d724a926f0487cb5441b9581800406d857c43fd3cb51fbb747e6607e188e9556a79f44a720577ae2bd8f5b93d3b5a0eebeeb89fcbfd67a66063282e3
7
- data.tar.gz: 3cc650c16223c5384eb84c743c6b1f2c739adac4819ec0a8afc87be3b012938447e5cd609fbfaa6327f1fec3c4b378b1af36f065501da8a33d993b7b6e633e68
6
+ metadata.gz: d5ea070108ac8730d34b073fc9b44bd5696cfef511f3b61da1bd258aca4796e3647f11b1c8489ad1f5c6d89f64ebc55927ad392cd8ff33a0c095d5d404c6da23
7
+ data.tar.gz: 619bf829a3c1b3939b84c083d9bfcaa43acec693d070a9ddbdc2370ea01f7427de1df8df1da23672676eae9670699aba6c6b891032f3df012b4049e83c0341ff
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
+ gem "expressir"
4
+
3
5
  # Specify your gem's dependencies in lutaml.gemspec
4
6
  gemspec
data/README.adoc CHANGED
@@ -37,7 +37,9 @@ In order to parse files supported by lutaml extensions, use Lutaml::Parser.parse
37
37
  [source,ruby]
38
38
  ----
39
39
  # example.exp is an EXPRESS repository file
40
- Lutaml::Parser.parse(File.new("example.exp")) # will produce Lutaml::LutamlPath::DocumentWrapper object with serialized express repository
40
+ Lutaml::Parser.parse([File.new("example.exp")]) # will produce Lutaml::LutamlPath::DocumentWrapper object with serialized express repository
41
+ # example.yaml is an EXPRESS cache file
42
+ Lutaml::Parser.parse([File.new("example.yaml")], ::Lutaml::Parser::EXPRESS_CACHE_PARSE_TYPE)
41
43
  ----
42
44
 
43
45
  == With cli tool
@@ -9,7 +9,7 @@ module Lutaml
9
9
 
10
10
  def serialize_document(repository)
11
11
  repository
12
- .to_hash(formatter: Formatter)['schemas']
12
+ .to_hash(formatter: Formatter, include_empty: true)
13
13
  end
14
14
  end
15
15
  end
@@ -1,9 +1,10 @@
1
1
  module Lutaml
2
2
  module LutamlPath
3
3
  class DocumentWrapper
4
- attr_reader :serialized_document
4
+ attr_reader :serialized_document, :original_document
5
5
 
6
6
  def initialize(document)
7
+ @original_document = document
7
8
  @serialized_document = serialize_document(document)
8
9
  end
9
10
 
@@ -26,7 +27,7 @@ module Lutaml
26
27
  end
27
28
 
28
29
  def serialize_to_hash(object)
29
- return object if [String, Integer, Float, FalseClass, TrueClass, Symbol, NilClass].include?(object.class)
30
+ return object if [String, Integer, Float, FalseClass, TrueClass, Symbol, NilClass, Hash].include?(object.class)
30
31
 
31
32
  object.instance_variables.each_with_object({}) do |var, res|
32
33
  variable = object.instance_variable_get(var)
@@ -35,7 +36,7 @@ module Lutaml
35
36
  serialize_to_hash(n)
36
37
  end
37
38
  else
38
- if [String, Integer, Float, FalseClass, TrueClass, Symbol, NilClass].include?(variable.class) || var == :@parent
39
+ if [String, Integer, Float, FalseClass, TrueClass, Symbol, NilClass, Hash].include?(variable.class) || var == :@parent
39
40
  variable
40
41
  else
41
42
  serialize_to_hash(variable)
data/lib/lutaml/parser.rb CHANGED
@@ -1,10 +1,14 @@
1
1
  require "lutaml/express"
2
2
  require "lutaml/uml"
3
+ require "lutaml/xmi"
3
4
  require "lutaml/uml/lutaml_path/document_wrapper"
4
5
  require "lutaml/express/lutaml_path/document_wrapper"
6
+ require "expressir/express_exp/cache"
5
7
 
6
8
  module Lutaml
7
9
  class Parser
10
+ EXPRESS_CACHE_PARSE_TYPE = "exp.cache".freeze
11
+
8
12
  attr_reader :parse_type, :file_list
9
13
 
10
14
  class << self
@@ -26,7 +30,7 @@ module Lutaml
26
30
 
27
31
  def parse
28
32
  documents = parse_into_document
29
- return [document_wrapper(documents)] if parse_type == "exp"
33
+ return document_wrapper(documents) if ["exp", EXPRESS_CACHE_PARSE_TYPE].include?(parse_type)
30
34
 
31
35
  documents.map { |doc| document_wrapper(doc) }
32
36
  end
@@ -35,6 +39,10 @@ module Lutaml
35
39
  case parse_type
36
40
  when "exp"
37
41
  Expressir::ExpressExp::Parser.from_files(file_list.map(&:path))
42
+ when EXPRESS_CACHE_PARSE_TYPE
43
+ Expressir::ExpressExp::Cache.from_file(file_list.first.path)
44
+ when 'xmi'
45
+ file_list.map { |file| Lutaml::XMI::Parsers::XML.parse(file) }
38
46
  when "lutaml"
39
47
  file_list.map { |file| Lutaml::Uml::Parsers::Dsl.parse(file) }
40
48
  when "yml"
@@ -47,7 +55,7 @@ module Lutaml
47
55
  private
48
56
 
49
57
  def document_wrapper(document)
50
- if parse_type == "exp"
58
+ if ["exp", EXPRESS_CACHE_PARSE_TYPE].include?(parse_type)
51
59
  return Lutaml::Express::LutamlPath::DocumentWrapper.new(document)
52
60
  end
53
61
 
@@ -1,3 +1,3 @@
1
1
  module Lutaml
2
- VERSION = "0.4.1".freeze
2
+ VERSION = "0.6.1".freeze
3
3
  end
data/lutaml.gemspec CHANGED
@@ -27,8 +27,9 @@ Gem::Specification.new do |spec|
27
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
28
  spec.require_paths = ["lib"]
29
29
 
30
- spec.add_runtime_dependency "lutaml-express", "~> 0.1.3"
31
- spec.add_runtime_dependency "lutaml-uml", "~> 0.2.5"
30
+ spec.add_runtime_dependency "lutaml-express"
31
+ spec.add_runtime_dependency "lutaml-uml"
32
+ spec.add_runtime_dependency "lutaml-xmi"
32
33
  spec.add_runtime_dependency "thor", "~> 1.0"
33
34
  spec.add_development_dependency "nokogiri", "~> 1.10"
34
35
 
metadata CHANGED
@@ -1,43 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lutaml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-08 00:00:00.000000000 Z
11
+ date: 2021-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-express
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.3
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.3
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: lutaml-uml
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.5
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.2.5
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: lutaml-xmi
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: thor
43
57
  requirement: !ruby/object:Gem::Requirement