Class: MoveToGo::CanBecomeImmutable

Inherits:
Object
  • Object
show all
Defined in:
lib/move-to-go/can_become_immutable.rb

Direct Known Subclasses

Coworker, Deal, History, Meeting, Organization, Person, Todo

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.immutable_accessor(name) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/move-to-go/can_become_immutable.rb', line 4

def self.immutable_accessor(name)
    define_method(name) do
        return instance_variable_get("@#{name}")
    end
    
    define_method("#{name}=") do |value|
        raise_if_immutable
        instance_variable_set("@#{name}", value)
    end
end

Instance Method Details

#is_immutableObject



25
26
27
# File 'lib/move-to-go/can_become_immutable.rb', line 25

def is_immutable()
    @is_immutable
end

#raise_if_immutableObject



15
16
17
18
19
# File 'lib/move-to-go/can_become_immutable.rb', line 15

def raise_if_immutable
    if @is_immutable
        raise ObjectIsImmutableError
    end
end

#set_is_immutableObject



21
22
23
# File 'lib/move-to-go/can_become_immutable.rb', line 21

def set_is_immutable()
    @is_immutable = true
end