method
cattr_reader
cattr_reader(*syms)
public
Defines a class attribute if it’s not defined and creates a reader method that returns the attribute value.
class Person cattr_reader :hair_colors end Person.class_variable_set("@@hair_colors", [:brown, :black]) Person.hair_colors # => [:brown, :black] Person.new.hair_colors # => [:brown, :black]
The attribute name must be a valid method name in Ruby.
class Person cattr_reader :"1_Badname " end # => NameError: invalid attribute name
If you want to opt out the instance reader method, you can pass :instance_reader => false or :instance_accessor => false.
class Person cattr_reader :hair_colors, :instance_reader => false end Person.new.hair_colors # => NoMethodError
Register or
log in
to add new notes.
zvoase -
January 27, 2009 - (v2.1.0 - v2.2.1)
jackson_pires -
February 2, 2013
2 thanks
Description
Similar to Ruby’s built-in attr_reader, only it creates a class attribute reader method (as opposed to an instance attribute reader method).
0 thanks
Other Example
##
class Exam cattr_reader :code, :description, :points, :instance_reader => false @@code = "EXM" @@description = "Sent Exam" @@points = 1000 end
In this case it’s possible to use
Exam.code # => EXM Exam.description # => Sent Exam Exam.points # => 1000


