hubruby 0.0.3 → 0.0.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.
@@ -0,0 +1,7 @@
1
+ === 0.0.3 2010-08-30
2
+
3
+ * Initial releases
4
+
5
+ === 0.0.4 2010-09-03
6
+
7
+ * Refactorings and Specifications
@@ -0,0 +1,20 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.rdoc
4
+ Rakefile
5
+ TODO
6
+ hubruby.gemspec
7
+ lib/github/base.rb
8
+ lib/github/finders.rb
9
+ lib/github/models/repository.rb
10
+ lib/github/models/user.rb
11
+ lib/hubruby.rb
12
+ script/console
13
+ script/destroy
14
+ script/generate
15
+ spec/github/github_spec.rb
16
+ spec/github/models/repository_spec.rb
17
+ spec/github/models/user_spec.rb
18
+ spec/spec.opts
19
+ spec/spec_helper.rb
20
+ tasks/rspec.rake
@@ -11,6 +11,12 @@ A simple Ruby library for accessing the current GitHub API (v2).
11
11
  user = GitHub.user('diogenes')
12
12
  user.repositories
13
13
  user.following
14
+ user.followers
15
+ user.watched
16
+
17
+ repository = GitHub.repository('aslakhellesoy', 'cucumber')
18
+ repository.branches
19
+ repository.network
14
20
 
15
21
  == REQUIREMENTS:
16
22
 
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ $hoe = Hoe.spec 'hubruby' do
14
14
  self.developer 'Diógenes Falcão', 'diogenes {d-o-t} araujo {at} gmail.com'
15
15
  self.rubyforge_name = self.name
16
16
  self.extra_deps = [['httparty','= 0.6.1']]
17
- self.version = '0.0.3'
17
+ self.version = '0.0.4'
18
18
  end
19
19
 
