expressir 2.0.0 → 2.1.0

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.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +15 -1
  3. data/Gemfile +0 -1
  4. data/exe/{format-test → expressir-format-test} +1 -1
  5. data/expressir.gemspec +2 -2
  6. data/lib/expressir/liquid/cache_drop.rb +20 -0
  7. data/lib/expressir/liquid/data_type_drop.rb +8 -0
  8. data/lib/expressir/liquid/data_types/aggregate_drop.rb +21 -0
  9. data/lib/expressir/liquid/data_types/array_drop.rb +34 -0
  10. data/lib/expressir/liquid/data_types/bag_drop.rb +26 -0
  11. data/lib/expressir/liquid/data_types/binary_drop.rb +22 -0
  12. data/lib/expressir/liquid/data_types/boolean_drop.rb +10 -0
  13. data/lib/expressir/liquid/data_types/enumeration_drop.rb +30 -0
  14. data/lib/expressir/liquid/data_types/enumeration_item_drop.rb +17 -0
  15. data/lib/expressir/liquid/data_types/generic_drop.rb +17 -0
  16. data/lib/expressir/liquid/data_types/generic_entity_drop.rb +17 -0
  17. data/lib/expressir/liquid/data_types/integer_drop.rb +10 -0
  18. data/lib/expressir/liquid/data_types/list_drop.rb +30 -0
  19. data/lib/expressir/liquid/data_types/logical_drop.rb +10 -0
  20. data/lib/expressir/liquid/data_types/number_drop.rb +10 -0
  21. data/lib/expressir/liquid/data_types/real_drop.rb +18 -0
  22. data/lib/expressir/liquid/data_types/select_drop.rb +34 -0
  23. data/lib/expressir/liquid/data_types/set_drop.rb +26 -0
  24. data/lib/expressir/liquid/data_types/string_drop.rb +22 -0
  25. data/lib/expressir/liquid/declaration_drop.rb +8 -0
  26. data/lib/expressir/liquid/declarations/attribute_drop.rb +37 -0
  27. data/lib/expressir/liquid/declarations/constant_drop.rb +25 -0
  28. data/lib/expressir/liquid/declarations/entity_drop.rb +65 -0
  29. data/lib/expressir/liquid/declarations/function_drop.rb +93 -0
  30. data/lib/expressir/liquid/declarations/interface_drop.rb +30 -0
  31. data/lib/expressir/liquid/declarations/interface_item_drop.rb +22 -0
  32. data/lib/expressir/liquid/declarations/interfaced_item_drop.rb +34 -0
  33. data/lib/expressir/liquid/declarations/parameter_drop.rb +25 -0
  34. data/lib/expressir/liquid/declarations/procedure_drop.rb +89 -0
  35. data/lib/expressir/liquid/declarations/remark_item_drop.rb +22 -0
  36. data/lib/expressir/liquid/declarations/rule_drop.rb +105 -0
  37. data/lib/expressir/liquid/declarations/schema_drop.rb +91 -0
  38. data/lib/expressir/liquid/declarations/schema_version_drop.rb +26 -0
  39. data/lib/expressir/liquid/declarations/schema_version_item_drop.rb +22 -0
  40. data/lib/expressir/liquid/declarations/subtype_constraint_drop.rb +37 -0
  41. data/lib/expressir/liquid/declarations/type_drop.rb +37 -0
  42. data/lib/expressir/liquid/declarations/unique_rule_drop.rb +21 -0
  43. data/lib/expressir/liquid/declarations/variable_drop.rb +25 -0
  44. data/lib/expressir/liquid/declarations/where_rule_drop.rb +21 -0
  45. data/lib/expressir/liquid/expression_drop.rb +8 -0
  46. data/lib/expressir/liquid/expressions/aggregate_initializer_drop.rb +24 -0
  47. data/lib/expressir/liquid/expressions/aggregate_initializer_item_drop.rb +22 -0
  48. data/lib/expressir/liquid/expressions/binary_expression_drop.rb +26 -0
  49. data/lib/expressir/liquid/expressions/entity_constructor_drop.rb +26 -0
  50. data/lib/expressir/liquid/expressions/function_call_drop.rb +26 -0
  51. data/lib/expressir/liquid/expressions/interval_drop.rb +34 -0
  52. data/lib/expressir/liquid/expressions/query_expression_drop.rb +25 -0
  53. data/lib/expressir/liquid/expressions/unary_expression_drop.rb +22 -0
  54. data/lib/expressir/liquid/identifier_drop.rb +33 -0
  55. data/lib/expressir/liquid/literal_drop.rb +8 -0
  56. data/lib/expressir/liquid/literals/binary_drop.rb +18 -0
  57. data/lib/expressir/liquid/literals/integer_drop.rb +18 -0
  58. data/lib/expressir/liquid/literals/logical_drop.rb +18 -0
  59. data/lib/expressir/liquid/literals/real_drop.rb +18 -0
  60. data/lib/expressir/liquid/literals/string_drop.rb +22 -0
  61. data/lib/expressir/liquid/model_element_drop.rb +33 -0
  62. data/lib/expressir/liquid/reference_drop.rb +8 -0
  63. data/lib/expressir/liquid/references/attribute_reference_drop.rb +22 -0
  64. data/lib/expressir/liquid/references/group_reference_drop.rb +22 -0
  65. data/lib/expressir/liquid/references/index_reference_drop.rb +26 -0
  66. data/lib/expressir/liquid/references/simple_reference_drop.rb +22 -0
  67. data/lib/expressir/liquid/repository_drop.rb +22 -0
  68. data/lib/expressir/liquid/statement_drop.rb +8 -0
  69. data/lib/expressir/liquid/statements/alias_drop.rb +29 -0
  70. data/lib/expressir/liquid/statements/assignment_drop.rb +22 -0
  71. data/lib/expressir/liquid/statements/case_action_drop.rb +26 -0
  72. data/lib/expressir/liquid/statements/case_drop.rb +30 -0
  73. data/lib/expressir/liquid/statements/compound_drop.rb +22 -0
  74. data/lib/expressir/liquid/statements/escape_drop.rb +10 -0
  75. data/lib/expressir/liquid/statements/if_drop.rb +34 -0
  76. data/lib/expressir/liquid/statements/null_drop.rb +10 -0
  77. data/lib/expressir/liquid/statements/procedure_call_drop.rb +26 -0
  78. data/lib/expressir/liquid/statements/repeat_drop.rb +45 -0
  79. data/lib/expressir/liquid/statements/return_drop.rb +18 -0
  80. data/lib/expressir/liquid/statements/skip_drop.rb +10 -0
  81. data/lib/expressir/liquid/supertype_expression_drop.rb +8 -0
  82. data/lib/expressir/liquid/supertype_expressions/binary_supertype_expression_drop.rb +26 -0
  83. data/lib/expressir/liquid/supertype_expressions/oneof_supertype_expression_drop.rb +22 -0
  84. data/lib/expressir/liquid.rb +18 -0
  85. data/lib/expressir/model/model_element.rb +7 -0
  86. data/lib/expressir/version.rb +1 -1
  87. data/lib/expressir.rb +2 -0
  88. metadata +98 -8
  89. /data/exe/{format → expressir-format} +0 -0
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module Statements
6
+ class CompoundDrop < ::Expressir::Liquid::StatementDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def statements
13
+ return [] unless @model.statements
14
+
15
+ @model.statements.map do |item|
16
+ ::Expressir::Liquid::StatementDrop.new(item)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module Statements
6
+ class EscapeDrop < ::Expressir::Liquid::StatementDrop
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module Statements
6
+ class IfDrop < ::Expressir::Liquid::StatementDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def expression
13
+ drop_klass_by_model(@model.expression)
14
+ end
15
+
16
+ def statements
17
+ return [] unless @model.statements
18
+
19
+ @model.statements.map do |item|
20
+ ::Expressir::Liquid::StatementDrop.new(item)
21
+ end
22
+ end
23
+
24
+ def else_statements
25
+ return [] unless @model.else_statements
26
+
27
+ @model.else_statements.map do |item|
28
+ ::Expressir::Liquid::StatementDrop.new(item)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module Statements
6
+ class NullDrop < ::Expressir::Liquid::StatementDrop
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module Statements
6
+ class ProcedureCallDrop < ::Expressir::Liquid::StatementDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def procedure
13
+ drop_klass_by_model(@model.procedure)
14
+ end
15
+
16
+ def parameters
17
+ return [] unless @model.parameters
18
+
19
+ @model.parameters.map do |item|
20
+ drop_klass_by_model(item)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module Statements
6
+ class RepeatDrop < ::Expressir::Liquid::StatementDrop
7
+ include ::Expressir::Liquid::IdentifierDrop
8
+
9
+ def initialize(model)
10
+ @model = model
11
+ initialize_identifier(@model)
12
+ super
13
+ end
14
+
15
+ def bound1
16
+ drop_klass_by_model(@model.bound1)
17
+ end
18
+
19
+ def bound2
20
+ drop_klass_by_model(@model.bound2)
21
+ end
22
+
23
+ def increment
24
+ drop_klass_by_model(@model.increment)
25
+ end
26
+
27
+ def while_expression
28
+ drop_klass_by_model(@model.while_expression)
29
+ end
30
+
31
+ def until_expression
32
+ drop_klass_by_model(@model.until_expression)
33
+ end
34
+
35
+ def statements
36
+ return [] unless @model.statements
37
+
38
+ @model.statements.map do |item|
39
+ ::Expressir::Liquid::StatementDrop.new(item)
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module Statements
6
+ class ReturnDrop < ::Expressir::Liquid::StatementDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def expression
13
+ drop_klass_by_model(@model.expression)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module Statements
6
+ class SkipDrop < ::Expressir::Liquid::StatementDrop
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ class SupertypeExpressionDrop < ::Expressir::Liquid::ModelElementDrop
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module SupertypeExpressions
6
+ class BinarySupertypeExpressionDrop < ::Expressir::Liquid::SupertypeExpressionDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def operator
13
+ @model.operator
14
+ end
15
+
16
+ def operand1
17
+ drop_klass_by_model(@model.operand1)
18
+ end
19
+
20
+ def operand2
21
+ drop_klass_by_model(@model.operand2)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module SupertypeExpressions
6
+ class OneofSupertypeExpressionDrop < ::Expressir::Liquid::SupertypeExpressionDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def operands
13
+ return [] unless @model.operands
14
+
15
+ @model.operands.map do |item|
16
+ drop_klass_by_model(item)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,18 @@
1
+ require "liquid"
2
+
3
+ require "expressir/liquid/model_element_drop"
4
+
5
+ require "expressir/liquid/cache_drop"
6
+ require "expressir/liquid/data_type_drop"
7
+ require "expressir/liquid/declaration_drop"
8
+ require "expressir/liquid/expression_drop"
9
+ require "expressir/liquid/literal_drop"
10
+ require "expressir/liquid/reference_drop"
11
+ require "expressir/liquid/statement_drop"
12
+ require "expressir/liquid/supertype_expression_drop"
13
+ require "expressir/liquid/identifier_drop"
14
+ require "expressir/liquid/repository_drop"
15
+
16
+ Dir[File.join(__dir__, "liquid", "**", "*.rb")].sort.each do |f|
17
+ require f
18
+ end
@@ -150,6 +150,13 @@ module Expressir
150
150
  hash
