Module: Uinit::Structure::AttributeContext

Includes:
Memoizable, Type::Context
Included in:
AttributeScope
Defined in:
lib/uinit/structure/attribute_context.rb

Instance Method Summary collapse

Instance Method Details

#abstractObject



28
29
30
# File 'lib/uinit/structure/attribute_context.rb', line 28

def abstract(...)
  push_attribute(build_attribute_builder.abstract(...))
end

#attrObject



24
25
26
# File 'lib/uinit/structure/attribute_context.rb', line 24

def attr(...)
  push_attribute(build_attribute_builder.attr(...))
end

#defaults(**defaults) ⇒ Object



11
12
13
# File 'lib/uinit/structure/attribute_context.rb', line 11

def defaults(**defaults)
  self.attribute_defaults = defaults
end

#private(att_or_get_set = nil) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/uinit/structure/attribute_context.rb', line 15

def private(att_or_get_set = nil, *)
  return att_or_getset.private(:get, :set) if att_or_get_set.is_a?(AttributeBuilder)

  builder = build_attribute_builder.private(*[att_or_get_set, *].compact)
  attributes << builder.attribute

  builder
end

#using(attribute_builder) ⇒ Object



32
33
34
# File 'lib/uinit/structure/attribute_context.rb', line 32

def using(attribute_builder)
  push_attribute(build_attribute_builder(attribute_builder.attribute))
end