github-api-client 0.1.2.2 → 0.1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ class CreateRepos < ActiveRecord::Migration
14
14
  t.integer attr
15
15
  end
16
16
 
17
- %w(has_downloads fork deleted locked has_wiki private open_issues has_issues).each do |attr|
17
+ %w(has_downloads b_fork deleted locked has_wiki private open_issues has_issues).each do |attr|
18
18
  t.boolean attr
19
19
  end
20
20
 
@@ -9,23 +9,8 @@ require 'yaml'
9
9
  require 'singleton'
10
10
  require 'active_record'
11
11
  require 'core_ext/habtm'
12
-
13
- # General placeholder for all of the GitHub API sweets
14
- module GitHub
15
- # Keeps all the configuration stuff
16
- module Config
17
- # Constant with defined all the paths used in the application
18
- Path = {:dir => ENV['HOME'] + "/.github", :dbfile => ENV['HOME'] + "/.github/github.db", :migrations => Gem.loaded_specs['github-api-client'].full_gem_path + "/db/migrate", :secrets => ENV['HOME'] + "/.github" + "/secrets.yml"}
19
-
20
- # Sets up the database and migrates it
21
- # @return [nil]
22
- def self.setup
23
- Dir.mkdir GitHub::Config::Path[:dir] rescue nil
24
- ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => GitHub::Config::Path[:dbfile]
25
- ActiveRecord::Migrator.migrate(GitHub::Config::Path[:migrations], nil)
26
- end
27
- end
28
- end
12
+ require 'rainbow'
13
+ require 'github_api/config'
29
14
 
30
15
  GitHub::Config.setup
31
16
 
@@ -33,22 +18,12 @@ require 'github_api/base'
33
18
  require 'github_api/user'
34
19
  require 'github_api/repo'
35
20
  require 'github_api/browser'
36
- require 'rainbow'
21
+
22
+ unless $user = GitHub::User.where(GitHub::Config::Secrets).first
23
+ $user = GitHub::User.create(GitHub::Config::Secrets)
24
+ end if GitHub::Config::Secrets
37
25
 
38
26
 
39
- begin
40
- unless $user = GitHub::User.where(YAML::load_file(GitHub::Config::Path[:secrets])['user']).first
41
- $user = GitHub::User.create(YAML::load_file(GitHub::Config::Path[:secrets])['user'])
42
- end
43
-
44
- rescue Errno::ENOENT
45
- puts "Could not load config/secrets.yml, have you defined it?"
46
- puts "Putting example secrets file in your #{GitHub::Config::Path[:secrets]}"
47
- File.open(GitHub::Config::Path[:secrets], 'w') do |f|
48
- f.write <<-config
49
- user:
50
- login: login
51
- token: private_token
52
- config
53
- end
27
+ # General placeholder for all of the GitHub API sweets
28
+ module GitHub
54
29
  end
@@ -37,15 +37,23 @@ module GitHub
37
37
  # @return [Hash] parsed attributes, fully compatibile with local db
38
38
  def self.parse_attributes(resource, attributes)
39
39
  hash = case resource
40
- when :user_get then {:public_repo_count => :nil, :public_gist_count => :nil, :created => :nil, :permission => :nil, :followers_count => :nil, :following_count => :nil}
40
+ when :user_get then {:public_repo_count => :nil, :public_gist_count => :nil, :created => :nil, :permission => :nil, :followers_count => :nil, :following_count => :nil}
41
41
  when :user_search then {:name => :login, :username => :login, :fullname => :name, :followers => :nil, :repos => :public_repo_count, :created => :nil, :permission => :nil}
42
- when :repo then {:fork => :"fork?".to_s}
42
+ when :repo_get then {:fork => :b_fork}
43
43
  end
44
44
  hash.each do |k, v|
45
45
  unless v == :nil
