def add_siblings(*args)
      options = args.extract_options!
      case options[:half]
      when :father
        check_incompatible_relationship(:paternal_half_sibling, *args)
      when :mother
        check_incompatible_relationship(:maternal_half_sibling, *args)
      when nil
        check_incompatible_relationship(:sibling, *args)
      end

      transaction do
        args.inject(true) do |res,sib|
          res &= case options[:half]
          when :father
            raise LineageGapException, "Can't add paternal halfsiblings without a father" unless father
            sib.add_mother(options[:spouse]) if options[:spouse]
            sib.add_father(father)
          when :mother
            raise LineageGapException, "Can't add maternal halfsiblings without a mother" unless mother
            sib.add_father(options[:spouse]) if options[:spouse]
            sib.add_mother(mother)
          when nil
            raise LineageGapException, "Can't add siblings without parents" unless father and mother
            sib.add_father(father)
            sib.add_mother(mother)
          else
            raise ArgumentError, "Admitted values for :half options are: :father, :mother or nil"
          end
        end
      end
    end
def add_siblings(*args)
      options = args.extract_options!
      case options[:half]
      when :father
        check_incompatible_relationship(:paternal_half_sibling, *args)
      when :mother
        check_incompatible_relationship(:maternal_half_sibling, *args)
      when nil
        check_incompatible_relationship(:sibling, *args)
      end

      transaction do
        args.inject(true) do |res,sib|
          res &= case options[:half]
          when :father
            raise LineageGapException, "Can't add paternal halfsiblings without a father" unless father
            sib.add_mother(options[:spouse]) if options[:spouse]
            sib.add_father(father)
          when :mother
            raise LineageGapException, "Can't add maternal halfsiblings without a mother" unless mother
            sib.add_father(options[:spouse]) if options[:spouse]
            sib.add_mother(mother)
          when nil
            raise LineageGapException, "Can't add siblings without parents" unless father and mother
            sib.add_father(father)
            sib.add_mother(mother)
          else
            raise ArgumentError, "Admitted values for :half options are: :father, :mother or nil"
          end
        end
      end
    end
add siblings by assigning same parents to individuals passed as arguments
 @overload add_siblings(*siblings,options={})
   @param [Object] siblings list of siblings
   @param [Hash] options
   @option options [Symbol] half :father for paternal half siblings and :mother for maternal half siblings
   @option options [Object] spouse if specified, passed individual will be used as mother in case of half sibling
 @return [Boolean]