def before_feature_element(cuke_feature_element)
      if cuke_feature_element.is_a?(Cucumber::Core::Ast::Scenario)
        before_scenario(cuke_feature_element)
      elsif cuke_feature_element.is_a?(Cucumber::Core::Ast::ScenarioOutline)
        before_scenario_outline(cuke_feature_element)
      else
        raise("unsupported feature element `#{cuke_feature_element.class.name}`")
      end
    end
def before_feature_element(cuke_feature_element)
      if cuke_feature_element.is_a?(Cucumber::Core::Ast::Scenario)
        before_scenario(cuke_feature_element)
      elsif cuke_feature_element.is_a?(Cucumber::Core::Ast::ScenarioOutline)
        before_scenario_outline(cuke_feature_element)
      else
        raise("unsupported feature element `#{cuke_feature_element.class.name}`")
      end
    end
this method gets called before a scenario or scenario outline
 we dispatch to our own more specific methods