Sha256: 18799e920995becfbb68c93dafdc256f4263a1cc179f5b35603f374b4bf2bf9c

Contents?: true

Size: 731 Bytes

Versions: 16

Compression:

Stored size: 731 Bytes

Contents

require 'addressable/uri'

module Octokit
  class Repository
    attr_accessor :username, :name

    def self.from_url(url)
      Repository.new(Addressable::URI.parse(url).path[1..-1])
    end

    def initialize(repo)
      case repo
      when String
        @username, @name = repo.split('/')
      when Repository
        @username = repo.username
        @name = repo.name
      when Hash
        @name = repo[:repo] ||= repo[:name]
        @username = repo[:username] ||= repo[:user] ||= repo[:owner]
      end
    end

    def slug
      "#{@username}/#{@name}"
    end

    def to_s
      self.slug
    end

    def url
      "https://github.com/#{slug}"
    end

    alias :user :username
    alias :repo :name
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
octokit-1.5.0 lib/octokit/repository.rb
octokit-1.4.0 lib/octokit/repository.rb
octokit-1.3.0 lib/octokit/repository.rb
octokit-1.2.1 lib/octokit/repository.rb
octokit-1.2.0 lib/octokit/repository.rb
octokit-1.1.1 lib/octokit/repository.rb
octokit-1.1.0 lib/octokit/repository.rb
octokit-1.0.7 lib/octokit/repository.rb
octokit-1.0.6 lib/octokit/repository.rb
octokit-1.0.5 lib/octokit/repository.rb
octokit-1.0.4 lib/octokit/repository.rb
octokit-1.0.3 lib/octokit/repository.rb
octokit-1.0.2 lib/octokit/repository.rb
octokit-1.0.1 lib/octokit/repository.rb
octokit-1.0.0 lib/octokit/repository.rb
octokit-0.6.5 lib/octokit/repository.rb