The dirty way: In step 'if there are contract jobs'
@jobs = false
@jobs = true If contract_jobs
Then in your following steps, say 'it should have a hourly rate'
if @jobs
<your other assertions>
else
true
end
Just setting true in a step definition makes the step pass (in fact any non-assertive statement will work). Though I wouldn't recommend building up a scenario like this (Arguably, Scenarios with conditionals are not useful / cucumber style). Personally, I would split it into 2 - a positive scenario:
Given I login as "<user>"
Then there are contract jobs
And the job has an hourly rate
And the job has a daily rate in "USD" with "2" decimal places
and a negative scenario
Given I login as "<user>" (a profile for which you know there won't be contract jobs)
Then there are no contract jobs