46
- attributes[v.to_s] = attributes[k.to_s]
46
+ if [:repo_get].include? resource
47
+ attributes[v.to_s] = attributes[k.to_sym]
48
+ else
49
+ attributes[v.to_s] = attributes[k.to_s]
50
+ end
51
+ end
52
+ if [:repo_get].include? resource
53
+ attributes.delete k.to_sym
54
+ else
55
+ attributes.delete k.to_s
47
56
  end
48
- attributes.delete k.to_s
49
57
  end
50
58
  attributes
51
59
  end
@@ -0,0 +1,34 @@
1
+ module GitHub
2
+ # Keeps all the configuration stuff
3
+ module Config
4
+ # Constant with defined all the paths used in the application
5
+ Path = {:dir => ENV['HOME'] + "/.github", :dbfile => ENV['HOME'] + "/.github/github.db", :migrations => Gem.loaded_specs['github-api-client'].full_gem_path + "/db/migrate", :secrets => ENV['HOME'] + "/.github" + "/secrets.yml"}
6
+
7
+ # Secrets array, uses env vars if defined
8
+ Secrets = {"login" => ENV['GITHUB_USER'], "token" => ENV['GITHUB_TOKEN']} if ENV['GITHUB_USER'] && ENV['GITHUB_TOKEN']
9
+ begin
10
+ Secrets ||= YAML::load_file(GitHub::Config::Path[:secrets])['user']
11
+ rescue Errno::ENOENT
12
+ # Eye candy with rainbow
13
+ puts <<-report
14
+ You have two ways of defining your user to have authenticated access to your API:
15
+ #{"1.".color(:cyan)} Put a file in: #{GitHub::Config::Path[:secrets].color(:blue).bright}
16
+ Define in yaml:
17
+ #{"user".color(:yellow).bright}:
18
+ #{"login".color(:green).bright}: #{"your_login".color(:magenta)}
19
+ #{"token".color(:blue).bright}: #{"your_token".color(:magenta)}
20
+ #{"2.".color(:cyan)} Put #{"GITHUB_USER".color(:green).bright} and #{"GITHUB_TOKEN".color(:blue).bright} in your environment, so github-api-client can read it.
21
+
22
+ report
23
+ end
24
+ Secrets ||= nil
25
+
26
+ # Sets up the database and migrates it
27
+ # @return [nil]
28
+ def self.setup
29
+ Dir.mkdir GitHub::Config::Path[:dir] rescue nil
30
+ ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => GitHub::Config::Path[:dbfile]
31
+ ActiveRecord::Migrator.migrate(GitHub::Config::Path[:migrations], nil)
32
+ end
33
+ end
34
+ end
@@ -5,7 +5,9 @@ module GitHub
5
5
 
6
6
  def self.get(information)
7
7
  #FIXME: permalink column must be present, comparing url's is surely not the most efficient way for the db
8
- GitHub::Repo.find_or_create_by_url(YAML::load(GitHub::Browser.get("/repos/show/#{information}"))['repository'])
8
+ GitHub::Repo.find_or_create_by_url(
9
+ GitHub::Base.parse_attributes(:repo_get,
10
+ YAML::load(GitHub::Browser.get("/repos/show/#{information}"))['repository']))
9
11
  end
10
12
 
11
13
 
@@ -27,5 +29,9 @@ module GitHub
27
29
  def permalink
28
30
  "#{owner.login}/#{name}"
29
31
  end
32
+
33
+ define_method(:fork?) do
34
+ b_fork
35
+ end
30
36
  end
31
37
  end
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 0
7
7
  - 1
8
8
  - 2
9
- - 2
10
- version: 0.1.2.2
9
+ - 4
10
+ version: 0.1.2.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Jakub Oko\xC5\x84ski"
@@ -75,6 +75,7 @@ files:
75
75
  - lib/github_api/base.rb
76
76
  - lib/github_api/repo.rb
77
77
  - lib/github_api/browser.rb
78
+ - lib/github_api/config.rb
78
79
  - lib/github_api/user.rb
79
80
  - db/migrate/003_create_repos.rb
80
81
  - db/migrate/002_create_followings.rb