lutaml-express 0.1.0 → 0.2.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 +4 -4
- data/.github/workflows/rake.yml +49 -0
- data/.github/workflows/release.yml +43 -0
- data/Gemfile +1 -3
- data/README.adoc +5 -1
- data/lib/lutaml/express.rb +0 -1
- data/lib/lutaml/express/parsers/exp.rb +2 -2
- data/lib/lutaml/express/version.rb +1 -1
- data/lutaml-express.gemspec +1 -2
- metadata +6 -23
- data/.github/workflows/macos.yml +0 -36
- data/.github/workflows/ubuntu.yml +0 -38
- data/.github/workflows/windows.yml +0 -41
- data/lib/lutaml/express/lutaml_path/document_wrapper.rb +0 -37
- data/spec/express/lutaml_path/document_wrapper_spec.rb +0 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 186bebe05de57a700b45e296dabab446a4029352488a03f6439266ce9aee2f1e
|
4
|
+
data.tar.gz: 2f5c29642b6abf6de7f79d76ca3e5b04d4b6319a058ec86dbf7fc15cf3c2ee43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 180628e30407629fff9e9f98039ac1864008d496ba1d1c50919692b21cc59169b41777c6a9c15fb9e196448cc658503ae03ea8d2a791471cd3029f010e3fbd5e
|
7
|
+
data.tar.gz: f098b29854f5a29213a1e6b47a9e7ad14c5c159a220040b079d9418c2c4d3d8400bb5274f4d607c95222ff4a2b72b34da72887c9966b337eb28da1fd4468c92e
|
@@ -0,0 +1,49 @@
|
|
1
|
+
name: rake
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master, main ]
|
6
|
+
tags: [ v* ]
|
7
|
+
pull_request:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
rake:
|
11
|
+
name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
|
12
|
+
runs-on: ${{ matrix.os }}
|
13
|
+
continue-on-error: ${{ matrix.experimental }}
|
14
|
+
strategy:
|
15
|
+
fail-fast: false
|
16
|
+
matrix:
|
17
|
+
ruby: [ '2.7', '2.6', '2.5', '2.4' ]
|
18
|
+
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
19
|
+
experimental: [ false ]
|
20
|
+
include:
|
21
|
+
- ruby: '3.0'
|
22
|
+
os: 'ubuntu-latest'
|
23
|
+
experimental: true
|
24
|
+
- ruby: '3.0'
|
25
|
+
os: 'windows-latest'
|
26
|
+
experimental: true
|
27
|
+
- ruby: '3.0'
|
28
|
+
os: 'macos-latest'
|
29
|
+
experimental: true
|
30
|
+
steps:
|
31
|
+
- uses: actions/checkout@master
|
32
|
+
|
33
|
+
- uses: ruby/setup-ruby@v1
|
34
|
+
with:
|
35
|
+
ruby-version: ${{ matrix.ruby }}
|
36
|
+
bundler-cache: true
|
37
|
+
|
38
|
+
- run: bundle exec rake
|
39
|
+
|
40
|
+
tests-passed:
|
41
|
+
needs: rake
|
42
|
+
runs-on: ubuntu-latest
|
43
|
+
steps:
|
44
|
+
- uses: peter-evans/repository-dispatch@v1
|
45
|
+
with:
|
46
|
+
token: ${{ secrets.METANORMA_CI_PAT_TOKEN || secrets.GITHUB_TOKEN }}
|
47
|
+
repository: ${{ github.repository }}
|
48
|
+
event-type: notify
|
49
|
+
client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'
|
@@ -0,0 +1,43 @@
|
|
1
|
+
name: release
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
inputs:
|
6
|
+
next_version:
|
7
|
+
description: |
|
8
|
+
Next release version. Possible values: x.y.z, major, minor, patch or pre|rc|etc
|
9
|
+
required: true
|
10
|
+
default: 'patch'
|
11
|
+
push:
|
12
|
+
tags: [ v* ]
|
13
|
+
|
14
|
+
jobs:
|
15
|
+
release:
|
16
|
+
runs-on: ubuntu-latest
|
17
|
+
steps:
|
18
|
+
- uses: actions/checkout@v2
|
19
|
+
|
20
|
+
- uses: ruby/setup-ruby@v1
|
21
|
+
with:
|
22
|
+
ruby-version: ${{ matrix.ruby }}
|
23
|
+
bundler-cache: true
|
24
|
+
|
25
|
+
- run: gem install gem-release
|
26
|
+
|
27
|
+
- if: ${{ github.event_name == 'workflow_dispatch' }}
|
28
|
+
run: |
|
29
|
+
git config user.name github-actions
|
30
|
+
git config user.email github-actions@github.com
|
31
|
+
gem bump --version ${{ github.event.inputs.next_version }} --tag --push
|
32
|
+
|
33
|
+
- name: publish to rubygems.org
|
34
|
+
env:
|
35
|
+
RUBYGEMS_API_KEY: ${{ secrets.LUTAML_CI_RUBYGEMS_API_KEY }}
|
36
|
+
run: |
|
37
|
+
gem install gem-release
|
38
|
+
cat > ~/.gem/credentials << EOF
|
39
|
+
---
|
40
|
+
:rubygems_api_key: ${RUBYGEMS_API_KEY}
|
41
|
+
EOF
|
42
|
+
chmod 0600 ~/.gem/credentials
|
43
|
+
gem release
|
data/Gemfile
CHANGED
data/README.adoc
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
image:https://img.shields.io/gem/v/lutaml-express.svg["Gem Version", link="https://rubygems.org/gems/lutaml-express"]
|
2
|
+
// image:https://codeclimate.com/github/lutaml/lutaml-express/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/lutaml/lutaml-express"]
|
3
|
+
image:https://github.com/lutaml/lutaml-express/workflows/rake/badge.svg["Build Status", link="https://github.com/lutaml/lutaml-express/actions?workflow=rake"]
|
4
|
+
|
1
5
|
= lutaml-express
|
2
6
|
|
3
7
|
== Functionality
|
@@ -48,4 +52,4 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
|
|
48
52
|
|
49
53
|
== Code of Conduct
|
50
54
|
|
51
|
-
Everyone interacting in the Lutaml::Uml project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/lutaml-express/blob/master/CODE_OF_CONDUCT.md).
|
55
|
+
Everyone interacting in the Lutaml::Uml project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/lutaml-express/blob/master/CODE_OF_CONDUCT.md).
|
data/lib/lutaml/express.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'expressir'
|
4
|
-
require 'expressir/
|
4
|
+
require 'expressir/express/parser'
|
5
5
|
|
6
6
|
module Lutaml
|
7
7
|
module Express
|
@@ -13,7 +13,7 @@ module Lutaml
|
|
13
13
|
#
|
14
14
|
# @return [Expressir::Model::Repository]
|
15
15
|
def self.parse(io, options = {})
|
16
|
-
Expressir::
|
16
|
+
Expressir::Express::Parser.from_file(io.path)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
data/lutaml-express.gemspec
CHANGED
@@ -23,13 +23,12 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.bindir = "exe"
|
24
24
|
spec.require_paths = ["lib"]
|
25
25
|
|
26
|
-
spec.add_runtime_dependency "expressir", "~> 0.
|
26
|
+
spec.add_runtime_dependency "expressir", "~> 1.0.0"
|
27
27
|
|
28
28
|
spec.add_development_dependency "byebug"
|
29
29
|
spec.add_development_dependency "nokogiri", "~> 1.10"
|
30
30
|
spec.add_development_dependency "rubocop", "~> 0.54.0"
|
31
31
|
spec.add_development_dependency "bundler", "~> 2.0"
|
32
|
-
spec.add_development_dependency "pry", "~> 0.12.2"
|
33
32
|
spec.add_development_dependency "rake", "~> 10.0"
|
34
33
|
spec.add_development_dependency "rspec", "~> 3.0"
|
35
34
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lutaml-express
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: expressir
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 1.0.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.
|
26
|
+
version: 1.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: byebug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,20 +80,6 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '2.0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: pry
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 0.12.2
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 0.12.2
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: rake
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,9 +115,8 @@ executables: []
|
|
129
115
|
extensions: []
|
130
116
|
extra_rdoc_files: []
|
131
117
|
files:
|
132
|
-
- ".github/workflows/
|
133
|
-
- ".github/workflows/
|
134
|
-
- ".github/workflows/windows.yml"
|
118
|
+
- ".github/workflows/rake.yml"
|
119
|
+
- ".github/workflows/release.yml"
|
135
120
|
- ".gitignore"
|
136
121
|
- CODE_OF_CONDUCT.md
|
137
122
|
- Gemfile
|
@@ -140,12 +125,10 @@ files:
|
|
140
125
|
- bin/console
|
141
126
|
- bin/setup
|
142
127
|
- lib/lutaml/express.rb
|
143
|
-
- lib/lutaml/express/lutaml_path/document_wrapper.rb
|
144
128
|
- lib/lutaml/express/parsers/exp.rb
|
145
129
|
- lib/lutaml/express/version.rb
|
146
130
|
- lutaml-express.gemspec
|
147
131
|
- spec/express/express_spec.rb
|
148
|
-
- spec/express/lutaml_path/document_wrapper_spec.rb
|
149
132
|
- spec/express/parsers/exp_spec.rb
|
150
133
|
- spec/fixtures/test.exp
|
151
134
|
- spec/spec_helper.rb
|
data/.github/workflows/macos.yml
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
name: macos
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
branches: [ master ]
|
6
|
-
pull_request:
|
7
|
-
paths-ignore:
|
8
|
-
- .github/workflows/ubuntu.yml
|
9
|
-
- .github/workflows/windows.yml
|
10
|
-
|
11
|
-
jobs:
|
12
|
-
test-macos:
|
13
|
-
name: Test on Ruby ${{ matrix.ruby }} macOS
|
14
|
-
runs-on: macos-latest
|
15
|
-
continue-on-error: ${{ matrix.experimental }}
|
16
|
-
strategy:
|
17
|
-
fail-fast: false
|
18
|
-
matrix:
|
19
|
-
ruby: [ '2.6', '2.5', '2.4' ]
|
20
|
-
experimental: [false]
|
21
|
-
include:
|
22
|
-
- ruby: '2.7'
|
23
|
-
experimental: true
|
24
|
-
steps:
|
25
|
-
- uses: actions/checkout@master
|
26
|
-
- name: Use Ruby
|
27
|
-
uses: actions/setup-ruby@v1
|
28
|
-
with:
|
29
|
-
ruby-version: ${{ matrix.ruby }}
|
30
|
-
- name: Update gems
|
31
|
-
run: |
|
32
|
-
sudo gem install bundler --force
|
33
|
-
bundle install --jobs 4 --retry 3
|
34
|
-
- name: Run specs
|
35
|
-
run: |
|
36
|
-
bundle exec rake
|
@@ -1,38 +0,0 @@
|
|
1
|
-
name: ubuntu
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
branches: [ master ]
|
6
|
-
tags:
|
7
|
-
- '*'
|
8
|
-
pull_request:
|
9
|
-
paths-ignore:
|
10
|
-
- .github/workflows/macos.yml
|
11
|
-
- .github/workflows/windows.yml
|
12
|
-
|
13
|
-
jobs:
|
14
|
-
test-linux:
|
15
|
-
name: Test on Ruby ${{ matrix.ruby }} Ubuntu
|
16
|
-
runs-on: ubuntu-latest
|
17
|
-
continue-on-error: ${{ matrix.experimental }}
|
18
|
-
strategy:
|
19
|
-
fail-fast: false
|
20
|
-
matrix:
|
21
|
-
ruby: [ '2.6', '2.5', '2.4' ]
|
22
|
-
experimental: [false]
|
23
|
-
include:
|
24
|
-
- ruby: '2.7'
|
25
|
-
experimental: true
|
26
|
-
steps:
|
27
|
-
- uses: actions/checkout@master
|
28
|
-
- name: Use Ruby
|
29
|
-
uses: actions/setup-ruby@v1
|
30
|
-
with:
|
31
|
-
ruby-version: ${{ matrix.ruby }}
|
32
|
-
- name: Update gems
|
33
|
-
run: |
|
34
|
-
gem install bundler
|
35
|
-
bundle install --jobs 4 --retry 3
|
36
|
-
- name: Run specs
|
37
|
-
run: |
|
38
|
-
bundle exec rake
|
@@ -1,41 +0,0 @@
|
|
1
|
-
name: windows
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
branches: [ master ]
|
6
|
-
pull_request:
|
7
|
-
paths-ignore:
|
8
|
-
- .github/workflows/macos.yml
|
9
|
-
- .github/workflows/ubuntu.yml
|
10
|
-
|
11
|
-
jobs:
|
12
|
-
test-windows:
|
13
|
-
name: Test on Ruby ${{ matrix.ruby }} Windows
|
14
|
-
runs-on: windows-latest
|
15
|
-
continue-on-error: ${{ matrix.experimental }}
|
16
|
-
strategy:
|
17
|
-
fail-fast: false
|
18
|
-
matrix:
|
19
|
-
ruby: [ '2.6', '2.5', '2.4' ]
|
20
|
-
experimental: [false]
|
21
|
-
# Does not supported yet:
|
22
|
-
# Ruby (< 2.7.dev, >= 2.3), which is required by gem 'nokogiri (~> 1.10)', is not
|
23
|
-
# available in the local ruby installation
|
24
|
-
# include:
|
25
|
-
# - ruby: '2.7'
|
26
|
-
# experimental: true
|
27
|
-
steps:
|
28
|
-
- uses: actions/checkout@master
|
29
|
-
- name: Use Ruby
|
30
|
-
uses: actions/setup-ruby@v1
|
31
|
-
with:
|
32
|
-
ruby-version: ${{ matrix.ruby }}
|
33
|
-
- name: Update gems
|
34
|
-
shell: pwsh
|
35
|
-
run: |
|
36
|
-
gem install bundler
|
37
|
-
bundle config --local path vendor/bundle
|
38
|
-
bundle install --jobs 4 --retry 3
|
39
|
-
- name: Run specs
|
40
|
-
run: |
|
41
|
-
bundle exec rake
|
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'lutaml/lutaml_path/document_wrapper'
|
2
|
-
|
3
|
-
module Lutaml
|
4
|
-
module Express
|
5
|
-
module LutamlPath
|
6
|
-
class DocumentWrapper < ::Lutaml::LutamlPath::DocumentWrapper
|
7
|
-
SCHEMA_ATTRIBUTES = %w[
|
8
|
-
id
|
9
|
-
constants
|
10
|
-
declarations
|
11
|
-
entities
|
12
|
-
functions
|
13
|
-
interfaces
|
14
|
-
procedures
|
15
|
-
rules
|
16
|
-
subtype_constraints
|
17
|
-
types
|
18
|
-
version
|
19
|
-
].freeze
|
20
|
-
|
21
|
-
protected
|
22
|
-
|
23
|
-
def serialize_document(repository)
|
24
|
-
repository.schemas.each_with_object({}) do |schema, res|
|
25
|
-
res['schemas'] ||= []
|
26
|
-
serialized_schema = SCHEMA_ATTRIBUTES.each_with_object({}) do |name, nested_res|
|
27
|
-
attr_value = schema.send(name)
|
28
|
-
nested_res[name] = serialize_value(attr_value)
|
29
|
-
end
|
30
|
-
res[schema.id] = serialized_schema
|
31
|
-
res['schemas'].push(serialized_schema)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "spec_helper"
|
4
|
-
|
5
|
-
RSpec.describe Lutaml::Express::LutamlPath::DocumentWrapper do
|
6
|
-
describe ".parse" do
|
7
|
-
subject(:lutaml_path) { described_class.new(repository) }
|
8
|
-
subject(:serialized_document) do
|
9
|
-
lutaml_path.serialized_document
|
10
|
-
end
|
11
|
-
|
12
|
-
context "when simple diagram without attributes" do
|
13
|
-
let(:repository) do
|
14
|
-
Lutaml::Express::Parsers::Exp.parse(File.new(fixtures_path("test.exp")))
|
15
|
-
end
|
16
|
-
let(:schema) { 'annotated_3d_model_data_quality_criteria_schema' }
|
17
|
-
let(:entities_names) do
|
18
|
-
%w[
|
19
|
-
a3m_data_quality_criteria_representation
|
20
|
-
a3m_data_quality_criterion
|
21
|
-
a3m_data_quality_criterion_specific_applied_value
|
22
|
-
a3m_data_quality_target_accuracy_association
|
23
|
-
a3m_detailed_report_request
|
24
|
-
a3m_summary_report_request_with_representative_value]
|
25
|
-
end
|
26
|
-
|
27
|
-
it "serializes repository attributes" do
|
28
|
-
expect(serialized_document.keys).to(eq(['schemas', schema]))
|
29
|
-
expect(serialized_document['schemas'].map {|n| n['id'] }).to(eq([schema]))
|
30
|
-
end
|
31
|
-
|
32
|
-
it "correctly finds elements by jmespath expression" do
|
33
|
-
expect(serialized_document['schemas'].first['entities']
|
34
|
-
.map {|n| n['id'] }).to(eq(entities_names))
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|