" as ionic bonds only occur between a metal and a non-metal, a covalent is between gas and gas, metalic bond between metal and metal.... unless there are exceptions that I don't know about!"
What about the ionic bonding in ammonium sulphate, where the cation has no metal. Or ammonium dichromate, where the anion has a metal but the cation does not?
Covalent bonding does not occur exlusively between gases: carbon disulphide is covalent, for example. Nor is it limited to non-metals, although with metals the bonding is usually termed 'dative covalent' or somesuch e.g. MnO4-
Ionic and covalent bonding are extreme types of bonding, and most bonding is a blend of the two types.