Class: Literal::Attributable::Generators::StructInitializer

Inherits:
Initializer
  • Object
show all
Defined in:
lib/literal/attributable/generators/struct_initializer.rb

Direct Known Subclasses

DataInitializer

Instance Attribute Summary

Attributes included from Nodes

#nodes

Instance Method Summary collapse

Methods inherited from Initializer

#assign_default, #assign_schema, #check_type, #coerce_attribute, #escape_keyword, #handle_attributes, #initialize, #initializer_callback, #params, #template

Methods inherited from Base

#call

Methods included from Nodes

node

Constructor Details

This class inherits a constructor from Literal::Attributable::Generators::Initializer

Instance Method Details

#assign_value(attribute) ⇒ Object (private)



23
24
25
26
27
28
29
30
31
# File 'lib/literal/attributable/generators/struct_initializer.rb', line 23

def assign_value(attribute)
	Assignment.new(
		left: Access.new(
			collection: Ref.new("@attributes"),
			key: Symbol.new(attribute.name)
		),
		right: Ref.new(attribute.escaped)
	)
end

#bodyObject (private)



7
8
9
10
11
12
13
14
# File 'lib/literal/attributable/generators/struct_initializer.rb', line 7

def body
	[
		assign_schema,
		init_attributes_ivar,
		handle_attributes,
		initializer_callback
	]
end

#init_attributes_ivarObject (private)



16
17
18
19
20
21
# File 'lib/literal/attributable/generators/struct_initializer.rb', line 16

def init_attributes_ivar
	Assignment.new(
		left: Ref.new("@attributes"),
		right: Ref.new("{}")
	)
end