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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1eb8fca7617066f56f2141e4deadd8b34ac4e0cc8946268448446d6ce11adbb4
4
- data.tar.gz: 96eb473f78ce645d22e21b8bb1c2887959e98874ea255024b7b13c48eddb05b6
3
+ metadata.gz: cbd41bdd1b751ae458be19326cd83cb663516e4377de07b935e914610812bccd
4
+ data.tar.gz: 89a7c1ca633ecd262d9990aa1915a63480e2cbd61ffcd25f8c29e8906a74ebcf
5
5
  SHA512:
6
- metadata.gz: 4e6ebf6461e38d58a6a979ffd22de3eebe48f3feda4c179f45ec2919605e1875768683f8a6ec019533f17543b936f72d6f20ceefddf695a60e4dca4675f06cb9
7
- data.tar.gz: 1db94948d3012f7282f5f25ef5f7bfa83a236c9c1fdd42ec1fa07844600e43b89b8cf38955923cbca4c8f72db44131ba17ca7886b19d06946c4933430bf7c939
6
+ metadata.gz: ded756dbd4abdc170eac6eaef07af7af582d608fc3f974ed6b2d8b36a83cd2ebc1f3a5196228b5bb5a027e0361b12c4ad233e15d1a137183def193a07cbcd7f7
7
+ data.tar.gz: c325aeec18fa692234d24883b68cf650ca4a5f85c614b311671cc62659b1d52f6a1526bd938350259cc6eaf45fdfd8e3e181133258a31d2d32091c2a03eead2e
data/.rubocop_todo.yml CHANGED
@@ -1,7 +1,21 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2024-11-08 08:38:26 UTC using RuboCop version 1.68.0.
3
+ # on 2024-11-19 15:15:51 UTC using RuboCop version 1.68.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # This cop supports safe autocorrection (--autocorrect).
11
+ # Configuration parameters: Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
12
+ # URISchemes: http, https
13
+ Layout/LineLength:
14
+ Exclude:
15
+ - 'exe/expressir-format-test'
16
+
17
+ # Offense count: 1
18
+ # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
19
+ # AllowedMethods: refine
20
+ Metrics/BlockLength:
21
+ Max: 36
data/Gemfile CHANGED
@@ -5,7 +5,6 @@ source "https://rubygems.org"
5
5
  # Specify your gem's dependencies in reeper.gemspec
6
6
  gemspec
7
7
 
8
- # gem "asciidoctor", "~> 2.0.13"
9
8
  gem "pry"
10
9
  gem "rake", "~> 13.0"
11
10
  gem "rspec", "~> 3.0"
@@ -75,7 +75,7 @@ formatter = Class.new(Expressir::Express::Formatter) do
75
75
  include Expressir::Express::SchemaHeadFormatter
76
76
  include Expressir::Express::HyperlinkFormatter
77
77
  end
78
- result = repository.to_hash(formatter: formatter)
78
+ repository.to_hash(formatter: formatter)
79
79
  puts "Repository.to_hash time: #{(Time.now - start).round(2)}s"
80
80
 
81
81
  # puts YAML.dump(result)
data/expressir.gemspec CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.metadata["homepage_uri"] = spec.homepage
22
22
  spec.metadata["source_code_uri"] = spec.homepage
23
23
  spec.metadata["changelog_uri"] = "https://github.com/lutaml/expressir/releases"
24
+ spec.metadata["rubygems_mfa_required"] = "true"
24
25
 
25
26
  spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
26
27
 
@@ -30,10 +31,9 @@ Gem::Specification.new do |spec|
30
31
  end
31
32
  end
32
33
 
33
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
34
  spec.test_files = `git ls-files -- {spec}/*`.split("\n")
35
35
 
36
36
  spec.add_dependency "thor", "~> 1.0"
37
37
  spec.add_dependency "parslet", "~> 2.0"
