Skip to content

Instantly share code, notes, and snippets.

@paranormal
Created July 23, 2013 11:10
Show Gist options
  • Save paranormal/6061607 to your computer and use it in GitHub Desktop.
Save paranormal/6061607 to your computer and use it in GitHub Desktop.
UltiSnip rspec snippets
extends ruby
###########################################################################
# Code Examples #
###########################################################################
global !p
def i_p(match):
if match == 'it':
return 'should '
elif match == 'pending':
return ''
def share_group(match, target):
if match == 'share_as' and target == 1:
return ':'
elif match == 'share_as' and target == 2:
return 'Module'
elif match == 'share_as' and target == 3:
return ''
elif match == 'shared_examples_for' and (target == 1 or target == 3):
return '\''
elif match == 'shared_examples_for' and target == 2:
return 'Class1 Class2'
endglobal
snippet "(describe|context)" "describe|context ... do ... end" br
`!p snip.rv=match.group(1)` ${1:ExampleGroup}${2:, '${3:optional string}'} do
${0:# TODO}
end
endsnippet
snippet "(share_as|shared_examples_for)" "share_as|shared_examples_for ... do ... end" br
`!p snip.rv=match.group(1)` `!p snip.rv=share_group(match.group(1), 1)`${1:`!p snip.rv=share_group(match.group(1), 2)`}`!p snip.rv=share_group(match.group(1), 3)` do
${0:# TODO}
end
endsnippet
snippet it_should_behave_like
it_should_behave_like '${0:Class1 Class2}'
endsnippet
snippet "(let|after|before)" "method(:symbol) do ... end" br
`!p snip.rv=match.group(1)`(:${1:each}) do
${0:# TODO}
end
endsnippet
snippet subject "subject block&"
subject { ${0:# TODO} }
endsnippet
snippet "(it|specify|pending)" "method 'string'[ do ... end]" br
`!p snip.rv=match.group(1)` '`!p snip.rv=i_p(match.group(1))`${1:}'${2: do
${3:# TODO}
end}
endsnippet
snippet "((it|specify|pending) '.*' do)" "method 'string' do ... end" !br
`!p snip.rv=match.group(1)`
${0:# TODO}
end
endsnippet
##########################################################################
# Expectations #
###########################################################################
snippet ".(should|should_not)" "should[_not] ..." r
.`!p snip.rv=match.group(1)` ${0:# TODO}
endsnippet
###########################################################################
# matchers #
###########################################################################
snippet "\.(should_receive|should_respond|and_return|with)" ".mock_method(:symbol)" r
.`!p snip.rv=match.group(1)`(${0::symbol})
endsnippet
snippet "(include|respond_to|match)" "matcher(:expect)" r
`!p snip.rv=match.group(1)`(${0:expection})
endsnippet
snippet "(raise_error)" "raise_error" r
`!p snip.rv=match.group(1)`${1:(${2:Exception|/reason/}${3:, /${4:reason}/})}
endsnippet
snippet "\b(be|have|has)" "(be|have|has)_...[(expection[, expection])]" ri
`!p snip.rv=match.group(1)`_${1:?}${2:(${3:expectation}${4:, ${5:expectation}})${6:.${7:method}${8:(${9:expectation})}}}
endsnippet
snippet "(change)" "change &block" r
`!p snip.rv=match.group(1)` {${1:another object}}.${2:by|to|from}(${3:expectation})${4:.to}.${5:expectation}
endsnippet
snippet throw_symbol "throw_symbol(:symbol, bool)"
throw_symbol(:${1:symbol}, ${0:bool})
endsnippet
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment