expressir 0.2.7-x64-mingw32 → 0.2.8-x64-mingw32

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: 237c4e8a9b07b870243f43eaa2ab8c451425ff6dcb899bc45aade95180291dcd
4
- data.tar.gz: fe32c1232134b3886eeaa8cfe1e83111219d2b8bcc629d8e16f2b686a78ea2db
3
+ metadata.gz: 1a9693930dd06c19eededab31261d9d3de41261b28d8c80edd3e0f8a3a8059da
4
+ data.tar.gz: d144183e37f61c02b1444436a025291aa5678a9bc9c6675b4872466c0f6075b2
5
5
  SHA512:
6
- metadata.gz: 69918382796bf4ab895c53e2447f2fd4374c3b055f0aec05be2def775f0657c524d100ab584e1b9a03a6f5ec846613d2f6b507a362f80187d87f3816736c215e
7
- data.tar.gz: 5407f1db050729ef1a4c41cc43d792d5aeccb09b4f2308733d018150f045cc5297fb95cbcd39c663e249ecc97cf8c5df03e7f8252c35d18ae4158f4b22cdae68
6
+ metadata.gz: d40a36cdf2d7712353ba266468bd324e8fe68132fe51231707467a24e848ca5ce029088ba513ccd37531251219bee3e666dfafb01d2323c650d6930b8c1654a1
7
+ data.tar.gz: 8e384fed328cb582918a42c12b418db5ecc12ca9dfe9d61ed6f1af8326fee85c1cf8bbce7d2fe6a744a15c63fa5c1afdc45781f24e6d6d4efbc6e1bc28e25435
@@ -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: x64-mingw32
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