38
- spec.metadata["rubygems_mfa_required"] = "true"
38
+ spec.add_dependency "liquid"
39
39
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ class CacheDrop < ::Expressir::Liquid::ModelElementDrop
6
+ def initialize(model)
7
+ @model = model
8
+ super
9
+ end
10
+
11
+ def version
12
+ @model.version
13
+ end
14
+
15
+ def content
16
+ ::Expressir::Liquid::ModelElementDrop.new(@model.content)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ class DataTypeDrop < ::Expressir::Liquid::ModelElementDrop
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class AggregateDrop < ::Expressir::Liquid::DataTypeDrop
7
+ include ::Expressir::Liquid::IdentifierDrop
8
+
9
+ def initialize(model)
10
+ @model = model
11
+ initialize_identifier(@model)
12
+ super
13
+ end
14
+
15
+ def base_type
16
+ drop_klass_by_model(@model.base_type)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class ArrayDrop < ::Expressir::Liquid::DataTypeDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def bound1
13
+ drop_klass_by_model(@model.bound1)
14
+ end
15
+
16
+ def bound2
17
+ drop_klass_by_model(@model.bound2)
18
+ end
19
+
20
+ def optional
21
+ @model.optional
22
+ end
23
+
24
+ def unique
25
+ @model.unique
26
+ end
27
+
28
+ def base_type
29
+ drop_klass_by_model(@model.base_type)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class BagDrop < ::Expressir::Liquid::DataTypeDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def bound1
13
+ drop_klass_by_model(@model.bound1)
14
+ end
15
+
16
+ def bound2
17
+ drop_klass_by_model(@model.bound2)
18
+ end
19
+
20
+ def base_type
21
+ drop_klass_by_model(@model.base_type)
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 DataTypes
6
+ class BinaryDrop < ::Expressir::Liquid::DataTypeDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def width
13
+ drop_klass_by_model(@model.width)
14
+ end
15
+
16
+ def fixed
17
+ @model.fixed
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 DataTypes
6
+ class BooleanDrop < ::Expressir::Liquid::DataTypeDrop
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class EnumerationDrop < ::Expressir::Liquid::DataTypeDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def extensible
13
+ @model.extensible
14
+ end
15
+
16
+ def based_on
17
+ drop_klass_by_model(@model.based_on)
18
+ end
19
+
20
+ def items
21
+ return [] unless @model.items
22
+
23
+ @model.items.map do |item|
24
+ ::Expressir::Liquid::DataTypes::EnumerationItemDrop.new(item)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class EnumerationItemDrop < ::Expressir::Liquid::DataTypeDrop
7
+ include ::Expressir::Liquid::IdentifierDrop
8
+
9
+ def initialize(model)
10
+ @model = model
11
+ initialize_identifier(@model)
12
+ super
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class GenericDrop < ::Expressir::Liquid::DataTypeDrop
7
+ include ::Expressir::Liquid::IdentifierDrop
8
+
9
+ def initialize(model)
10
+ @model = model
11
+ initialize_identifier(@model)
12
+ super
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class GenericEntityDrop < ::Expressir::Liquid::DataTypeDrop
7
+ include ::Expressir::Liquid::IdentifierDrop
8
+
9
+ def initialize(model)
10
+ @model = model
11
+ initialize_identifier(@model)
12
+ super
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class IntegerDrop < ::Expressir::Liquid::DataTypeDrop
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class ListDrop < ::Expressir::Liquid::DataTypeDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def bound1
13
+ drop_klass_by_model(@model.bound1)
14
+ end
15
+
16
+ def bound2
17
+ drop_klass_by_model(@model.bound2)
18
+ end
19
+
20
+ def unique
21
+ @model.unique
22
+ end
23
+
24
+ def base_type
25
+ drop_klass_by_model(@model.base_type)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class LogicalDrop < ::Expressir::Liquid::DataTypeDrop
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class NumberDrop < ::Expressir::Liquid::DataTypeDrop
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class RealDrop < ::Expressir::Liquid::DataTypeDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def precision
13
+ drop_klass_by_model(@model.precision)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class SelectDrop < ::Expressir::Liquid::DataTypeDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def extensible
13
+ @model.extensible
14
+ end
15
+
16
+ def generic_entity
17
+ @model.generic_entity
18
+ end
19
+
20
+ def based_on
21
+ drop_klass_by_model(@model.based_on)
22
+ end
23
+
24
+ def items
25
+ return [] unless @model.items
26
+
27
+ @model.items.map do |item|
28
+ drop_klass_by_model(item)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module DataTypes
6
+ class SetDrop < ::Expressir::Liquid::DataTypeDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def bound1
13
+ drop_klass_by_model(@model.bound1)
14
+ end
15
+
16
+ def bound2
17
+ drop_klass_by_model(@model.bound2)
18
+ end
19
+
20
+ def base_type
21
+ drop_klass_by_model(@model.base_type)
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 DataTypes
6
+ class StringDrop < ::Expressir::Liquid::DataTypeDrop
7
+ def initialize(model)
8
+ @model = model
9
+ super
10
+ end
11
+
12
+ def width
13
+ drop_klass_by_model(@model.width)
14
+ end
15
+
16
+ def fixed
17
+ @model.fixed
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ class DeclarationDrop < ::Expressir::Liquid::ModelElementDrop
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module Declarations
6
+ class AttributeDrop < ::Expressir::Liquid::DeclarationDrop
7
+ include ::Expressir::Liquid::IdentifierDrop
8
+
9
+ def initialize(model)
10
+ @model = model
11
+ initialize_identifier(@model)
12
+ super
13
+ end
14
+
15
+ def kind
16
+ @model.kind
17
+ end
18
+
19
+ def supertype_attribute
20
+ drop_klass_by_model(@model.supertype_attribute)
21
+ end
22
+
23
+ def optional
24
+ @model.optional
25
+ end
26
+
27
+ def type
28
+ drop_klass_by_model(@model.type)
29
+ end
30
+
31
+ def expression
32
+ drop_klass_by_model(@model.expression)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module Declarations
6
+ class ConstantDrop < ::Expressir::Liquid::DeclarationDrop
7
+ include ::Expressir::Liquid::IdentifierDrop
8
+
9
+ def initialize(model)
10
+ @model = model
11
+ initialize_identifier(@model)
12
+ super
13
+ end
14
+
15
+ def type
16
+ drop_klass_by_model(@model.type)
17
+ end
18
+
19
+ def expression
20
+ drop_klass_by_model(@model.expression)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Expressir
4
+ module Liquid
5
+ module Declarations
6
+ class EntityDrop < ::Expressir::Liquid::DeclarationDrop
7
+ include ::Expressir::Liquid::IdentifierDrop
8
+
9
+ def initialize(model)
10
+ @model = model
11
+ initialize_identifier(@model)
12
+ super
13
+ end
14
+
15
+ def abstract
16
+ @model.abstract
17
+ end
18
+
19
+ def supertype_expression
20
+ drop_klass_by_model(@model.supertype_expression)
21
+ end
22
+
23
+ def subtype_of
24
+ return [] unless @model.subtype_of
25
+
26
+ @model.subtype_of.map do |item|
27
+ drop_klass_by_model(item)
28
+ end
29
+ end
30
+
31
+ def attributes
32
+ return [] unless @model.attributes
33
+
34
+ @model.attributes.map do |item|
35
+ ::Expressir::Liquid::Declarations::AttributeDrop.new(item)
36
+ end
37
+ end
38
+
39
+ def unique_rules
40
+ return [] unless @model.unique_rules
41
+
42
+ @model.unique_rules.map do |item|
43
+ ::Expressir::Liquid::Declarations::UniqueRuleDrop.new(item)
44
+ end
45
+ end
46
+
47
+ def where_rules
48
+ return [] unless @model.where_rules
49
+
50
+ @model.where_rules.map do |item|
51
+ ::Expressir::Liquid::Declarations::WhereRuleDrop.new(item)
52
+ end
53
+ end
54
+
55
+ def informal_propositions
56
+ return [] unless @model.informal_propositions
57
+
58
+ @model.informal_propositions.map do |item|
59
+ ::Expressir::Liquid::Declarations::RemarkItemDrop.new(item)
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end