6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/jade/ast/nodes.rb', line 6
def define(name, *fields)
Data.define(
*fields,
:range,
:symbol,
:id,
:leading_comments,
:trailing_comments,
:dangling_comments,
:trailing_comma,
:dictionaries
) {
include Node
define_method(:initialize) do |**kwargs|
kwargs[:symbol] ||= nil
kwargs[:id] ||= Node.next_id
kwargs[:leading_comments] ||= []
kwargs[:trailing_comments] ||= []
kwargs[:dangling_comments] ||= []
kwargs[:trailing_comma] ||= false
kwargs[:dictionaries] ||= []
super(**kwargs)
end
}
.then { const_set(name, it) }
end
|