151
151
  end
152
152
 
153
+ # @return [Liquid::Drop]
154
+ def to_liquid
155
+ klass_name = self.class.name.gsub("::Model::", "::Liquid::") + "Drop"
156
+ klass = Object.const_get(klass_name)
157
+ klass.new(self)
158
+ end
159
+
153
160
  def to_s
154
161
  to_s(no_remarks: false, formatter: nil)
155
162
  end
@@ -1,3 +1,3 @@
1
1
  module Expressir
2
- VERSION = "2.0.0".freeze
2
+ VERSION = "2.1.0".freeze
3
3
  end
data/lib/expressir.rb CHANGED
@@ -38,3 +38,5 @@ end
38
38
  Dir[File.join(__dir__, "expressir", "express", "*.rb")].sort.each do |fea|
39
39
  require fea
40
40
  end
41
+
42
+ require "expressir/liquid"
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.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-11-10 00:00:00.000000000 Z
11
+ date: 2024-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -38,14 +38,25 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: liquid
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  description: Expressir (“EXPRESS in Ruby”) is a Ruby parser for EXPRESS and a set
42
56
  of tools for accessing EXPRESS data models.
43
57
  email:
44
58
  - open.source@ribose.com
45
- executables:
46
- - expressir
47
- - format
48
- - format-test
59
+ executables: []
49
60
  extensions: []
