module Aquarium::Aspects::DefaultObjectsHandler

Some classes support a :default_objects option and use it if no type or object is specified. In other words, the :default_objects option is ignored if :types or :objects is present. This module handles this behavior for all the classes that include it. These classes are assumed to have @specification defined with keys :default_objects, :types, and :objects.

Public Instance Methods

default_objects_given() click to toggle source
   # File lib/aquarium/aspects/default_objects_handler.rb
15 def default_objects_given
16   if @default_objects.nil?
17     ary1 = make_array(@specification[:default_objects])
18     ary2 = make_array(@specification[:default_object])
19     @default_objects = ary1 + ary2
20   end
21   @default_objects
22 end
default_objects_given?() click to toggle source
   # File lib/aquarium/aspects/default_objects_handler.rb
24 def default_objects_given?
25   not default_objects_given.empty?
26 end
use_default_objects_if_defined() click to toggle source
   # File lib/aquarium/aspects/default_objects_handler.rb
28 def use_default_objects_if_defined
29   return unless default_objects_given?
30   default_objects_given.each do |object|
31     if (object.kind_of?(Class) || object.kind_of?(Module))
32       @specification[:types] ||= []
33       @specification[:types] << object
34     else
35       @specification[:objects] ||= []
36       @specification[:objects] << object
37     end
38   end
39 end