fix props ruleName and ruleParams. optimize BaseRule
add tests for main use. rule extends, register