class GitNetworkitis::Repository

Attributes

description[RW]
forks[RW]
has_downloads[RW]
has_wiki[RW]
homepage[RW]
name[RW]
open_issues[RW]
owner[RW]
private[RW]
size[RW]
url[RW]
watchers[RW]

Public Instance Methods

find(options={}) click to toggle source
# File lib/gitnetworkitis/repository.rb, line 28
def find(options={})
  if options.has_key?(:owner) & options.has_key?(:repo)
    resp = get("/repos/#{options[:owner]}/#{options[:repo]}")
    parse_attributes(parse_json(resp.body.to_s), Repository.new(token))
  end
end
find_all(options={}) click to toggle source

TODO use options to handle the optional filter params that github v3 supports

# File lib/gitnetworkitis/repository.rb, line 7
def find_all(options={})
  include_orgs = options.delete(:include_orgs)
  resp = get("/user/repos", type: (options[:type] || 'all'))
  user_repos = parse_json(resp.body.to_s).inject([]) do |repos, repo|
    repos << parse_attributes(repo, Repository.new(token))
  end

  include_orgs ? user_repos + org_member_repos : user_repos
end
org_member_repos() click to toggle source
# File lib/gitnetworkitis/repository.rb, line 17
def org_member_repos
  resp = get("/user/orgs")
  org_names = parse_json(resp.body.to_s).map {|o| o['login'] }
  org_names.inject([]) do |org_repos, org_name|
    resp = get("/orgs/#{org_name}/repos", type: 'member')
    org_repos += parse_json(resp.body.to_s).inject([]) do |this_org_repos, repo|
      this_org_repos << parse_attributes(repo, Repository.new(token))
    end
  end
end
remote_id() click to toggle source
# File lib/gitnetworkitis/repository.rb, line 35
def remote_id
  return "#{self.owner['login']}/#{self.name}"
end