Sha256: b79a99a41ea9518057c0310345812f3b2345a1f9a2b6a8acafd34da02cef711a
Contents?: true
Size: 1.97 KB
Versions: 1
Compression:
Stored size: 1.97 KB
Contents
module ActsAsDailycred def acts_as_dailycred serialize :tags, Array serialize :referred, Array serialize :access_tokens, Hash serialize :identities, Hash extend ActsAsDailycred::SingletonMethods include ActsAsDailycred::InstanceMethods include Dailycred::Helpers end module SingletonMethods def find_or_create_with_omniauth(model) @user = User.find_by_provider_and_uid(model['provider'], model['uid']) || User.new @user.update_from_dailycred model[:info] @user end def find_or_create_from_local_auth(user) @user = User.find_or_create_by(provider: "dailycred", uid: user["id"]) @user.update_from_dailycred(user) @user end end module InstanceMethods def tag tag dc = get_client response = dc.tag self.uid, tag json = JSON.parse(response.body) if json['worked'] self.tags << tag save! end end def untag tag dc = get_client response = dc.untag self.uid, tag json = JSON.parse(response.body) if json['worked'] self.tags.delete tag save! end end #deprecated, use @user.display def display_name self.display end def referral_link url "https://www.dailycred.com/r/#{self.uid}?redirect_uri=#{url}" end def reset_password get_client.reset_password self.email end def update_from_dailycred dc bad = ['updated_at', 'created_at'] dc.each do |k,v| self.send("#{k}=", v) if self.respond_to?(k) and !bad.include?(k.to_s) end save! end def fire_event key, val="" get_client.event self.uid, key, val end def get_client @dailycred ||= Dailycred::Client.new Rails.configuration.DAILYCRED_CLIENT_ID, Rails.configuration.DAILYCRED_SECRET_KEY end def connect_path provider "/auth/dailycred?identity_provider=#{provider.to_s}" end end end require 'active_record' ActiveRecord::Base.extend ActsAsDailycred
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dailycred-0.3.1 | lib/dailycred/acts_as_dailycred.rb |