A collection of methods for declaring other methods.
class MyClass extend Arborist::MethodUtilities singleton_attr_accessor :types singleton_method_alias :kinds, :types end MyClass.types = [ :pheno, :proto, :stereo ] MyClass.kinds # => [:pheno, :proto, :stereo]
Create a reader in the form of a predicate for the given
attrname
.
# File lib/arborist/mixins.rb, line 72
def attr_predicate( attrname )
attrname = attrname.to_s.chomp( '?' )
define_method( "#{attrname}?" ) do
instance_variable_get( "@#{attrname}" ) ? true : false
end
end
Create a reader in the form of a predicate for the given
attrname
as well as a regular writer method.
# File lib/arborist/mixins.rb, line 82
def attr_predicate_accessor( attrname )
attrname = attrname.to_s.chomp( '?' )
attr_writer( attrname )
attr_predicate( attrname )
end
Create an method that is both a reader and a writer for an instance variable. If called with a (non-nil) argument, it will set the variable to the new value. It returns whatever the instance variable is set to.
# File lib/arborist/mixins.rb, line 92
def dsl_accessor( attrname )
define_method( attrname ) do |arg=nil|
instance_variable_set( "@#{attrname}", arg ) unless arg.nil?
return instance_variable_get( "@#{attrname}" )
end
end
Creates readers and writers that allow assignment to the attributes of the
singleton of the declaring object that correspond to the specified
symbols
.
# File lib/arborist/mixins.rb, line 51
def singleton_attr_accessor( *symbols )
symbols.each do |sym|
singleton_class.__send__( :attr_accessor, sym )
end
end
Creates instance variables and corresponding methods that return their
values for each of the specified symbols
in the singleton of
the declaring object (e.g., class instance variables and methods if
declared in a Class).
# File lib/arborist/mixins.rb, line 26
def singleton_attr_reader( *symbols )
singleton_class.instance_exec( symbols ) do |attrs|
attr_reader( *attrs )
end
end
Creates methods that allow assignment to the attributes of the singleton of
the declaring object that correspond to the specified symbols
.
# File lib/arborist/mixins.rb, line 42
def singleton_attr_writer( *symbols )
singleton_class.instance_exec( symbols ) do |attrs|
attr_writer( *attrs )
end
end
Creates an alias for the original
method named
newname
.
# File lib/arborist/mixins.rb, line 66
def singleton_method_alias( newname, original )
singleton_class.__send__( :alias_method, newname, original )
end
Create predicate methods and writers that allow assignment to the
attributes of the singleton of the declaring object that correspond to the
specified symbols
.
# File lib/arborist/mixins.rb, line 60
def singleton_predicate_accessor( *symbols )
singleton_class.extend( Arborist::MethodUtilities )
singleton_class.attr_predicate_accessor( *symbols )
end
Create instance variables and corresponding methods that return true or
false values for each of the specified symbols
in the
singleton of the declaring object.
# File lib/arborist/mixins.rb, line 35
def singleton_predicate_reader( *symbols )
singleton_class.extend( Arborist::MethodUtilities )
singleton_class.attr_predicate( *symbols )
end