travis-api/lib/travis/api/v2/http/permissions.rb

51 lines
1.1 KiB
Ruby

module Travis
module Api
module V2
module Http
class Permissions
attr_reader :permissions, :options
def initialize(permissions, options = {})
@permissions = permissions
@options = options
end
def data
{
'permissions' => repo_ids,
'admin' => admin_ids,
'pull' => pull_ids,
'push' => push_ids
}
end
private
def filtered_ids(perm = nil)
if perm
permissions.find_all { |p| p.send("#{perm}?") }.map { |permission| permission.repository_id }
else
permissions.map { |permission| permission.repository_id }
end
end
def repo_ids
filtered_ids
end
def admin_ids
filtered_ids(:admin)
end
def pull_ids
filtered_ids(:pull)
end
def push_ids
filtered_ids(:push)
end
end
end
end
end
end