expressir 2.1.5 → 2.1.7

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: fbb7fb563aa44a7d916ef48ccd2b5e865ced0776ce36e5c238fddaf3c2dd61ac
4
- data.tar.gz: 487913925a727a1e20fa4651ffc3a3af669f3ba094655bb232c39dde6b92b4e2
3
+ metadata.gz: a6581a76699cdae03a6f241de18d11d2e203b05217cde67c11b3c8eff2a46471
4
+ data.tar.gz: eb4f57c1ca685146d1df2c6cc38ef8564399f95bd90b90d42a00a4577b1bc283
5
5
  SHA512:
6
- metadata.gz: 979411f7682a574f9743ea7129bbf826d9c11657b97c2a9a95e9e9d066d530b99f95ffc228366f09fc8f86db3ec7596d4870bdab33de55aca094ef6ebef3d7ff
7
- data.tar.gz: dfd514fdfc7fd31dfddb4886545d2b763b1c53bea7b2eeed9a95b88274953f5996c5f606b180f5a783e5bb32e24a043903101315bc9de0b8d231bf89ac2f38fc
6
+ metadata.gz: a5ab59cc6adf7a3062cb862641bdbd31e3540892c7ddc07b495edc082a2cba09e2a20701d7699e01971bb49dc333ec9905b74a43ee1e6d8a583b5a3215728cc7
7
+ data.tar.gz: df94efe4eacc86b5fea8d313737031dcb022552c748aca9b57ee5574305e68e560a4561f32293302afa528cfb7c7e4c52de2e820d375886c77459bc8b917cded
@@ -16,9 +16,6 @@ module Expressir
16
16
 
17
17
  def call
18
18
  result = remark
19
- if options["leveloffset"]
20
- result = process_remark_offsets(result, options["leveloffset"].to_i)
21
- end
22
19
  if options["relative_path_prefix"]
23
20
  result = update_relative_paths(result,
24
21
  options["relative_path_prefix"])
@@ -52,25 +49,6 @@ module Expressir
52
49
  "#{$1}#{$2}#{full_path}#{$4}"
53
50
  end
54
51
  end
