gitnetworkitis 0.1.0 → 0.2.0

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.
Files changed (57) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/.rvmrc +4 -0
  4. data/Gemfile +15 -0
  5. data/Gemfile.lock +34 -0
  6. data/README.rdoc +1 -1
  7. data/Rakefile +50 -0
  8. data/VERSION +1 -0
  9. data/gitnetworkitis-0.1.0.gem +0 -0
  10. data/gitnetworkitis.gemspec +127 -0
  11. data/lib/gitnetworkitis/network_data.rb +4 -0
  12. data/spec/base_spec.rb +46 -0
  13. data/spec/branch_spec.rb +31 -0
  14. data/spec/commit_spec.rb +8 -0
  15. data/spec/gitnetworkitis_spec.rb +4 -0
  16. data/spec/network_data_spec.rb +153 -0
  17. data/spec/network_meta_spec.rb +59 -0
  18. data/spec/repository_spec.rb +56 -0
  19. data/spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=0.json +1 -0
  20. data/spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=1.json +1 -0
  21. data/spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=2.json +1 -0
  22. data/spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=3.json +1 -0
  23. data/spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=4.json +1 -0
  24. data/spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=5.json +1 -0
  25. data/spec/responses/branch_pages/turingstudio_loupe_bec7b23dc57b14d89fa2829e8c32a108a18e7248?page=0.json +1 -0
  26. data/spec/responses/branch_pages/turingstudio_loupe_bec7b23dc57b14d89fa2829e8c32a108a18e7248?page=1.json +1 -0
  27. data/spec/responses/branch_pages/turingstudio_loupe_bec7b23dc57b14d89fa2829e8c32a108a18e7248?page=2.json +1 -0
  28. data/spec/responses/branch_pages/turingstudio_loupe_bec7b23dc57b14d89fa2829e8c32a108a18e7248?page=3.json +1 -0
  29. data/spec/responses/branch_pages/turingstudio_loupe_bec7b23dc57b14d89fa2829e8c32a108a18e7248?page=4.json +1 -0
  30. data/spec/responses/branch_pages/turingstudio_loupe_c3aeb61e37f94bbb67c4f14b52c23b8e54d30d0e?page=0.json +1 -0
  31. data/spec/responses/branch_pages/turingstudio_loupe_c3aeb61e37f94bbb67c4f14b52c23b8e54d30d0e?page=1.json +1 -0
  32. data/spec/responses/branch_pages/turingstudio_loupe_c3aeb61e37f94bbb67c4f14b52c23b8e54d30d0e?page=2.json +1 -0
  33. data/spec/responses/branch_pages/turingstudio_loupe_c3aeb61e37f94bbb67c4f14b52c23b8e54d30d0e?page=3.json +1 -0
  34. data/spec/responses/branch_pages/turingstudio_loupe_c3aeb61e37f94bbb67c4f14b52c23b8e54d30d0e?page=4.json +1 -0
  35. data/spec/responses/girlambition/0-500.json +1 -0
  36. data/spec/responses/girlambition/1002-1502.json +1 -0
  37. data/spec/responses/girlambition/1503-2003.json +1 -0
  38. data/spec/responses/girlambition/2004-2504.json +1 -0
  39. data/spec/responses/girlambition/2505-3005.json +1 -0
  40. data/spec/responses/girlambition/3006-3506.json +1 -0
  41. data/spec/responses/girlambition/3507-4007.json +1 -0
  42. data/spec/responses/girlambition/4008-4508.json +1 -0
  43. data/spec/responses/girlambition/4509-4999.json +1 -0
  44. data/spec/responses/girlambition/501-1001.json +1 -0
  45. data/spec/responses/girlambition/repos_show_turingstudio_website-girlambition_branches.json +1 -0
  46. data/spec/responses/girlambition/turingstudio_website-girlambition_network_meta.json +1 -0
  47. data/spec/responses/loupe/repos_show_turingstudio_loupe.json +1 -0
  48. data/spec/responses/loupe/repos_show_turingstudio_loupe_branches.json +1 -0
  49. data/spec/responses/loupe/turingstudio_loupe_068161e2c05a6b8029a7eb410dd27b1dfa531338?start=1&end=5.json +1 -0
  50. data/spec/responses/loupe/turingstudio_loupe_068161e2c05a6b8029a7eb410dd27b1dfa531338?start=130.json +1 -0
  51. data/spec/responses/loupe/turingstudio_loupe_branch.json +1 -0
  52. data/spec/responses/loupe/turingstudio_loupe_network_data.json +1 -0
  53. data/spec/responses/loupe/turingstudio_loupe_network_meta.json +1 -0
  54. data/spec/responses/repos_show_jcoutu.json +1 -0
  55. data/spec/responses/repos_watched_jcoutu.json +1 -0
  56. data/spec/spec_helper.rb +78 -0
  57. metadata +77 -39
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.rvmrc ADDED
@@ -0,0 +1,4 @@
1
+ rvm_gemset_create_on_use_flag=1
2
+ rvm gemset use gitnetworkitis
3
+
4
+
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+ gem "httparty"
6
+
7
+ # Add dependencies to develop your gem here.
8
+ # Include everything needed to run rake, tests, features, etc.
9
+ group :development do
10
+ gem "rspec", "~> 2.1.0"
11
+ gem "bundler", "~> 1.0.0"
12
+ gem "jeweler", "~> 1.5.1"
13
+ gem "rcov", ">= 0"
14
+ gem "fakeweb"
15
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,34 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ crack (0.1.8)
5
+ diff-lcs (1.1.2)
6
+ fakeweb (1.3.0)
7
+ git (1.2.5)
8
+ httparty (0.6.1)
9
+ crack (= 0.1.8)
10
+ jeweler (1.5.1)
11
+ bundler (~> 1.0.0)
12
+ git (>= 1.2.5)
13
+ rake
14
+ rake (0.8.7)
15
+ rcov (0.9.9)
16
+ rspec (2.1.0)
17
+ rspec-core (~> 2.1.0)
18
+ rspec-expectations (~> 2.1.0)
19
+ rspec-mocks (~> 2.1.0)
20
+ rspec-core (2.1.0)
21
+ rspec-expectations (2.1.0)
22
+ diff-lcs (~> 1.1.2)
23
+ rspec-mocks (2.1.0)
24
+
25
+ PLATFORMS
26
+ ruby
27
+
28
+ DEPENDENCIES
29
+ bundler (~> 1.0.0)
30
+ fakeweb
31
+ httparty
32
+ jeweler (~> 1.5.1)
33
+ rcov
34
+ rspec (~> 2.1.0)
data/README.rdoc CHANGED
@@ -1,4 +1,4 @@
1
- = gitnetworkitis
1
+ #gitnetworkitis
2
2
 
