Em Ruby e em outras linguagens, costumamos fazer isso
def perform
perform_action
end
def perform_action
if should_perfom_action?
action.perform
end
end
def should_perform_action?
# conditions
end
Acho que é mais explícito e correto seguir esta prática:
def perform
perform_action if should_perform_action?
end
def perform_action
action.perform
end
def should_perform_action?
# conditions
end