I've made a block with harvest level 4 and a pickaxe with harvest level 3, and the pickaxe can break the block.
A diamond pickaxe is level 3 and cannot break the block so I must have something wrong with my pickaxe.
tool material
public static EnumToolMaterial toolRuby = EnumHelper.addToolMaterial("msRUBY", 3, 1500, 9.0F, 4, 15);
tool
rubyPickaxe = new ItemRubyPickaxe(8203, toolRuby).setUnlocalizedName("rubyPickaxe");