55
-
56
- def process_remark_offsets(string, offset)
57
- string
58
- .split("\n")
59
- .map do |line|
60
- if line.match?(/^=/)
61
- set_string_offsets(line, offset)
62
- else
63
- line
64
- end
65
- end
66
- .join("\n")
67
- end
68
-
69
- def set_string_offsets(string, offset)
70
- return "#{'=' * offset}#{string}" if offset.positive?
71
-
72
- string.gsub(/^={#{offset * -1}}/, "")
73
- end
74
52
  end
75
53
  end
76
54
  end
@@ -873,12 +873,17 @@ module Expressir
873
873
  end
874
874
 
875
875
  def format_expressions_function_call(node)
876
- [
877
- format(node.function),
878
- "(",
879
- node.parameters.map { |x| format(x) }.join(", "),
880
- ")",
881
- ].join("")
876
+ params = if node.parameters.nil?
877
+ []
878
+ else
879
+ [
880
+ "(",
881
+ node.parameters.map { |x| format(x) }.join(", "),
882
+ ")",
883
+ ]
884
+ end
885
+
886
+ [format(node.function), params].flatten.join("")
882
887
  end
883
888
 
884
889
  def format_expressions_interval(node)
@@ -50,7 +50,7 @@ module Expressir
50
50
  end
51
51
  rule(:abstractSupertype) { (tABSTRACT >> tSUPERTYPE >> op_delim).as(:abstractSupertype) }
52
52
  rule(:actualParameterList) do
53
- (op_leftparen >> (parameter >> (op_comma >> parameter).repeat).as(:listOf_parameter) >> op_rightparen)
53
+ (op_leftparen >> (parameter >> (op_comma >> parameter).repeat).as(:listOf_parameter).maybe >> op_rightparen)
54
54
  .as(:actualParameterList)
55
55
  end
56
56
  rule(:addLikeOp) { (op_plus | op_minus | tOR | tXOR).as(:addLikeOp) }
@@ -340,7 +340,7 @@ module Expressir
340
340
  rule(:simpleExpression) { (term >> (addLikeOp.as(:operator) >> term).as(:item).repeat.as(:rhs)).as(:simpleExpression) }
341
341
  rule(:simpleFactor) do
342
342
  (
343
- simpleFactorExpression | aggregateInitializer | entityConstructor | interval | queryExpression |
343
+ simpleFactorExpression | aggregateInitializer | entityConstructor | interval | queryExpression | stringLiteral |
344
344
  simpleFactorUnaryExpression | enumerationReference
345
345
  ).as(:simpleFactor)
346
346
  end
@@ -424,9 +424,15 @@ module Expressir
424
424
  # @param [Boolean] skip_references skip resolving references
425
425
  # @param [Boolean] include_source attach original source code to model elements
426
426
  # @return [Model::Repository]
427
- def self.from_file(file, skip_references: nil, include_source: nil)
427
+ def self.from_file(file, skip_references: nil, include_source: nil) # rubocop:disable Metrics/AbcSize
428
428
  source = File.read file
429
- ast = Parser.new.parse source
429
+
430
+ begin
431
+ ast = Parser.new.parse source
432
+ rescue Parslet::ParseFailed => e
433
+ puts "Parslet::ParseFailed:"
434
+ puts e.parse_failure_cause.ascii_tree
435
+ end
430
436
 
431
437
  visitor = Expressir::Express::Visitor.new(source, include_source: include_source)
432
438
  transformed = visitor.visit_ast ast, :top
@@ -204,6 +204,8 @@ module Expressir
204
204
  end
205
205
 
206
206
  def node_find(node, path)
207
+ return nil if node.is_a?(String)
208
+
207
209
  if node.is_a?(Enumerable)
208
210
  node.find { |item| item.find(path) }
209
211
  else
@@ -1062,7 +1064,7 @@ module Expressir
1062
1064
  ctx__actual_parameter_list = ctx.actual_parameter_list
1063
1065
 
1064
1066
  function = visit_if(ctx__built_in_function || ctx__function_ref)
1065
- parameters = visit_if(ctx__actual_parameter_list, [])
1067
+ parameters = visit_if(ctx__actual_parameter_list, nil)
1066
1068
 
1067
1069
  Model::Expressions::FunctionCall.new(
1068
1070
  function: function,
@@ -10,8 +10,8 @@ module Expressir
10
10
  @model = model
11
11
  @selected_schemas = selected_schemas
12
12
  @options = options
13
- initialize_identifier(@model, @options)
14
- super
13
+ initialize_identifier(@model)
14
+ super(model)
15
15
  end
16
16
 
17
17
  def file
@@ -14,7 +14,7 @@ module Expressir
14
14
  end
15
15
 
16
16
  def parameters
17
- return [] unless @model.parameters
17
+ return nil unless @model.parameters
18
18
 
19
19
  @model.parameters.map do |item|
20
20
  drop_klass_by_model(item)
@@ -5,9 +5,8 @@ require_relative "declarations/remark_item_drop"
5
5
  module Expressir
6
6
  module Liquid
7
7
  module IdentifierDrop
8
- def initialize_identifier(model, options = {})
8
+ def initialize_identifier(model)
9
9
  @model = model
10
- @options = options
11
10
  end
12
11
 
13
12
  def id
@@ -3,10 +3,8 @@
3
3
  module Expressir
4
4
  module Liquid
5
5
  class ModelElementDrop < ::Liquid::Drop
6
- def initialize(model, selected_schemas: nil, options: {}) # rubocop:disable Lint/MissingSuper
6
+ def initialize(model) # rubocop:disable Lint/MissingSuper
7
7
  @model = model
8
- @selected_schemas = selected_schemas
9
- @options = options
10
8
  end
11
9
 
12
10
  def _class
@@ -9,7 +9,7 @@ module Expressir
9
9
  @model = model
10
10
  @selected_schemas = selected_schemas
11
11
  @options = options
12
- super
12
+ super(model)
13
13
  end
14
14
 
15
15
  def schemas
@@ -12,7 +12,7 @@ module Expressir
12
12
  # @option options [Array<Expression>] :parameters
13
13
  def initialize(options = {})
14
14
  @function = options[:function]
15
- @parameters = options[:parameters] || []
15
+ @parameters = options[:parameters]
16
16
 
17
17
  super
18
18
  end
@@ -1,3 +1,3 @@
1
1
  module Expressir
2
- VERSION = "2.1.5".freeze
2
+ VERSION = "2.1.7".freeze
3
3
  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: 2.1.5
4
+ version: 2.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-05 00:00:00.000000000 Z
11
+ date: 2025-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: liquid
@@ -261,7 +261,7 @@ metadata:
261
261
  source_code_uri: https://github.com/lutaml/expressir
262
262
  changelog_uri: https://github.com/lutaml/expressir/releases
263
263
  rubygems_mfa_required: 'true'
264
- post_install_message:
264
+ post_install_message:
265
265
  rdoc_options: []
266
266
  require_paths:
267
267
  - lib
@@ -277,7 +277,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
277
277
  version: '0'
278
278
  requirements: []
279
279
  rubygems_version: 3.3.27
280
- signing_key:
280
+ signing_key:
281
281
  specification_version: 4
282
282
  summary: EXPRESS parser and toolkit for Ruby
283
283
  test_files: []