class Datapimp::Sources::GithubRepository

Attributes

options[R]
repository[R]

Public Class Methods

new(repository, options) click to toggle source
# File lib/datapimp/sources/github_repository.rb, line 5
def initialize(repository, options)
  @repository = repository
  @options    = options.to_mash
end

Public Instance Methods

all() click to toggle source
# File lib/datapimp/sources/github_repository.rb, line 10
def all
  %w(issues milestones commits releases).reduce({}) do |memo, slice|
    memo[slice] = send(slice)
    memo
  end
end
commits() click to toggle source
# File lib/datapimp/sources/github_repository.rb, line 42
def commits
  commits = client.commits(repository)
  serve_output(commits)
end
issues() click to toggle source
# File lib/datapimp/sources/github_repository.rb, line 21
def issues
  issues = client.issues(repository, filter: "all")
  issues.map! do |issue|
    %w(comments events labels).each do |rel|
      issue[rel] = issue.rels[rel].get.data if relations.include?(rel)
    end
    issue
  end
  serve_output(issues)
end
milestones() click to toggle source
# File lib/datapimp/sources/github_repository.rb, line 32
def milestones
  milestones = client.milestones(repository)
  serve_output(milestones)
end
releases() click to toggle source
# File lib/datapimp/sources/github_repository.rb, line 37
def releases
  releases = client.releases(repository)
  serve_output(releases)
end
to_s() click to toggle source
# File lib/datapimp/sources/github_repository.rb, line 17
def to_s
  all
end

Private Instance Methods

client() click to toggle source
# File lib/datapimp/sources/github_repository.rb, line 49
def client
  @_client ||= Datapimp::Sync.github.api
end
relations() click to toggle source
# File lib/datapimp/sources/github_repository.rb, line 53
def relations
  @_relations ||= Array(@options.relations)
end
serve_output(output) click to toggle source
# File lib/datapimp/sources/github_repository.rb, line 57
def serve_output(output)
  if output.is_a?(Array)
    output.map! do |o|
      o.respond_to?(:to_attrs) ? o.send(:to_attrs) : o
    end
  end

  output
end