Class: Datapimp::Sources::GithubRepository

Inherits:
Base
  • Object
show all
Defined in:
lib/datapimp/sources/github_repository.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#format, #name, #path, #processed, #raw, #refreshed_at, #scopes, #slug_column

Instance Method Summary collapse

Methods inherited from Base

#age, #compute_properties, #data, #ensure_valid_options!, #fetch, #file, #fresh_on_server?, #has_scope?, #jsonify, #max_age, #need_to_refresh?, #path_to_file, #persisted?, #preprocess, #process, #processors, #refresh, #refresh!, #refresh_if_stale?, requires, #save_to_disk, #scope, #select, #stale?

Constructor Details

#initialize(repository, options) ⇒ GithubRepository

Returns a new instance of GithubRepository.



5
6
7
8
# File 'lib/datapimp/sources/github_repository.rb', line 5

def initialize(repository, options)
  @repository = repository
  @options    = options.to_mash
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



3
4
5
# File 'lib/datapimp/sources/github_repository.rb', line 3

def options
  @options
end

#repositoryObject (readonly)

Returns the value of attribute repository.



3
4
5
# File 'lib/datapimp/sources/github_repository.rb', line 3

def repository
  @repository
end

Instance Method Details

#allObject



10
11
12
13
14
15
# 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

#commitsObject



42
43
44
45
# File 'lib/datapimp/sources/github_repository.rb', line 42

def commits
  commits = client.commits(repository)
  serve_output(commits)
end

#issuesObject



21
22
23
24
25
26
27
28
29
30
# 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

#milestonesObject



32
33
34
35
# File 'lib/datapimp/sources/github_repository.rb', line 32

def milestones
  milestones = client.milestones(repository)
  serve_output(milestones)
end

#releasesObject



37
38
39
40
# File 'lib/datapimp/sources/github_repository.rb', line 37

def releases
  releases = client.releases(repository)
  serve_output(releases)
end

#to_sObject



17
18
19
# File 'lib/datapimp/sources/github_repository.rb', line 17

def to_s
  all
end