Class: Ruby::Rego::AST::Rule
- Inherits:
-
Base
- Object
- Base
- Ruby::Rego::AST::Rule
show all
- Defined in:
- lib/ruby/rego/ast/rule.rb
Overview
Represents a rule definition.
Defined Under Namespace
Classes: Definition
Constant Summary
collapse
- RULE_TYPE_LOOKUP =
%i[rule_type type kind].freeze
Instance Attribute Summary collapse
Attributes inherited from Base
#location
Instance Method Summary
collapse
Methods inherited from Base
#==, #accept, #deconstruct_keys, #eql?, format_value, #hash, #to_s
Constructor Details
#initialize(name:, head: nil, body: nil, default_value: nil, else_clause: nil, location: nil) ⇒ Rule
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/ruby/rego/ast/rule.rb', line 22
def initialize(name:, head: nil, body: nil, default_value: nil, else_clause: nil, location: nil) super(location: location)
@name = name
@definition = Definition.new(
head: head,
body: body,
default_value: default_value,
else_clause: else_clause
)
end
|
Instance Attribute Details
#name ⇒ String
34
35
36
|
# File 'lib/ruby/rego/ast/rule.rb', line 34
def name
@name
end
|
Instance Method Details
#body ⇒ Object?
42
43
44
|
# File 'lib/ruby/rego/ast/rule.rb', line 42
def body
definition.body
end
|
#complete? ⇒ Boolean
57
58
59
|
# File 'lib/ruby/rego/ast/rule.rb', line 57
def complete?
rule_type == :complete
end
|
#default_value ⇒ Object?
47
48
49
|
# File 'lib/ruby/rego/ast/rule.rb', line 47
def default_value
definition.default_value
end
|
#else_clause ⇒ Object?
52
53
54
|
# File 'lib/ruby/rego/ast/rule.rb', line 52
def else_clause
definition.else_clause
end
|
#function? ⇒ Boolean
72
73
74
|
# File 'lib/ruby/rego/ast/rule.rb', line 72
def function?
rule_type == :function
end
|
#head ⇒ Object?
37
38
39
|
# File 'lib/ruby/rego/ast/rule.rb', line 37
def head
definition.head
end
|
#partial_object? ⇒ Boolean
67
68
69
|
# File 'lib/ruby/rego/ast/rule.rb', line 67
def partial_object?
rule_type == :partial_object
end
|
#partial_set? ⇒ Boolean
62
63
64
|
# File 'lib/ruby/rego/ast/rule.rb', line 62
def partial_set?
rule_type == :partial_set
end
|