Class: GitHub::Base
- Inherits:
-
Object
- Object
- GitHub::Base
- Defined in:
- lib/github-api-client/base.rb
Overview
Basic functionality inherited later
Class Method Summary collapse
-
.parse_attributes(resource, attributes) ⇒ Hash
Converts pitfalls from GitHub API differences into normal data.
-
.sync ⇒ Object
Synchronizes every information from local database with GitHub == VERY DANGEROUS AND EVIL Recursively gets all* GitHub Users, takes years to fetch * - all that have at least one follower.
Instance Method Summary collapse
-
#build(options = {}) ⇒ Object
Sends key= value signals at object, that inherits it.
-
#to_ary ⇒ Hash
ActiveRecord fix that returns attributes.
Class Method Details
.parse_attributes(resource, attributes) ⇒ Hash
Converts pitfalls from GitHub API differences into normal data
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/github-api-client/base.rb', line 44 def self.parse_attributes(resource, attributes) hash = case resource when :user_get then {:public_repo_count => :nil, :public_gist_count => :nil, :created => :nil, :permission => :nil, :followers_count => :nil, :following_count => :nil} when :user_search then {:name => :login, :username => :login, :fullname => :name, :followers => :nil, :repos => :nil, :created => :nil, :permission => :nil} when :repo_get then {:fork => :b_fork, :watchers => nil, :owner => :owner_login, :organization => :organization_login, :forks => nil, :followers_count => nil, :forks_count => nil} when :org_get then {:public_gist_count => nil, :public_repo_count => nil, :following_count => :nil, :followers_count => :nil} when :org_repo_index then {:owner => nil, :open_issues => nil, :has_issues => nil, :watchers => nil, :forks => nil, :fork => :b_fork, :gravatar_id => nil, :organization => :organization_login} end # Provides abstraction layer between YAML :keys and 'keys' returned by Hub symbolized_resources = [:repo_get, :org_repo_index, :org_repo_get] hash.each do |k, v| unless v == :nil || v == nil if v.class != Symbol attributes[k.to_s] = v else if symbolized_resources.include? resource attributes[v.to_s] = attributes[k.to_sym] else attributes[v.to_s] = attributes[k.to_s] end end end if symbolized_resources.include? resource attributes.delete k.to_sym else attributes.delete k.to_s end end attributes end |
.sync ⇒ Object
Synchronizes every information from local database with GitHub
VERY DANGEROUS AND EVIL
Recursively gets all* GitHub Users, takes years to fetch
-
all that have at least one follower
-
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/github-api-client/base.rb', line 17 def self.sync puts "Synchronizing local database with GitHub" users = GitHub::User.all repos = GitHub::Repo.all puts "Updating Records of all #{"users".color(:yellow).bright}" #progress = ProgressBar.new("Updating records", users.count) users.each do |user| # Disabled because of its length user.fetch(:self) #progress.inc end progress.finish #progress = ProgressBar.new("Updating records", repos.count) repos.each do |repo| repo.fetch(:self, :watchers) #progress.inc end #progress.finish nil end |
Instance Method Details
#build(options = {}) ⇒ Object
Sends key= value signals at object, that inherits it
6 7 8 9 10 |
# File 'lib/github-api-client/base.rb', line 6 def build( = {}) .each_pair do |k, v| self.send "#{k.to_sym}=", v end end |
#to_ary ⇒ Hash
ActiveRecord fix that returns attributes
77 78 79 |
# File 'lib/github-api-client/base.rb', line 77 def to_ary return self.attributes end |