Class: Literal::Attributable::Generators::DataInitializer

Inherits:
StructInitializer show all
Defined in:
lib/literal/attributable/generators/data_initializer.rb

Instance Attribute Summary

Attributes included from Nodes

#nodes

Instance Method Summary collapse

Methods inherited from StructInitializer

#init_attributes_ivar

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)



21
22
23
24
25
26
27
28
29
# File 'lib/literal/attributable/generators/data_initializer.rb', line 21

def assign_value(attribute)
	Assignment.new(
		left: Access.new(
			collection: Ref.new("@attributes"),
			key: Symbol.new(attribute.name)
		),
		right: Ref.new("#{attribute.escaped}.frozen? ? #{attribute.escaped} : #{attribute.escaped}.freeze")
	)
end

#bodyObject (private)



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

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

#freeze_objectObject (private)



17
18
19
# File 'lib/literal/attributable/generators/data_initializer.rb', line 17

def freeze_object
	Ref.new("freeze")
end