Sha256: 8ed6163f724063e8b07e9e66823988a638ad2f7da5f135615d132e2b242ab3e3

Contents?: true

Size: 1.45 KB

Versions: 290

Compression:

Stored size: 1.45 KB

Contents

require 'travis/client'

module Travis
  module Client
    class User < Entity
      # @!parse attr_reader :login, :name, :email, :gravatar_id, :locale, :is_syncing, :synced_at, :correct_scopes
      attributes :login, :name, :email, :gravatar_id, :locale, :is_syncing, :synced_at, :correct_scopes, :channels
      inspect_info :login

      one  :user
      many :users

      def synced_at=(time)
        set_attribute(:synced_at, time(time))
      end

      def sync
        session.post_raw('/users/sync')
        reload
      end

      def channels
        load_attribute(:is_syncing) # dummy to trigger load, as channels might not be included
        attributes['channels'] ||= ['common']
      end

      def permissions
        attributes['permissions'] ||= begin
          repos = session.get('/users/permissions')
          repos.each_value { |r| r.compact! }
          repos
        end
      end

      def repositories
        permissions['permissions']
      end

      def push_access
        permissions['push']
      end

      def pull_access
        permissions['pull']
      end

      def admin_access
        permissions['admin']
      end

      def push_access?(repo)
        push_access.include? repo
      end

      def pull_access?(repo)
        pull_access.include? repo
      end

      def admin_access?(repo)
        admin_access.include? repo
      end

      alias syncing? is_syncing
      alias correct_scopes? correct_scopes
    end
  end
end

Version data entries

290 entries across 290 versions & 3 rubygems

Version Path
travis-1.8.12.travis.1101.9 lib/travis/client/user.rb
travis-1.8.11 lib/travis/client/user.rb
travis-1.8.11.travis.1098.9 lib/travis/client/user.rb
travis-1.8.11.travis.1081.9 lib/travis/client/user.rb
travis-1.8.11.travis.1059.11 lib/travis/client/user.rb
travis-1.8.11.travis.1058.11 lib/travis/client/user.rb
travis-1.8.11.travis.1056.11 lib/travis/client/user.rb
travis-1.8.11.travis.1051.11 lib/travis/client/user.rb
travis-1.8.11.travis.1048.11 lib/travis/client/user.rb
travis-1.8.11.travis.1044.11 lib/travis/client/user.rb
travis-1.8.11.travis.1041.11 lib/travis/client/user.rb
travis-1.8.11.travis.1040.11 lib/travis/client/user.rb
travis-1.8.11.travis.1026.11 lib/travis/client/user.rb
travis-1.8.11.travis.1025.11 lib/travis/client/user.rb
travis-1.8.11.travis.1024.11 lib/travis/client/user.rb
travis-1.8.11.travis.1022.11 lib/travis/client/user.rb
travis-1.8.11.travis.1021.11 lib/travis/client/user.rb
travis-1.8.11.travis.1020.11 lib/travis/client/user.rb
travis-1.8.11.travis.1012.9 lib/travis/client/user.rb
travis-1.8.11.travis.1011.9 lib/travis/client/user.rb