lutaml 0.4.1 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
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