expressir 0.2.7-x86-mingw32 → 0.2.8-x86-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: a5976496400befc0ca9eb2f14db630e22808bacc64f72815df58f8c816a31f82
4
- data.tar.gz: ba0ab2c67b0b07f38d9e2022c5a98b140f100df04be52bf7712da1ab3fd4cef1
3
+ metadata.gz: a9f1c04da8b8c78468a69c1e7af8aec0933832e91f2c9a5c26eb37e77300ae52
4
+ data.tar.gz: 0623ad362c34b32997d089c5f207a336871107d11dd20a364575c035aa50bdc0
5
5
  SHA512:
6
- metadata.gz: e7d527d12fa473563f6f00cafb10e9abb736f50b631909b2a2bf0ba9c34a2cee9040b0f4c4e37b20df10ba8da5254a2a4fa55dc6bce497b421ad541194b18033
7
- data.tar.gz: 3628d946e703855993d384d40a589f72f97c2a8315218677a4a280d8fccb762710db4fc82f0eecd93970429ce3c3b4609447dd9b007b3286685ce83f030ec4ca
6
+ metadata.gz: f7807b3f35d9f6fe7cb77576ac3fa8569c10c18dfb7e9cefb1696a2a060dc38bc7301d16091d87ceb3dc1364ae3007285da08b822d86daa383e1eed2cc227635
7
+ data.tar.gz: 105af5f9f9e2f2aaca1f9036a1f576f4c57e3a7c6debfe86a13b502a0527fb2ab9260dd39886942b4979ed39ac945272a9cbc066b1368d53d38e0c593a5ee82c
@@ -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-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