expressir 0.2.7-x86-linux → 0.2.8-x86-linux

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: e46c3066c2d04226b469956392699ed1087917582bb01d09d9f2413263332ca2
4
- data.tar.gz: 96684a894c6ee18e3255ac5176c3d79b7f09d9401173bc6f73f34056fcfa45ab
3
+ metadata.gz: b63829bc4cb0a1d04ea67618f33b47080494d83e82e48e6ac1e815f663804b9f
4
+ data.tar.gz: b6ca966e2df2812db499d264caecccc3c580bab05f8562205bd4811ba4e05d3e
5
5
  SHA512:
6
- metadata.gz: 9b1ab028f4ed94b9fa7e2e4d645b509cecf45c182669fbb625e16c3aebd107774ebed7443d6ce42c4239eb2eec308a3034319844aa47a7ae9d3c103d80d74a12
7
- data.tar.gz: 1bd7f9bd727c70bcb5ced885dc60cfc9315d2ffd3949f43660c4e3f52b34a3ea6b079623ff00d79590768c3fe802d53eba039fdc40b1fa5661164a096c3ee6c9
6
+ metadata.gz: 3ef1f7c14039a2057a3e77ea944a86da3063d68e3101359cafff5041ddc053fbdb50ef80f22d8f9461804cc7a527d294a4e26d017d37e79c128bb702818a3854
7
+ data.tar.gz: 86899414ae7a007ae28821ad79cd1ebb50632db7dde31a0266ac01b2409b3046bbe4c03900119f1f3ae22cbcce32529a0e38714ab078b61900f2d51906e0d97d
@@ -71,14 +71,19 @@ jobs:
71
71
 
72
72
  - name: Publish to rubygems.org
73
73
  env:
74
- RUBYGEMS_API_KEY: ${{secrets.LUTAML_CI_RUBYGEMS_API_KEY}}
74
+ RUBYGEMS_API_KEY: ${{ secrets.LUTAML_CI_RUBYGEMS_API_KEY }}
75
75
  run: |
76
76
  mkdir -p ~/.gem
77
- cat <<'EOF' > ~/.gem/credentials
77
+ echo "---"
78
+ cat > ~/.gem/credentials << EOF
78
79
  ---
79
80
  :rubygems_api_key: ${RUBYGEMS_API_KEY}
80
81
  EOF
82
+ echo "---"
81
83
  chmod 0600 ~/.gem/credentials
