gah 0.0.1
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.
- data/README.md +61 -0
- data/lib/gah.rb +14 -0
- data/lib/gah/helpers.rb +20 -0
- data/lib/gah/repository.rb +33 -0
- data/test/commits.rb +0 -0
- data/test/helper.rb +33 -0
- metadata +69 -0
data/README.md
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
gah
|
2
|
+
===
|
3
|
+
|
4
|
+
The **G**ithub **A**PI **H**elper
|
5
|
+
|
6
|
+
**gah** allows you to access some features that Github didn't made available in the APIs
|
7
|
+
|
8
|
+
installation
|
9
|
+
------------
|
10
|
+
|
11
|
+
$: [sudo] gem install gah
|
12
|
+
|
13
|
+
synopsis
|
14
|
+
--------
|
15
|
+
|
16
|
+
Initialize a new Repo
|
17
|
+
|
18
|
+
gah = Gah::Repo.new("fyskij/octodigest")
|
19
|
+
|
20
|
+
|
21
|
+
Number of commits in a repo:
|
22
|
+
|
23
|
+
gah.commits
|
24
|
+
|
25
|
+
=> 67
|
26
|
+
|
27
|
+
Contributors:
|
28
|
+
|
29
|
+
gah.contributors
|
30
|
+
|
31
|
+
=>
|
32
|
+
{
|
33
|
+
"name": "Gildo Fiorito" .... etc
|
34
|
+
|
35
|
+
|
36
|
+
Number of contributors:
|
37
|
+
|
38
|
+
gah.contributors.length
|
39
|
+
|
40
|
+
=> 3
|
41
|
+
|
42
|
+
List of tags:
|
43
|
+
|
44
|
+
gah.tags
|
45
|
+
|
46
|
+
=> {v1.2.0} => "cfad76700b3d38eb3be97e2d5ef75cc0a398f818"
|
47
|
+
etc
|
48
|
+
|
49
|
+
license
|
50
|
+
-------
|
51
|
+
|
52
|
+
This program is distributed under GPL
|
53
|
+
|
54
|
+
issues
|
55
|
+
------
|
56
|
+
|
57
|
+
[Issues](http://github.com/fyskij/gah/issues)
|
58
|
+
|
59
|
+
author
|
60
|
+
------
|
61
|
+
[Ermenegildo "Gildo" Fiorito](http://isagit.com)
|
data/lib/gah.rb
ADDED
data/lib/gah/helpers.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'uri'
|
3
|
+
|
4
|
+
module Helpers
|
5
|
+
|
6
|
+
def gapi(api)
|
7
|
+
uri = URI.parse("http://github.com/api/v2/json#{api}")
|
8
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
9
|
+
request = Net::HTTP::Get.new(uri.request_uri)
|
10
|
+
|
11
|
+
response = http.request(request)
|
12
|
+
body = JSON.parse(response.body)
|
13
|
+
|
14
|
+
if body.has_key? "error"
|
15
|
+
raise "#{uri}"
|
16
|
+
end
|
17
|
+
|
18
|
+
return body
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Gah
|
2
|
+
class Repo
|
3
|
+
|
4
|
+
include Helpers
|
5
|
+
|
6
|
+
BASE = "/repos/show/"
|
7
|
+
|
8
|
+
def initialize(repo)
|
9
|
+
@repo = repo
|
10
|
+
end
|
11
|
+
|
12
|
+
def contributors
|
13
|
+
gapi (BASE + @repo + "/contributors")
|
14
|
+
end
|
15
|
+
|
16
|
+
def contributions
|
17
|
+
count = 0
|
18
|
+
contributors["contributors"].each do |c|
|
19
|
+
count += c["contributions"]
|
20
|
+
end
|
21
|
+
|
22
|
+
return count
|
23
|
+
end
|
24
|
+
|
25
|
+
def tags
|
26
|
+
tags = gapi (BASE + @repo + "/tags")
|
27
|
+
end
|
28
|
+
|
29
|
+
def refs
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
data/test/commits.rb
ADDED
File without changes
|
data/test/helper.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
+
require 'gah'
|
4
|
+
|
5
|
+
##
|
6
|
+
# test/spec/mini 5
|
7
|
+
# http://gist.github.com/307649
|
8
|
+
# chris@ozmm.org
|
9
|
+
#
|
10
|
+
def context(*args, &block)
|
11
|
+
return super unless (name = args.first) && block
|
12
|
+
require 'test/unit'
|
13
|
+
klass = Class.new Test::Unit::TestCase do
|
14
|
+
def self.test(name, &block)
|
15
|
+
define_method("test_#{name.to_s.gsub(/\W/,'_')}", &block) if block
|
16
|
+
end
|
17
|
+
def self.xtest(*args) end
|
18
|
+
def self.context(*args, &block) instance_eval(&block) end
|
19
|
+
def self.setup(&block)
|
20
|
+
define_method(:setup) { self.class.setups.each { |s| instance_eval(&s) } }
|
21
|
+
setups << block
|
22
|
+
end
|
23
|
+
def self.setups; @setups ||= [] end
|
24
|
+
def self.teardown(&block) define_method(:teardown, &block) end
|
25
|
+
end
|
26
|
+
(class << klass; self end).send(:define_method, :name) { name.gsub(/\W/,'_') }
|
27
|
+
klass.class_eval &block
|
28
|
+
end
|
29
|
+
|
30
|
+
def fixture(name)
|
31
|
+
@fixtures ||= {}
|
32
|
+
@fixtures[name] ||= JSON.parse(File.read("test/fixtures/#{name}.json"))
|
33
|
+
end
|
metadata
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gah
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: 0.0.1
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Ermenegildo Fiorito
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2011-04-11 00:00:00 +02:00
|
18
|
+
default_executable:
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description: gah allows you to access some features that Github didn't made available in the APIs
|
22
|
+
email: fyskij@gmail.com
|
23
|
+
executables: []
|
24
|
+
|
25
|
+
extensions: []
|
26
|
+
|
27
|
+
extra_rdoc_files: []
|
28
|
+
|
29
|
+
files:
|
30
|
+
- README.md
|
31
|
+
- lib/gah.rb
|
32
|
+
- lib/gah/helpers.rb
|
33
|
+
- lib/gah/repository.rb
|
34
|
+
- test/helper.rb
|
35
|
+
- test/commits.rb
|
36
|
+
has_rdoc: true
|
37
|
+
homepage: http://github.com/fyskij/gah
|
38
|
+
licenses: []
|
39
|
+
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
|
43
|
+
require_paths:
|
44
|
+
- lib
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
+
none: false
|
47
|
+
requirements:
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
segments:
|
51
|
+
- 0
|
52
|
+
version: "0"
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
requirements: []
|
62
|
+
|
63
|
+
rubyforge_project:
|
64
|
+
rubygems_version: 1.3.7
|
65
|
+
signing_key:
|
66
|
+
specification_version: 3
|
67
|
+
summary: The Github API Helper
|
68
|
+
test_files: []
|
69
|
+
|