Sha256: 3b37e9541f5151ede94e194782c623f229c963401bae405731e3711bf4962908

Contents?: true

Size: 1.83 KB

Versions: 6

Compression:

Stored size: 1.83 KB

Contents

module TicketMaster::Provider
  # This is the Github Provider for ticketmaster
  module Github
    include TicketMaster::Provider::Base

    class << self
      attr_accessor :login, :api, :user_token, :valid_user
    end
    
    # This is for cases when you want to instantiate using TicketMaster::Provider::Github.new(auth)
    def self.new(auth = {})
      TicketMaster.new(:github, auth)
    end
    
    # declare needed overloaded methods here
    def authorize(auth = {})
      @authentication ||= TicketMaster::Authenticator.new(auth)
      auth = @authentication
      login = auth.login || auth.username
      if auth.login.blank? and auth.username.blank?
        raise TicketMaster::Exception.new('Please provide at least a username')
      elsif auth.token
        TicketMaster::Provider::Github.login = login
        TicketMaster::Provider::Github.user_token = auth.token
        TicketMaster::Provider::Github.api = Octokit::Client.new(:login => login, :token => auth.token)
      elsif auth.password
        TicketMaster::Provider::Github.login = login
        TicketMaster::Provider::Github.user_token = auth.token
        TicketMaster::Provider::Github.api = Octokit::Client.new(:login => login, :password => auth.password)
      else 
        TicketMaster::Provider::Github.login = login
        TicketMaster::Provider::Github.user_token = nil
        TicketMaster::Provider::Github.api = Octokit::Client.new(:login => login)
      end
    end

    def valid?
      begin
        TicketMaster::Provider::Github.valid_user = TicketMaster::Provider::Github.api.user.total_private_repos >= 0
      rescue
        false
      end
    end

    def projects(*options)
      Project.find(options)
    end

    def project(*project)
      unless project.empty?
        Project.find_by_id(project.first)
      else
        super
      end
    end

  end
end


Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ticketmaster-github-0.9.0 lib/provider/github.rb
ticketmaster-github-0.8.1 lib/provider/github.rb
ticketmaster-github-0.8.0 lib/provider/github.rb
ticketmaster-github-0.7.1 lib/provider/github.rb
ticketmaster-github-0.7.0 lib/provider/github.rb
ticketmaster-github-0.6.10 lib/provider/github.rb