Module: Strelka::MethodUtilities

Overview

A collection of methods for declaring other methods.

class MyClass
  extend Strelka::MethodUtilities

  singleton_attr_accessor :types
  singleton_method_alias :kinds, :types
end

MyClass.types = [ :pheno, :proto, :stereo ]
MyClass.kinds # => [:pheno, :proto, :stereo]

Instance Method Summary collapse

Instance Method Details

#attr_predicate(attrname) ⇒ Object

Create a reader in the form of a predicate for the given attrname.



332
333
334
335
336
337
# File 'lib/strelka/mixins.rb', line 332

def attr_predicate( attrname )
	attrname = attrname.to_s.chomp( '?' )
	define_method( "#{attrname}?" ) do
		instance_variable_get( "@#{attrname}" ) ? true : false
	end
end

#attr_predicate_accessor(attrname) ⇒ Object

Create a reader in the form of a predicate for the given attrname as well as a regular writer method.



342
343
344
345
346
# File 'lib/strelka/mixins.rb', line 342

def attr_predicate_accessor( attrname )
	attrname = attrname.to_s.chomp( '?' )
	attr_writer( attrname )
	attr_predicate( attrname )
end

#singleton_attr_accessor(*symbols) ⇒ Object

Creates readers and writers that allow assignment to the attributes of the singleton of the declaring object that correspond to the specified symbols.



309
310
311
312
313
# File 'lib/strelka/mixins.rb', line 309

def singleton_attr_accessor( *symbols )
	symbols.each do |sym|
		singleton_class.__send__( :attr_accessor, sym )
	end
end

#singleton_attr_reader(*symbols) ⇒ Object

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).



281
282
283
284
285
# File 'lib/strelka/mixins.rb', line 281

def singleton_attr_reader( *symbols )
	singleton_class.instance_exec( symbols ) do |attrs|
		attr_reader( *attrs )
	end
end

#singleton_attr_writer(*symbols) ⇒ Object

Creates methods that allow assignment to the attributes of the singleton of the declaring object that correspond to the specified symbols.



299
300
301
302
303
# File 'lib/strelka/mixins.rb', line 299

def singleton_attr_writer( *symbols )
	singleton_class.instance_exec( symbols ) do |attrs|
		attr_writer( *attrs )
	end
end

#singleton_method_alias(newname, original) ⇒ Object

Creates an alias for the original method named newname.



326
327
328
# File 'lib/strelka/mixins.rb', line 326

def singleton_method_alias( newname, original )
	singleton_class.__send__( :alias_method, newname, original )
end

#singleton_predicate_accessor(*symbols) ⇒ Object

Create predicate methods and writers that allow assignment to the attributes of the singleton of the declaring object that correspond to the specified symbols.



319
320
321
322
# File 'lib/strelka/mixins.rb', line 319

def singleton_predicate_accessor( *symbols )
	singleton_class.extend( Strelka::MethodUtilities )
	singleton_class.attr_predicate_accessor( *symbols )
end

#singleton_predicate_reader(*symbols) ⇒ Object

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.



291
292
293
294
# File 'lib/strelka/mixins.rb', line 291

def singleton_predicate_reader( *symbols )
	singleton_class.extend( Strelka::MethodUtilities )
	singleton_class.attr_predicate( *symbols )
end