expressir 0.2.7-arm64-darwin → 0.2.8-arm64-darwin

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: 4f06cf6d275b07b0037d366838343e1e4140d38a335e31dbb53d180bcb002193
4
- data.tar.gz: 98cc1e29f51c30d125e46ec2077bc0d0feb6796156bea394b666892e7f6d060d
3
+ metadata.gz: 689296d67b7c8fa88ae284bc4136dfd4ce03a6454f82ba3c362b106f4be6a370
4
+ data.tar.gz: 3ceb78b54abf69886996439038c1fdcc73572e09d4c0914cc05113dd390f8694
5
5
  SHA512:
6
- metadata.gz: 377b9e9c0db29523e8f5268b9c017ecb0922f5265f4c42145e18b0be255b87a5fd42b6ace8743ee2879daa80b2ced0097c9919b7c3738d42442b89b27ed97749
7
- data.tar.gz: 9eb836a51ab50b80eb0b84bcfd0968659b788396a2fa1fafd45947aefc57b2a67b2c77171e939e34e10f3b87097647ebf3bc20f668409ceb8ad265961162802e
6
+ metadata.gz: f9884e1516f29543597c5e59fe548c8024ce6c4464a96d85da95fc8e9354586998c6688ecb8df3ca7d661781a104fda6e26da0549e1a1cf879956fa006b4beeb
7
+ data.tar.gz: daa15c6e7881cc714e098e59602595c2650a741f1950aaceeff4edbdac2d0f815f638ab98f2a7faa519bfe774b7780a0c16290ff56915b654dbff578cc20a88a
@@ -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: arm64-darwin
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