82
- gem -v
83
- gem signin
84
- for gem in pkg/*.gem; do gem push $gem -V -k rubygems ; done
84
+ echo "---"
85
+ ls -la ~/.gem
86
+ echo "---"
87
+ gem signin --debug
88
+ echo "---"
89
+ for gem in pkg/*.gem; do gem push $gem -V; done
data/.gitignore CHANGED
@@ -8,7 +8,7 @@
8
8
  /tmp/
9
9
  /Gemfile.lock
10
10
  /.idea
11
- /lib/express_parser.bundle
11
+ /lib/expressir/express_exp/express_parser.bundle
12
12
  /original/examples/syntax/*-pretty.exp
13
13
 
14
14
  # rspec failure tracking
@@ -58,10 +58,20 @@ module Expressir
58
58
  ctx.map{|ctx2| visit(ctx2)}.flatten if ctx
59
59
  end
60
60
 
61
+ def get_tokens(ctx)
62
+ start_index, stop_index = if ctx.instance_of? ::ExpressParser::SyntaxContext
63
+ [0, @tokens.size - 1]
64
+ else
65
+ [ctx.start.token_index, ctx.stop.token_index]
66
+ end
67
+
68
+ @tokens[start_index..stop_index]
69
+ end
70
+
61
71
  def attach_source(ctx, node)
62
72
  if node.class.method_defined? :source
63
- start_index, stop_index = [ctx.start.token_index, ctx.stop.token_index]
64
- node.source = @tokens[start_index..stop_index].map{|x| x.text}.join('').force_encoding('UTF-8')
73
+ source_tokens = get_tokens(ctx).select{|x| x.text != '<EOF>'}
74
+ node.source = source_tokens.map{|x| x.text}.join('').force_encoding('UTF-8')
65
75
  end
66
76
  end
67
77
 
@@ -76,15 +86,7 @@ module Expressir
76
86
  end
77
87
 
78
88
  def attach_remarks(ctx, node)
79
- # get remark tokens
80
- start_index, stop_index = if ctx.instance_of? ::ExpressParser::SyntaxContext
81
- [0, @tokens.size - 1]
82
- else
83
- [ctx.start.token_index, ctx.stop.token_index]
84
- end
85
- # puts [start_index, stop_index, ctx.class].inspect
86
-
87
- remark_tokens = @tokens[start_index..stop_index].select{|x| x.channel == REMARK_CHANNEL}
89
+ remark_tokens = get_tokens(ctx).select{|x| x.channel == REMARK_CHANNEL}
88
90
  if remark_tokens
89
91
  remark_tokens.each do |remark_token|
90
92
  remark_text = remark_token.text
@@ -1,10 +1,11 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Identifier
4
+ attr_accessor :source
5
+
4
6
  attr_accessor :id
5
7
  attr_accessor :parent
6
8
  attr_accessor :remarks
7
- attr_accessor :source
8
9
  end
9
10
  end
10
11
  end
@@ -1,11 +1,26 @@
1
1
  module Expressir
2
2
  module Model
3
3
  module Scope
4
+ attr_accessor :source
5
+
4
6
  def find(path)
5
- path.downcase.split(".").reduce(self) do |acc, curr|
6
- if acc and acc.class.method_defined? :children
7
- acc.children.find{|x| x.id.downcase == curr}
7
+ current, rest = path.downcase.split(".", 2)
8
+
9
+ # ignore `wr:`, `ip:` part
10
+ if current.include? ":"
11
+ _, current = current.split(":", 2)
12
+ end
13
+
14
+ child = children.find{|x| x.id.downcase == current}
15
+
16
+ if rest
17
+ if child.class.method_defined? :find
18
+ child.find(rest)
19
+ else
20
+ nil
8
21
  end
22
+ else
23
+ child
9
24
  end
10
25
  end
11
26
 
@@ -1,3 +1,3 @@
1
1
  module Expressir
2
- VERSION = "0.2.7".freeze
2
+ VERSION = "0.2.8".freeze
3
3
  end
@@ -1,3 +1,4 @@
1
+ -- schema
1
2
  SCHEMA syntax_schema 'version';
2
3
 
3
4
  -- interfaces
@@ -0,0 +1,28 @@
1
+ require "spec_helper"
2
+ require "expressir/express_exp/parser"
3
+
4
+ RSpec.describe Expressir::Model::Scope do
5
+ describe ".find" do
6
+ it "finds an item" do
7
+ repo = Expressir::ExpressExp::Parser.from_exp(sample_file)
8
+
9
+ schema = repo.find("syntax_schema")
10
+ expect(schema).to be_instance_of(Expressir::Model::Schema)
11
+
12
+ entity = repo.find("syntax_schema.empty_entity")
13
+ expect(entity).to be_instance_of(Expressir::Model::Entity)
14
+
15
+ attribute = repo.find("syntax_schema.attribute_entity.test")
16
+ expect(attribute).to be_instance_of(Expressir::Model::Attribute)
17
+
18
+ where = repo.find("syntax_schema.where_label_entity.wr:WR1")
19
+ expect(where).to be_instance_of(Expressir::Model::Where)
20
+ end
21
+ end
22
+
23
+ def sample_file
24
+ @sample_file ||= Expressir.root_path.join(
25
+ "original", "examples", "syntax", "syntax.exp"
26
+ )
27
+ end
28
+ end
@@ -0,0 +1,32 @@
1
+ require "spec_helper"
2
+ require "expressir/express_exp/parser"
3
+
4
+ RSpec.describe Expressir::Model::Scope do
5
+ describe ".source" do
6
+ it "contains original source" do
7
+ input = File.read(sample_file)
8
+ repo = Expressir::ExpressExp::Parser.from_exp(sample_file)
9
+
10
+ expected_result = input
11
+ expect(repo.source).to eq(expected_result)
12
+
13
+ schema = repo.schemas.first
14
+ start_index = input.index("SCHEMA")
15
+ stop_index = input.index("END_SCHEMA;") + "END_SCHEMA;".length - 1
16
+ expected_result = input[start_index..stop_index]
17
+ expect(schema.source).to eq(expected_result)
18
+
19
+ entity = schema.entities.first
20
+ start_index = input.index("ENTITY")
21
+ stop_index = input.index("END_ENTITY;") + "END_ENTITY;".length - 1
22
+ expected_result = input[start_index..stop_index]
23
+ expect(entity.source).to eq(expected_result)
24
+ end
25
+ end
26
+
27
+ def sample_file
28
+ @sample_file ||= Expressir.root_path.join(
29
+ "original", "examples", "syntax", "syntax.exp"
30
+ )
31
+ end
32
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressir
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: x86-linux
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-12 00:00:00.000000000 Z
11
+ date: 2021-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -317,10 +317,12 @@ files:
317
317
  - spec/acceptance/version_spec.rb
318
318
  - spec/expressir/express/repository_spec.rb
319
319
  - spec/expressir/express_exp/ap233_spec.rb
320
+ - spec/expressir/express_exp/find_spec.rb
320
321
  - spec/expressir/express_exp/format_remark_spec.rb
321
322
  - spec/expressir/express_exp/format_syntax_spec.rb
322
323
  - spec/expressir/express_exp/parse_remark_spec.rb
323
324
  - spec/expressir/express_exp/parse_syntax_spec.rb
325
+ - spec/expressir/express_exp/source_spec.rb
324
326
  - spec/expressir/model/find_spec.rb
325
327
  - spec/expressr_spec.rb
326
328
  - spec/spec_helper.rb