Class: Memorium::InitializeAttr

Inherits:
Object
  • Object
show all
Defined in:
lib/memorium/initialize_attr.rb

Defined Under Namespace

Classes: Interaction, Template

Constant Summary collapse

ACCESSOR =
'@__initialize_attributes'.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass, attr_name, reader: nil, writer: nil, required: nil, initialized: false) ⇒ InitializeAttr

Returns a new instance of InitializeAttr.



6
7
8
9
10
11
12
13
14
# File 'lib/memorium/initialize_attr.rb', line 6

def initialize(klass, attr_name, reader: nil, writer: nil, required: nil, initialized: false)
  @klass = klass
  @attr_name = attr_name
  @reader_level = reader || Memorium::AccessLevel::PUBLIC
  @writer_level = writer || Memorium::AccessLevel::PUBLIC
  @required = required

  @initialized = initialized
end

Instance Attribute Details

#attr_nameObject (readonly)

Returns the value of attribute attr_name.



4
5
6
# File 'lib/memorium/initialize_attr.rb', line 4

def attr_name
  @attr_name
end

#initializedObject (readonly)

Returns the value of attribute initialized.



4
5
6
# File 'lib/memorium/initialize_attr.rb', line 4

def initialized
  @initialized
end

#klassObject (readonly)

Returns the value of attribute klass.



4
5
6
# File 'lib/memorium/initialize_attr.rb', line 4

def klass
  @klass
end

#reader_levelObject (readonly)

Returns the value of attribute reader_level.



4
5
6
# File 'lib/memorium/initialize_attr.rb', line 4

def reader_level
  @reader_level
end

#requiredObject (readonly)

Returns the value of attribute required.



4
5
6
# File 'lib/memorium/initialize_attr.rb', line 4

def required
  @required
end

#writer_levelObject (readonly)

Returns the value of attribute writer_level.



4
5
6
# File 'lib/memorium/initialize_attr.rb', line 4

def writer_level
  @writer_level
end

Instance Method Details

#defineObject



16
17
18
19
20
21
# File 'lib/memorium/initialize_attr.rb', line 16

def define
  create_methods

  apply_reader_access_level
  apply_writer_access_level
end