Skip to content

Instantly share code, notes, and snippets.

@pmn4
Created February 19, 2015 17:01
Show Gist options
  • Save pmn4/189aa7558aec17989c00 to your computer and use it in GitHub Desktop.
Save pmn4/189aa7558aec17989c00 to your computer and use it in GitHub Desktop.
Ruby/Sinatra Refactor for Code Climate
# Original Code
class App < Sinatra::Base
get '/users' do
User.all.to_json
end
post '/users' do
User.create!(params)
204
end
get '/users/:id' do |id|
User.find(id).to_json
end
# etc
end
# Intermediate Code
module UserRoutes
def self.registered(app) # <-- a method yes, but really a hook
app.get '/users' do
User.all.to_json
end
app.post '/users' do
User.create!(params)
204
end
app.get '/users/:id' do |id|
User.find(id).to_json
end
# etc
end
end
class App < Sinatra::Base
register UserRoutes
end
# Desired Code
# Intermediate Code
module UserRoutes
def self.registered(app) # <-- a method yes, but really a hook
app.namespace '/users' do
app.get do
User.all.to_json
end
app.post do
User.create!(params)
204
end
app.get '/:id' do |id|
User.find(id).to_json
end
# etc
end
end
class App < Sinatra::Base
register UserRoutes
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment