Skip to content

Instantly share code, notes, and snippets.

@zhuochun zhuochun/dci_alt.rb forked from elight/dci_alt.rb
Created Dec 23, 2013

Embed
What would you like to do?
class User < ActiveRecord::Base
# ... lots of persistence stuff
end
class GitHubUserProvisioner < SimpleDelegator
def provision_with!(user_info, extra_user_hash)
self.github_login = extra_user_hash['login']
self.name = user_info['name']
self.email = user_info['email']
self.github_url = user_info['urls']['GitHub']
self.blog_url = user_info['urls']['Blog']
self.gravatar_id = extra_user_hash['gravatar_id']
self.location = extra_user_hash['location']
save!
end
end
# And, say, in your SessionController in your controller action
class SessionController < ApplicationController
def create
user = User.new
provisioner = GitHubUserProvisioner.new(user)
provisioner.provision_with!(*yank_oauth_stuff_off_request)
end
private
def yank_oauth_stuff_off_request
# ...
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.