3
3
  Description goes here.
4
4
 
data/Rakefile ADDED
@@ -0,0 +1,50 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ Jeweler::Tasks.new do |gem|
14
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
+ gem.name = "gitnetworkitis"
16
+ gem.homepage = "http://github.com/jcoutu/gitnetworkitis"
17
+ gem.license = "MIT"
18
+ gem.summary = "Git API Gem utilizing the Network API"
19
+ gem.description = "Git API Gem utilizing the Network API"
20
+ gem.email = "jcoutu@phaseiiicreations.com"
21
+ gem.authors = ["Julian Coutu"]
22
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
23
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
+ # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
+ # gem.add_development_dependency 'rspec', '> 1.2.3'
26
+ end
27
+ Jeweler::RubygemsDotOrgTasks.new
28
+
29
+ require 'rspec/core'
30
+ require 'rspec/core/rake_task'
31
+ RSpec::Core::RakeTask.new(:spec) do |spec|
32
+ spec.pattern = FileList['spec/**/*_spec.rb']
33
+ end
34
+
35
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
36
+ spec.pattern = 'spec/**/*_spec.rb'
37
+ spec.rcov = true
38
+ end
39
+
40
+ task :default => :spec
41
+
42
+ require 'rake/rdoctask'
43
+ Rake::RDocTask.new do |rdoc|
44
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
45
+
46
+ rdoc.rdoc_dir = 'rdoc'
47
+ rdoc.title = "gitnetworkitis #{version}"
48
+ rdoc.rdoc_files.include('README*')
49
+ rdoc.rdoc_files.include('lib/**/*.rb')
50
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.2.0
Binary file
@@ -0,0 +1,127 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{gitnetworkitis}
8
+ s.version = "0.2.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Julian Coutu"]
12
+ s.date = %q{2011-05-26}
13
+ s.description = %q{Git API Gem utilizing the Network API}
14
+ s.email = %q{jcoutu@phaseiiicreations.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ ".rvmrc",
23
+ "Gemfile",
24
+ "Gemfile.lock",
25
+ "LICENSE.txt",
26
+ "README.rdoc",
27
+ "Rakefile",
28
+ "VERSION",
29
+ "gitnetworkitis-0.1.0.gem",
30
+ "gitnetworkitis.gemspec",
31
+ "lib/gitnetworkitis.rb",
32
+ "lib/gitnetworkitis/base.rb",
33
+ "lib/gitnetworkitis/branch.rb",
34
+ "lib/gitnetworkitis/commit.rb",
35
+ "lib/gitnetworkitis/network_data.rb",
36
+ "lib/gitnetworkitis/network_meta.rb",
37
+ "lib/gitnetworkitis/repository.rb",
38
+ "spec/base_spec.rb",
39
+ "spec/branch_spec.rb",
40
+ "spec/commit_spec.rb",
41
+ "spec/gitnetworkitis_spec.rb",
42
+ "spec/network_data_spec.rb",
43
+ "spec/network_meta_spec.rb",
44
+ "spec/repository_spec.rb",
45
+ "spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=0.json",
46
+ "spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=1.json",
47
+ "spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=2.json",
48
+ "spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=3.json",
49
+ "spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=4.json",
50
+ "spec/responses/branch_pages/turingstudio_loupe_51ac36280d2dfe16c37b66ef344859c9c714c8e1?page=5.json",
51
+ "spec/responses/branch_pages/turingstudio_loupe_bec7b23dc57b14d89fa2829e8c32a108a18e7248?page=0.json",
52
+ "spec/responses/branch_pages/turingstudio_loupe_bec7b23dc57b14d89fa2829e8c32a108a18e7248?page=1.json",
53
+ "spec/responses/branch_pages/turingstudio_loupe_bec7b23dc57b14d89fa2829e8c32a108a18e7248?page=2.json",
54
+ "spec/responses/branch_pages/turingstudio_loupe_bec7b23dc57b14d89fa2829e8c32a108a18e7248?page=3.json",
55
+ "spec/responses/branch_pages/turingstudio_loupe_bec7b23dc57b14d89fa2829e8c32a108a18e7248?page=4.json",
56
+ "spec/responses/branch_pages/turingstudio_loupe_c3aeb61e37f94bbb67c4f14b52c23b8e54d30d0e?page=0.json",
57
+ "spec/responses/branch_pages/turingstudio_loupe_c3aeb61e37f94bbb67c4f14b52c23b8e54d30d0e?page=1.json",
58
+ "spec/responses/branch_pages/turingstudio_loupe_c3aeb61e37f94bbb67c4f14b52c23b8e54d30d0e?page=2.json",
59
+ "spec/responses/branch_pages/turingstudio_loupe_c3aeb61e37f94bbb67c4f14b52c23b8e54d30d0e?page=3.json",
60
+ "spec/responses/branch_pages/turingstudio_loupe_c3aeb61e37f94bbb67c4f14b52c23b8e54d30d0e?page=4.json",
61
+ "spec/responses/girlambition/0-500.json",
62
+ "spec/responses/girlambition/1002-1502.json",
63
+ "spec/responses/girlambition/1503-2003.json",
64
+ "spec/responses/girlambition/2004-2504.json",
65
+ "spec/responses/girlambition/2505-3005.json",
66
+ "spec/responses/girlambition/3006-3506.json",
67
+ "spec/responses/girlambition/3507-4007.json",
68
+ "spec/responses/girlambition/4008-4508.json",
69
+ "spec/responses/girlambition/4509-4999.json",
70
+ "spec/responses/girlambition/501-1001.json",
71
+ "spec/responses/girlambition/repos_show_turingstudio_website-girlambition_branches.json",
72
+ "spec/responses/girlambition/turingstudio_website-girlambition_network_meta.json",
73
+ "spec/responses/loupe/repos_show_turingstudio_loupe.json",
74
+ "spec/responses/loupe/repos_show_turingstudio_loupe_branches.json",
75
+ "spec/responses/loupe/turingstudio_loupe_068161e2c05a6b8029a7eb410dd27b1dfa531338?start=1&end=5.json",
76
+ "spec/responses/loupe/turingstudio_loupe_068161e2c05a6b8029a7eb410dd27b1dfa531338?start=130.json",
77
+ "spec/responses/loupe/turingstudio_loupe_branch.json",
78
+ "spec/responses/loupe/turingstudio_loupe_network_data.json",
79
+ "spec/responses/loupe/turingstudio_loupe_network_meta.json",
80
+ "spec/responses/repos_show_jcoutu.json",
81
+ "spec/responses/repos_watched_jcoutu.json",
82
+ "spec/spec_helper.rb"
83
+ ]
84
+ s.homepage = %q{http://github.com/jcoutu/gitnetworkitis}
85
+ s.licenses = ["MIT"]
86
+ s.require_paths = ["lib"]
87
+ s.rubygems_version = %q{1.5.2}
88
+ s.summary = %q{Git API Gem utilizing the Network API}
89
+ s.test_files = [
90
+ "spec/base_spec.rb",
91
+ "spec/branch_spec.rb",
92
+ "spec/commit_spec.rb",
93
+ "spec/gitnetworkitis_spec.rb",
94
+ "spec/network_data_spec.rb",
95
+ "spec/network_meta_spec.rb",
96
+ "spec/repository_spec.rb",
97
+ "spec/spec_helper.rb"
98
+ ]
99
+
100
+ if s.respond_to? :specification_version then
101
+ s.specification_version = 3
102
+
103
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
104
+ s.add_runtime_dependency(%q<httparty>, [">= 0"])
105
+ s.add_development_dependency(%q<rspec>, ["~> 2.1.0"])
106
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
107
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
108
+ s.add_development_dependency(%q<rcov>, [">= 0"])
109
+ s.add_development_dependency(%q<fakeweb>, [">= 0"])
110
+ else
111
+ s.add_dependency(%q<httparty>, [">= 0"])
112
+ s.add_dependency(%q<rspec>, ["~> 2.1.0"])
113
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
114
+ s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
115
+ s.add_dependency(%q<rcov>, [">= 0"])
116
+ s.add_dependency(%q<fakeweb>, [">= 0"])
117
+ end
118
+ else
119
+ s.add_dependency(%q<httparty>, [">= 0"])
120
+ s.add_dependency(%q<rspec>, ["~> 2.1.0"])
121
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
122
+ s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
123
+ s.add_dependency(%q<rcov>, [">= 0"])
124
+ s.add_dependency(%q<fakeweb>, [">= 0"])
125
+ end
126
+ end
127
+
@@ -51,11 +51,15 @@ module GitNetworkitis
51
51
 
52
52
  private
53
53
  def parse_results(response)
54
+ begin
54
55
  json_result = parse_json(escape_json(response.body.to_s))
55
56
  result = Array.new
56
57
  json_result["commits"].each do |commit|
57
58
  self.commits.push(parse_attributes(commit, Commit.new(self.username, self.token)))
58
59
  end
60
+ rescue
61
+ self.commits = []
62
+ end
59
63
  end
60
64
 
61
65
  end
data/spec/base_spec.rb ADDED
@@ -0,0 +1,46 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Gitnetworkitis::Base" do
4
+
5
+ context "#initialize" do
6
+ it "should allow for username and token to be set on init" do
7
+ c = GitNetworkitis::Base.new("jcoutu", "0ea98987469a2ef1daee5d1e30b42fd8")
8
+ c.username.should == "jcoutu"
9
+ c.token.should == "0ea98987469a2ef1daee5d1e30b42fd8"
10
+ end
11
+ end
12
+
13
+ context "#get" do
14
+ let(:base_class){GitNetworkitis::Base.new("jcoutu", "0ea98987469a2ef1daee5d1e30b42fd8")}
15
+ let(:success_response){double(:response => double(:code=>"200"))}
16
+ let(:failure_response){double(:response => double(:code=>"404"))}
17
+
18
+ it "should return the response when successful" do
19
+ base_class.class.should_receive(:get).and_return success_response
20
+ t = base_class.get("http://google.com")
21
+ t.should == success_response
22
+ end
23
+
24
+ it "should raise an exception when unsuccessful" do
25
+ base_class.class.should_receive(:get).and_return failure_response
26
+ lambda {base_class.get("http://google.com")}.should raise_error "Unable to find Github Repository"
27
+ end
28
+
29
+ end
30
+
31
+ context "#parse_json" do
32
+
33
+ let(:base_class){GitNetworkitis::Base.new("jcoutu", "0ea98987469a2ef1daee5d1e30b42fd8")}
34
+ let(:success_response){double(:response => double(:code=>"200"))}
35
+ let(:failure_response){double(:response => double(:code=>"404"))}
36
+
37
+ it "should return the response when successful" do
38
+ t = base_class.parse_json('{"test":"test"}')
39
+ t["test"].should == "test"
40
+ end
41
+
42
+ it "should raise an exception when unsuccessful" do
43
+ lambda {base_class.parse_json("http://google.com")}.should raise_error "Unable to parse JSON result"
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,31 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Gitnetworkitis::Branch" do
4
+
5
+ before :each do
6
+ fake_responses
7
+ end
8
+
9
+ context "find_all" do
10
+ let(:branch){GitNetworkitis::Branch.new(@username, @token)}
11
+ let(:test){branch.find_all({:owner=>"turingstudio", :repo => "loupe", :nethash => "068161e2c05a6b8029a7eb410dd27b1dfa531338"})}
12
+
13
+ it "should return a collection of branches for a specific repo" do
14
+ test.should_not be_empty
15
+ test.first.name.should_not be_empty
16
+ test.length.should == 3
17
+ end
18
+ end
19
+
20
+ context "commits" do
21
+ let(:branch){GitNetworkitis::Branch.new(@username, @token)}
22
+ let(:test){branch.find_all({:owner=>"turingstudio", :repo => "loupe", :nethash => "068161e2c05a6b8029a7eb410dd27b1dfa531338"})}
23
+
24
+ it "should return an array of commits for the branch" do
25
+ test[0].commits.length.should == 158
26
+ test[1].commits.length.should == 140
27
+ test[2].commits.length.should == 138
28
+ end
29
+
30
+ end
31
+ end
@@ -0,0 +1,8 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Gitnetworkitis::Commit" do
4
+
5
+ before :each do
6
+ fake_responses
7
+ end
8
+ end
@@ -0,0 +1,4 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Gitnetworkitis" do
4
+ end
@@ -0,0 +1,153 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Gitnetworkitis::NetworkData" do
4
+
5
+ before :each do
6
+ fake_responses
7
+ end
8
+
9
+ context "find" do
10
+ let(:tester){GitNetworkitis::NetworkMeta.new(@username, @token)}
11
+ let(:network_meta){tester.find({:owner=>"turingstudio", :repo => "loupe"})}
12
+ let(:network_data){GitNetworkitis::NetworkData.new(@username, @token)}
13
+ let(:test){network_data.find({:owner=>"turingstudio", :repo => "loupe", :network_meta => network_meta})}
14
+
15
+ before :each do
16
+ fake_responses
17
+ end
18
+
19
+ it "should set the commits array" do
20
+ test.commits.should_not be_empty
21
+ test.commits.first.parents.should be_empty
22
+ test.commits.length.should == 134
23
+ end
24
+
25
+ it "should set the network_meta" do
26
+ test.network_meta.should == network_meta
27
+ end
28
+ end
29
+
30
+ context "find with start set and no end" do
31
+ let(:tester){GitNetworkitis::NetworkMeta.new(@username, @token)}
32
+ let(:network_meta){tester.find({:owner=>"turingstudio", :repo => "loupe"})}
33
+ let(:network_data){GitNetworkitis::NetworkData.new(@username, @token)}
34
+ let(:test){network_data.find({:owner=>"turingstudio", :repo => "loupe", :network_meta => network_meta, :start => 130})}
35
+
36
+ before :each do
37
+ fake_responses
38
+ end
39
+
40
+ it "should set the commits array" do
41
+ test.commits.should_not be_empty
42
+ test.commits.first.parents.should_not be_empty
43
+ test.commits.length.should == 4
44
+ end
45
+
46
+ it "should set the network_meta" do
47
+ test.network_meta.should == network_meta
48
+ end
49
+ end
50
+
51
+ context "find with start set greater than end" do
52
+ let(:tester){GitNetworkitis::NetworkMeta.new(@username, @token)}
53
+ let(:network_meta){tester.find({:owner=>"turingstudio", :repo => "loupe"})}
54
+ let(:network_data){GitNetworkitis::NetworkData.new(@username, @token)}
55
+ let(:test){network_data.find({:owner=>"turingstudio", :repo => "loupe", :network_meta => network_meta, :start => 130, :end => 1})}
56
+
57
+ before :each do
58
+ fake_responses
59
+ end
60
+
61
+ it "should set the commits array" do
62
+ test.commits.should be_empty
63
+ end
64
+
65
+ it "should set the network_meta" do
66
+ test.network_meta.should == network_meta
67
+ end
68
+ end
69
+
70
+ context "find with start and end set" do
71
+ let(:tester){GitNetworkitis::NetworkMeta.new(@username, @token)}
72
+ let(:network_meta){tester.find({:owner=>"turingstudio", :repo => "loupe"})}
73
+ let(:network_data){GitNetworkitis::NetworkData.new(@username, @token)}
74
+ let(:test){network_data.find({:owner=>"turingstudio", :repo => "loupe", :network_meta => network_meta, :start => 1, :end => 5})}
75
+
76
+ before :each do
77
+ fake_responses
78
+ end
79
+
80
+ it "should set the commits array" do
81
+ test.commits.should_not be_empty
82
+ test.commits.first.parents.should_not be_empty
83
+ test.commits.length.should == 5
84
+ end
85
+
86
+ it "should set the network_meta" do
87
+ test.network_meta.should == network_meta
88
+ end
89
+ end
90
+
91
+ context "find with missing aurgument" do
92
+ let(:tester){GitNetworkitis::NetworkMeta.new(@username, @token)}
93
+ let(:network_meta){tester.find({:owner=>"turingstudio", :repo => "loupe"})}
94
+ let(:network_data){GitNetworkitis::NetworkData.new(@username, @token)}
95
+
96
+ before :each do
97
+ fake_responses
98
+ end
99
+
100
+ it "should raise exception if missing owner, repo, and Gitnetworkitis:NetworkMeta" do
101
+ lambda {network_data.find({:start => 1, :end => 5})}.should raise_error "You must provide an Owner, Repo and Gitnetworkitis:NetworkMeta"
102
+ end
103
+
104
+ it "should raise exception if Gitnetworkitis:NetworkMeta" do
105
+ lambda {network_data.find({:owner=>"turingstudio", :repo => "loupe", :start => 1, :end => 5})}.should raise_error "You must provide an Owner, Repo and Gitnetworkitis:NetworkMeta"
106
+ end
107
+
108
+ it "should raise exception if missing owner" do
109
+ lambda {network_data.find({:repo => "loupe", :network_meta => network_meta, :start => 1, :end => 5})}.should raise_error "You must provide an Owner, Repo and Gitnetworkitis:NetworkMeta"
110
+ end
111
+
112
+ it "should raise exception if missing repo" do
113
+ lambda {network_data.find({:owner=>"turingstudio", :network_meta => network_meta, :start => 1, :end => 5})}.should raise_error "You must provide an Owner, Repo and Gitnetworkitis:NetworkMeta"
114
+ end
115
+ end
116
+
117
+
118
+ context "find on repo with large amount of commits" do
119
+ let(:tester){GitNetworkitis::NetworkMeta.new(@username, @token)}
120
+ let(:network_meta){tester.find({:owner=>"turingstudio", :repo => "website-girlambition"})}
121
+ let(:network_data){GitNetworkitis::NetworkData.new(@username, @token)}
122
+ let(:test){network_data.find({:owner=>"turingstudio", :repo => "website-girlambition", :network_meta => network_meta})}
123
+
124
+ before :each do
125
+ fake_responses
126
+ end
127
+
128
+ it "should set the commits array" do
129
+ test.commits.should_not be_empty
130
+ test.commits.first.parents.should be_empty
131
+ test.commits.length.should == 5000
132
+ end
133
+ end
134
+
135
+ context "find on repo with large amount of commits" do
136
+ let(:tester){GitNetworkitis::NetworkMeta.new(@username, @token)}
137
+ let(:network_meta){tester.find({:owner=>"turingstudio", :repo => "website-girlambition"})}
138
+ let(:network_data){GitNetworkitis::NetworkData.new(@username, @token)}
139
+ let(:test){network_data.find({:owner=>"turingstudio", :repo => "website-girlambition", :network_meta => network_meta})}
140
+
141
+ before :each do
142
+ fake_responses
143
+ end
144
+
145
+ it "should set the commits array" do
146
+ test.commits.should_not be_empty
147
+ test.commits.first.parents.should be_empty
148
+ test.commits.length.should == 5000
149
+ end
150
+ end
151
+
152
+
153
+ end
@@ -0,0 +1,59 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Gitnetworkitis::NetworkMeta" do
4
+ context "find" do
5
+ let(:network_meta){GitNetworkitis::NetworkMeta.new(@username, @token)}
6
+ let(:test){network_meta.find({:owner=>"turingstudio", :repo => "loupe"})}
7
+
8
+ before :each do
9
+ fake_responses
10
+ end
11
+
12
+ it "should set the nethash" do
13
+ test = network_meta.find({:owner=>"turingstudio", :repo => "loupe"})
14
+ test.nethash.should == "068161e2c05a6b8029a7eb410dd27b1dfa531338"
15
+ end
16
+
17
+ it "should set the date array" do
18
+ test.dates.should_not be_empty
19
+ test.dates.first.should == "2010-10-08"
20
+ test.dates.last.should == "2010-12-28"
21
+ end
22
+
23
+ it "should set focus" do
24
+ test.focus.should == 133
25
+ end
26
+
27
+ it "should set the users array" do
28
+ test.users.should_not == nil
29
+ test.users.length.should == 1
30
+ test.users[0]["repo"].should == "loupe"
31
+ test.users[0]["heads"].length.should == 3
32
+ end
33
+
34
+ it "should set blocks" do
35
+ test.blocks.should_not == nil
36
+ test.blocks.length.should == 1
37
+ end
38
+
39
+ it "should set spacemap" do
40
+ test.spacemap.should_not == nil
41
+ test.spacemap.length.should == 3
42
+ end
43
+
44
+ it "should set branches to a collection of branches for a specific repo" do
45
+ test.branches.should_not == nil
46
+ test.branches.length.should == 3
47
+ end
48
+
49
+ context "error returns" do
50
+
51
+ it "raise an exception when the repo is not found" do
52
+ lambda {network_meta.find({:owner=>"bad_owner", :repo => "bad_repo"})}.should raise_error "Unable to find Github Repository"
53
+ end
54
+
55
+
56
+
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,56 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Gitnetworkitis::Repository" do
4
+
5
+ before :each do
6
+ fake_responses
7
+ end
8
+
9
+ context "#find_all_watched" do
10
+ it "should return an empty array if no credentials are found" do
11
+ c = GitNetworkitis::Repository.new(nil, nil)
12
+ repos = c.find_all_watched
13
+ repos.length.should == 0
14
+ end
15
+
16
+ it "should list a users watched repositories" do
17
+ c = GitNetworkitis::Repository.new(@username, @token)
18
+ repos = c.find_all_watched
19
+ repos.should_not be_empty
20
+ repos.length.should == 15
21
+ end
22
+ end
23
+
24
+ context "#find_all_owned" do
25
+ it "should return an empty array if no credentials are found" do
26
+ c = GitNetworkitis::Repository.new(nil, nil)
27
+ repos = c.find_all_owned
28
+ repos.length.should == 0
29
+ end
30
+
31
+ it "should list a users repositories" do
32
+ c = GitNetworkitis::Repository.new(@username, @token)
33
+ repos = c.find_all_owned
34
+ repos.should_not be_empty
35
+ repos.length.should == 1
36
+ end
37
+ end
38
+
39
+ context "#find" do
40
+ it "should allow a user to search for a repo based on owner and repo name" do
41
+ c = GitNetworkitis::Repository.new(@username, @token)
42
+ repo = c.find({:owner=>"turingstudio", :repo => "loupe"})
43
+ repo.owner.should == "turingstudio"
44
+ end
45
+ end
46
+
47
+ context "#remote_id" do
48
+ it "should set the remote_id to owner/name" do
49
+ c = GitNetworkitis::Repository.new(@username, @token)
50
+ repo = c.find({:owner=>"turingstudio", :repo => "loupe"})
51
+ repo.remote_id.should == "turingstudio/loupe"
52
+ end
53
+
54
+ end
55
+
56
+ end