add dry_run button, fix an issue with rule.sub is treated as string and string '0' will be true