50
61
  extra_rdoc_files: []
51
62
  files:
@@ -66,8 +77,8 @@ files:
66
77
  - bin/setup
67
78
  - docs/development.md
68
79
  - exe/expressir
69
- - exe/format
70
- - exe/format-test
80
+ - exe/expressir-format
81
+ - exe/expressir-format-test
71
82
  - expressir.gemspec
72
83
  - expressir_wrapped.txt
73
84
  - lib/expressir.rb
@@ -81,6 +92,85 @@ files:
81
92
  - lib/expressir/express/resolve_references_model_visitor.rb
82
93
  - lib/expressir/express/schema_head_formatter.rb
83
94
  - lib/expressir/express/visitor.rb
95
+ - lib/expressir/liquid.rb
96
+ - lib/expressir/liquid/cache_drop.rb
97
+ - lib/expressir/liquid/data_type_drop.rb
98
+ - lib/expressir/liquid/data_types/aggregate_drop.rb
99
+ - lib/expressir/liquid/data_types/array_drop.rb
100
+ - lib/expressir/liquid/data_types/bag_drop.rb
101
+ - lib/expressir/liquid/data_types/binary_drop.rb
102
+ - lib/expressir/liquid/data_types/boolean_drop.rb
103
+ - lib/expressir/liquid/data_types/enumeration_drop.rb
104
+ - lib/expressir/liquid/data_types/enumeration_item_drop.rb
105
+ - lib/expressir/liquid/data_types/generic_drop.rb
106
+ - lib/expressir/liquid/data_types/generic_entity_drop.rb
107
+ - lib/expressir/liquid/data_types/integer_drop.rb
108
+ - lib/expressir/liquid/data_types/list_drop.rb
109
+ - lib/expressir/liquid/data_types/logical_drop.rb
110
+ - lib/expressir/liquid/data_types/number_drop.rb
111
+ - lib/expressir/liquid/data_types/real_drop.rb
112
+ - lib/expressir/liquid/data_types/select_drop.rb
113
+ - lib/expressir/liquid/data_types/set_drop.rb
114
+ - lib/expressir/liquid/data_types/string_drop.rb
115
+ - lib/expressir/liquid/declaration_drop.rb
116
+ - lib/expressir/liquid/declarations/attribute_drop.rb
117
+ - lib/expressir/liquid/declarations/constant_drop.rb
118
+ - lib/expressir/liquid/declarations/entity_drop.rb
119
+ - lib/expressir/liquid/declarations/function_drop.rb
120
+ - lib/expressir/liquid/declarations/interface_drop.rb
121
+ - lib/expressir/liquid/declarations/interface_item_drop.rb
122
+ - lib/expressir/liquid/declarations/interfaced_item_drop.rb
123
+ - lib/expressir/liquid/declarations/parameter_drop.rb
124
+ - lib/expressir/liquid/declarations/procedure_drop.rb
125
+ - lib/expressir/liquid/declarations/remark_item_drop.rb
126
+ - lib/expressir/liquid/declarations/rule_drop.rb
127
+ - lib/expressir/liquid/declarations/schema_drop.rb
128
+ - lib/expressir/liquid/declarations/schema_version_drop.rb
129
+ - lib/expressir/liquid/declarations/schema_version_item_drop.rb
130
+ - lib/expressir/liquid/declarations/subtype_constraint_drop.rb
131
+ - lib/expressir/liquid/declarations/type_drop.rb
132
+ - lib/expressir/liquid/declarations/unique_rule_drop.rb
133
+ - lib/expressir/liquid/declarations/variable_drop.rb
134
+ - lib/expressir/liquid/declarations/where_rule_drop.rb
135
+ - lib/expressir/liquid/expression_drop.rb
136
+ - lib/expressir/liquid/expressions/aggregate_initializer_drop.rb
137
+ - lib/expressir/liquid/expressions/aggregate_initializer_item_drop.rb
138
+ - lib/expressir/liquid/expressions/binary_expression_drop.rb
139
+ - lib/expressir/liquid/expressions/entity_constructor_drop.rb
140
+ - lib/expressir/liquid/expressions/function_call_drop.rb
141
+ - lib/expressir/liquid/expressions/interval_drop.rb
142
+ - lib/expressir/liquid/expressions/query_expression_drop.rb
143
+ - lib/expressir/liquid/expressions/unary_expression_drop.rb
144
+ - lib/expressir/liquid/identifier_drop.rb
145
+ - lib/expressir/liquid/literal_drop.rb
146
+ - lib/expressir/liquid/literals/binary_drop.rb
147
+ - lib/expressir/liquid/literals/integer_drop.rb
148
+ - lib/expressir/liquid/literals/logical_drop.rb
149
+ - lib/expressir/liquid/literals/real_drop.rb
150
+ - lib/expressir/liquid/literals/string_drop.rb
151
+ - lib/expressir/liquid/model_element_drop.rb
152
+ - lib/expressir/liquid/reference_drop.rb
153
+ - lib/expressir/liquid/references/attribute_reference_drop.rb
154
+ - lib/expressir/liquid/references/group_reference_drop.rb
155
+ - lib/expressir/liquid/references/index_reference_drop.rb
156
+ - lib/expressir/liquid/references/simple_reference_drop.rb
157
+ - lib/expressir/liquid/repository_drop.rb
158
+ - lib/expressir/liquid/statement_drop.rb
159
+ - lib/expressir/liquid/statements/alias_drop.rb
160
+ - lib/expressir/liquid/statements/assignment_drop.rb
161
+ - lib/expressir/liquid/statements/case_action_drop.rb
162
+ - lib/expressir/liquid/statements/case_drop.rb
163
+ - lib/expressir/liquid/statements/compound_drop.rb
164
+ - lib/expressir/liquid/statements/escape_drop.rb
165
+ - lib/expressir/liquid/statements/if_drop.rb
166
+ - lib/expressir/liquid/statements/null_drop.rb
167
+ - lib/expressir/liquid/statements/procedure_call_drop.rb
168
+ - lib/expressir/liquid/statements/repeat_drop.rb
169
+ - lib/expressir/liquid/statements/return_drop.rb
170
+ - lib/expressir/liquid/statements/skip_drop.rb
171
+ - lib/expressir/liquid/supertype_expression_drop.rb
172
+ - lib/expressir/liquid/supertype_expressions/binary_supertype_expression_drop.rb
173
+ - lib/expressir/liquid/supertype_expressions/oneof_supertype_expression_drop.rb
84
174
  - lib/expressir/model.rb
85
175
  - lib/expressir/model/cache.rb
86
176
  - lib/expressir/model/data_type.rb
File without changes