20
20
  require 'newgem/tasks'
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{hubruby}
5
+ s.version = "0.0.4"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Di\303\263genes Falc\303\243o"]
9
+ s.date = %q{2010-09-03}
10
+ s.description = %q{A simple Ruby library for accessing the current GitHub API (v2).}
11
+ s.email = ["diogenes {d-o-t} araujo {at} gmail.com"]
12
+ s.extra_rdoc_files = ["History.txt", "Manifest.txt"]
13
+ s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "TODO", "hubruby.gemspec", "lib/github/base.rb", "lib/github/finders.rb", "lib/github/models/repository.rb", "lib/github/models/user.rb", "lib/hubruby.rb", "script/console", "script/destroy", "script/generate", "spec/github/github_spec.rb", "spec/github/models/repository_spec.rb", "spec/github/models/user_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "tasks/rspec.rake"]
14
+ s.homepage = %q{http://github.com/diogenes/hubruby}
15
+ s.rdoc_options = ["--main", "README.rdoc"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{hubruby}
18
+ s.rubygems_version = %q{1.3.6}
19
+ s.summary = %q{A simple Ruby library for accessing the current GitHub API (v2).}
20
+
21
+ if s.respond_to? :specification_version then
22
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
+ s.add_runtime_dependency(%q<httparty>, ["= 0.6.1"])
27
+ s.add_development_dependency(%q<rubyforge>, [">= 2.0.4"])
28
+ s.add_development_dependency(%q<hoe>, [">= 2.6.1"])
29
+ else
30
+ s.add_dependency(%q<httparty>, ["= 0.6.1"])
31
+ s.add_dependency(%q<rubyforge>, [">= 2.0.4"])
32
+ s.add_dependency(%q<hoe>, [">= 2.6.1"])
33
+ end
34
+ else
35
+ s.add_dependency(%q<httparty>, ["= 0.6.1"])
36
+ s.add_dependency(%q<rubyforge>, [">= 2.0.4"])
37
+ s.add_dependency(%q<hoe>, [">= 2.6.1"])
38
+ end
39
+ end
@@ -2,32 +2,32 @@ module GitHub
2
2
  module Finders
3
3
  def user(login)
4
4
  j = json("/user/show/#{login}", :user)
5
- User.from_json(j)
5
+ User.from_hash(j)
6
6
  end
7
7
 
8
8
  def following(login)
9
- j = json("/user/show/#{login}/following", :users)
10
- User.users_from_json(j)
9
+ l = json("/user/show/#{login}/following", :users)
10
+ User.users_from_logins(l)
11
11
  end
12
12
 
13
13
  def followers(login)
14
- j = json("/user/show/#{login}/followers", :users)
15
- User.users_from_json(j)
14
+ l = json("/user/show/#{login}/followers", :users)
15
+ User.users_from_logins(l)
16
16
  end
17
17
 
18
18
  def repositories(login)
19
19
  j = json("/repos/show/#{login}", :repositories)
20
- Repository.repositories_from_json(j)
20
+ Repository.repositories_from_hashes(j)
21
21
  end
22
22
 
23
23
  def watched(login)
24
24
  j = json("/repos/watched/#{login}", :repositories)
25
- Repository.repositories_from_json(j)
25
+ Repository.repositories_from_hashes(j)
26
26
  end
27
27
 
28
28
  def repository(login, repository_name)
29
29
  j = json("/repos/show/#{login}/#{repository_name}", :repository)
30
- Repository.from_json(j)
30
+ Repository.from_hash(j)
31
31
  end
32
32
 
33
33
  def branches(login, repository_name)
@@ -36,7 +36,7 @@ module GitHub
36
36
 
37
37
  def network(login, repository_name)
38
38
  j = json("/repos/show/#{login}/#{repository_name}/network", :network)
39
- Repository.repositories_from_json(j)
39
+ Repository.repositories_from_hashes(j)
40
40
  end
41
41
 
42
42
  private
@@ -2,13 +2,13 @@ require 'ostruct'
2
2
 
3
3
  module GitHub
4
4
  class Repository < OpenStruct
5
- def self.from_json(json)
6
- new(json)
5
+ def self.from_hash(h)
6
+ new(h)
7
7
  end
8
8
 
9
- def self.repositories_from_json(json)
10
- json.inject([]) do |repositories, repository_json|
11
- repositories << from_json(repository_json)
9
+ def self.repositories_from_hashes(h)
10
+ h.inject([]) do |repositories, repository_attrs|
11
+ repositories << from_hash(repository_attrs)
12
12
  end
13
13
  end
14
14
 
@@ -2,13 +2,13 @@ require 'ostruct'
2
2
 
3
3
  module GitHub
4
4
  class User < OpenStruct
5
- def self.from_json(json)
6
- new(json)
5
+ def self.from_hash(h)
6
+ new(h)
7
7
  end
8
8
 
9
- def self.users_from_json(json)
10
- json.inject([]) do |users, login|
11
- users << from_json(:login => login)
9
+ def self.users_from_logins(logins)
10
+ logins.inject([]) do |users, login|
11
+ users << from_hash(:login => login)
12
12
  end
13
13
  end
14
14
 
@@ -5,7 +5,7 @@ require 'rubygems'
5
5
  require 'httparty'
6
6
 
7
7
  module Hubruby
8
- VERSION = '0.0.1'
8
+ VERSION = '0.0.4'
9
9
 
10
10
  def self.require_all
11
11
  Dir[File.join(File.dirname(__FILE__), %W(github ** *.rb))].each do |f|
@@ -0,0 +1,35 @@
1
+ require 'spec_helper.rb'
2
+
3
+ describe GitHub do
4
+ it "should be able to find a user" do
5
+ subject.should respond_to(:user)
6
+ end
7
+
8
+ it "should be able to find the following users from a user" do
9
+ subject.should respond_to(:following)
10
+ end
11
+
12
+ it "should be able to find an user followers" do
13
+ subject.should respond_to(:followers)
14
+ end
15
+
16
+ it "should be able to find an user repositories" do
17
+ subject.should respond_to(:repositories)
18
+ end
19
+
20
+ it "should be able to find an user watched repositories" do
21
+ subject.should respond_to(:watched)
22
+ end
23
+
24
+ it "should be able to find a repository" do
25
+ subject.should respond_to(:repository)
26
+ end
27
+
28
+ it "should be able to find the branches of a repository" do
29
+ subject.should respond_to(:branches)
30
+ end
31
+
32
+ it "should be able to find the network of a repository" do
33
+ subject.should respond_to(:network)
34
+ end
35
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper.rb'
2
+
3
+ describe GitHub::Repository do
4
+ it "should be instantiable from a hash" do
5
+ subject.class.should respond_to(:from_hash)
6
+
7
+ hash = {:name => 'hubruby', :owner => 'diogenes'}
8
+
9
+ repo = GitHub::Repository.from_hash(hash)
10
+ repo.name.should be_eql 'hubruby'
11
+ end
12
+
13
+ it "should be instantiable as a collection from a hash" do
14
+ subject.class.should respond_to(:repositories_from_hashes)
15
+ end
16
+
17
+ it "should be able to show your branches" do
18
+ subject.should respond_to(:branches)
19
+ end
20
+
21
+ it "should be able to show your network" do
22
+ subject.should respond_to(:network)
23
+ end
24
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper.rb'
2
+
3
+ describe GitHub::User do
4
+ it "should be instantiable from a hash" do
5
+ subject.class.should respond_to(:from_hash)
6
+
7
+ hash = {:name => 'Diógenes Falcão', :login => 'diogenes'}
8
+
9
+ user = GitHub::User.from_hash(hash)
10
+ user.login.should be_eql "diogenes"
11
+ end
12
+
13
+ it "should be instantiable as a collection from a list of logins" do
14
+ subject.class.should respond_to(:users_from_logins)
15
+
16
+ logins = ['guy1', 'guy2']
17
+
18
+ users = GitHub::User.users_from_logins(logins)
19
+ users.first.login.should be_eql 'guy1'
20
+ users.last.login.should be_eql 'guy2'
21
+ users.size.should be_eql 2
22
+ end
23
+
24
+ it "should be able to show your following users" do
25
+ subject.should respond_to(:following)
26
+ end
27
+
28
+ it "should be able to show your followers users" do
29
+ subject.should respond_to(:followers)
30
+ end
31
+
32
+ it "should be able to show your repositories" do
33
+ subject.should respond_to(:repositories)
34
+ end
35
+
36
+ it "should be able to show your watched repositories" do
37
+ subject.should respond_to(:watched)
38
+ end
39
+ end
@@ -0,0 +1 @@
1
+ --colour
@@ -0,0 +1,10 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
5
+ gem 'rspec'
6
+ require 'spec'
7
+ end
8
+
9
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
10
+ require 'hubruby'
@@ -0,0 +1,21 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
5
+ require 'spec'
6
+ end
7
+ begin
8
+ require 'spec/rake/spectask'
9
+ rescue LoadError
10
+ puts <<-EOS
11
+ To use rspec for testing you must install rspec gem:
12
+ gem install rspec
13
+ EOS
14
+ exit(0)
15
+ end
16
+
17
+ desc "Run the specs under spec/models"
18
+ Spec::Rake::SpecTask.new do |t|
19
+ t.spec_opts = ['--options', "spec/spec.opts"]
20
+ t.spec_files = FileList['spec/**/*_spec.rb']
21
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - "Di\xC3\xB3genes Falc\xC3\xA3o"
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-08-30 00:00:00 -03:00
17
+ date: 2010-09-03 00:00:00 -03:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -59,19 +59,23 @@ dependencies:
59
59
  version: 2.6.1
60
60
  type: :development
61
61
  version_requirements: *id003
62
- description: A simple Ruby library for accessing the current GitHub API (v2)
62
+ description: A simple Ruby library for accessing the current GitHub API (v2).
63
63
  email:
64
64
  - diogenes {d-o-t} araujo {at} gmail.com
65
65
  executables: []
66
66
 
67
67
  extensions: []
68
68
 
69
- extra_rdoc_files: []
70
-
69
+ extra_rdoc_files:
70
+ - History.txt
71
+ - Manifest.txt
71
72
  files:
73
+ - History.txt
74
+ - Manifest.txt
72
75
  - README.rdoc
73
76
  - Rakefile
74
77
  - TODO
78
+ - hubruby.gemspec
75
79
  - lib/github/base.rb
76
80
  - lib/github/finders.rb
77
81
  - lib/github/models/repository.rb
@@ -80,6 +84,12 @@ files:
80
84
  - script/console
81
85
  - script/destroy
82
86
  - script/generate
87
+ - spec/github/github_spec.rb
88
+ - spec/github/models/repository_spec.rb
89
+ - spec/github/models/user_spec.rb
90
+ - spec/spec.opts
91
+ - spec/spec_helper.rb
92
+ - tasks/rspec.rake
83
93
  has_rdoc: true
84
94
  homepage: http://github.com/diogenes/hubruby
85
95
  licenses: []
@@ -110,6 +120,6 @@ rubyforge_project: hubruby
110
120
  rubygems_version: 1.3.6
111
121
  signing_key:
112
122
  specification_version: 3
113
- summary: A simple Ruby library for accessing the current GitHub API (v2)
123
+ summary: A simple Ruby library for accessing the current GitHub API (v2).
114
124
  test_files: []
115
125