Sha256: 22df6e97fc1b9f9a5edd8f0b8abc2d2efd7f1e53d4d66e39ed6888b9fc7527df

Contents?: true

Size: 1.36 KB

Versions: 2

Compression:

Stored size: 1.36 KB

Contents

module Twitter
  module Rails
    module Controller
      def self.included?(controller)
        #controller.helper_method :twitter_session, :logged_in_via_twitter?
      end

      protected
      def twitter_session
        @twitter_session
      end

      def create_twitter_session
        request_access_token if request_token_available?

        if access_token_available?
          twitter_oauth.authorize_from_access(session['twitter_atoken'], session['twitter_asecret'])
          @twitter_session = Twitter::Base.new(twitter_oauth)
        end
      end

      def logged_in_via_twitter?
        !!twitter_session
      end

      def request_access_token
        oauth = self.twitter_oauth
        oauth.authorize_from_request(session['twitter_rtoken'], session['twitter_rsecret'])

        session['twitter_rtoken'] = nil
        session['twitter_rsecret'] = nil
        session['twitter_atoken'] = oauth.access_token.token
        session['twitter_asecret'] = oauth.access_token.secret
      end

      def request_token_available?
        session['twitter_rtoken'] && session['twitter_rsecret']
      end

      def access_token_available?
        session['twitter_atoken'] && session['twitter_asecret']
      end

      def twitter_oauth
        @twitter_oauth ||= Twitter::OAuth.new(ENV['TWITTER_CONSUMER_TOKEN'], ENV['TWITTER_CONSUMER_SECRET'])
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
szimek-twitter-0.6.4 lib/twitter/rails/controller.rb
szimek-twitter-0.6.5 lib/twitter/rails/controller.rb