Module: Accessor
Overview
The Accessor library is for giving your setters, getters, and accessors a more suggary syntax:
class Person
accessor :name, :email
writer :password
reader :encrypted_password
def encrypt_password!
@encrypted_password = Base64::strict_encode64(@password)
end
end
contact = Person.new
contact.name "Kurtis Rainbolt-Greene"
contact.email "[email protected]"
contact.email
# => "[email protected]"
contact.password "ilovehorsesthateatglue"
contact.password
# => 0 for 1 arguments
contact.encrypted_password "Test!"
# => 1 for 0 arguments
contact.encrypt_password!
contact.encrypted_password
# => "MTIzNDEyMzQ="
contact.name("James Earl Jones").email("[email protected]")
# => #<Person:0x3E034 @name="James Earl Jones" @email="[email protected]">
Constant Summary collapse
- VERSION =
"1.0.2"
Instance Method Summary collapse
-
#accessor(*names) ⇒ Object
The
accessormethod is a metamethod, and it takes anArrayofSymbols. -
#accessor!(*names) ⇒ Object
The
accessor!method is a metamethod, and it takes the same arguments asaccessor. -
#reader(*names) ⇒ Object
The
readermethod is a metamethod, and it takes anArrayofSymbols. -
#reader!(*names) ⇒ Object
The
reader!method is a metamethod, and it takes the same arguments asreader. -
#writer(*names) ⇒ Object
The
writermethod is a metamethod, and it takes anArrayofSymbols. -
#writer!(*names) ⇒ Object
The
writer!method is a metamethod, and it takes the same arguments aswriter.
Instance Method Details
#accessor(*names) ⇒ Object
The accessor method is a metamethod, and it takes an Array of Symbols.
It goes over each Symbol and calls the attribute method with the
Symbol as an argument, creating both a getter and setter method.
72 73 74 |
# File 'lib/accessor.rb', line 72 def accessor(*names) names.each { |name| attribute name } end |
#accessor!(*names) ⇒ Object
The accessor! method is a metamethod, and it takes the same arguments as accessor.
The difference between the two are that accessor! is used to define setter/getter methods
for the class of an instance object.
79 80 81 82 83 |
# File 'lib/accessor.rb', line 79 def accessor!(*names) raise ArgumentError unless names.any? self.class.accessor(*names) self end |
#reader(*names) ⇒ Object
The reader method is a metamethod, and it takes an Array of Symbols.
It goes over each Symbol and calls the attribute method with the
Symbol as an argument, creating a getter method.
38 39 40 |
# File 'lib/accessor.rb', line 38 def reader(*names) names.each { |name| attribute name, :reader } end |
#reader!(*names) ⇒ Object
The reader! method is a metamethod, and it takes the same arguments as reader.
The difference between the two are that reader! is used to define getter methods
for the class of an instance object.
45 46 47 48 49 |
# File 'lib/accessor.rb', line 45 def reader!(*names) raise ArgumentError unless names.any? self.class.reader(*names) self end |
#writer(*names) ⇒ Object
The writer method is a metamethod, and it takes an Array of Symbols.
It goes over each Symbol and calls the attribute method with the
Symbol as an argument, creating a setter method.
55 56 57 |
# File 'lib/accessor.rb', line 55 def writer(*names) names.each { |name| attribute name, :writer } end |
#writer!(*names) ⇒ Object
The writer! method is a metamethod, and it takes the same arguments as writer.
The difference between the two are that writer! is used to define setter methods
for the class of an instance object.
62 63 64 65 66 |
# File 'lib/accessor.rb', line 62 def writer!(*names) raise ArgumentError unless names.any? self.class.writer(*names) self end |