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