Skip to content

Instantly share code, notes, and snippets.

@kwstannard
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kwstannard/dcc4fbcf7c745f5e73b2 to your computer and use it in GitHub Desktop.
Save kwstannard/dcc4fbcf7c745f5e73b2 to your computer and use it in GitHub Desktop.
class OnCodeCaller
def self.call(code, needer)
if needer.respond_to?("on_#{code}")
needer.send("on_#{code}")
elsif needer.respond_to?("on_#{code / 100}XX")
needer.send("on_#{code / 100}XX")
else
needer.on_failure
end
end
end
class Foo
def bar(code)
CodeCaller.call(code, self)
end
def on_422
raise 'specific error called if defined'
end
def on_4XX
raise 'generic server error if no specific error code defined'
end
def on_failure
{}
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment