expressir 2.1.5 → 2.1.7

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: 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: []