pjhyett-grit 0.9.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/History.txt +13 -0
  2. data/Manifest.txt +71 -0
  3. data/README.txt +213 -0
  4. data/Rakefile +29 -0
  5. data/grit.gemspec +62 -0
  6. data/lib/grit.rb +54 -0
  7. data/lib/grit/actor.rb +36 -0
  8. data/lib/grit/blob.rb +117 -0
  9. data/lib/grit/commit.rb +229 -0
  10. data/lib/grit/commit_stats.rb +104 -0
  11. data/lib/grit/config.rb +44 -0
  12. data/lib/grit/diff.rb +70 -0
  13. data/lib/grit/errors.rb +7 -0
  14. data/lib/grit/git-ruby.rb +184 -0
  15. data/lib/grit/git-ruby/commit_db.rb +52 -0
  16. data/lib/grit/git-ruby/file_index.rb +186 -0
  17. data/lib/grit/git-ruby/git_object.rb +344 -0
  18. data/lib/grit/git-ruby/internal/loose.rb +137 -0
  19. data/lib/grit/git-ruby/internal/mmap.rb +58 -0
  20. data/lib/grit/git-ruby/internal/pack.rb +382 -0
  21. data/lib/grit/git-ruby/internal/raw_object.rb +37 -0
  22. data/lib/grit/git-ruby/object.rb +319 -0
  23. data/lib/grit/git-ruby/repository.rb +731 -0
  24. data/lib/grit/git.rb +122 -0
  25. data/lib/grit/head.rb +83 -0
  26. data/lib/grit/index.rb +121 -0
  27. data/lib/grit/lazy.rb +33 -0
  28. data/lib/grit/ref.rb +95 -0
  29. data/lib/grit/repo.rb +387 -0
  30. data/lib/grit/status.rb +151 -0
  31. data/lib/grit/tag.rb +71 -0
  32. data/lib/grit/tree.rb +104 -0
  33. data/test/test_actor.rb +35 -0
  34. data/test/test_blob.rb +79 -0
  35. data/test/test_commit.rb +184 -0
  36. data/test/test_config.rb +58 -0
  37. data/test/test_diff.rb +18 -0
  38. data/test/test_git.rb +70 -0
  39. data/test/test_grit.rb +32 -0
  40. data/test/test_head.rb +47 -0
  41. data/test/test_real.rb +19 -0
  42. data/test/test_reality.rb +17 -0
  43. data/test/test_remote.rb +14 -0
  44. data/test/test_repo.rb +277 -0
  45. data/test/test_tag.rb +25 -0
  46. data/test/test_tree.rb +96 -0
  47. metadata +128 -0
data/test/test_tag.rb ADDED
@@ -0,0 +1,25 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+
3
+ class TestTag < Test::Unit::TestCase
4
+ def setup
5
+ @r = Repo.new(GRIT_REPO)
6
+ end
7
+
8
+ # list_from_string
9
+
10
+ def test_list_from_string
11
+ tags = @r.tags
12
+
13
+ assert_equal 1, tags.size
14
+ assert_equal 'v0.7.0', tags.first.name
15
+ assert_equal 'f0055fda16c18fd8b27986dbf038c735b82198d7', tags.first.commit.id
16
+ end
17
+
18
+ # inspect
19
+
20
+ def test_inspect
21
+ tag = @r.tags.first
22
+
23
+ assert_equal %Q{#<Grit::Tag "#{tag.name}">}, tag.inspect
24
+ end
25
+ end
data/test/test_tree.rb ADDED
@@ -0,0 +1,96 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+
3
+ class TestTree < Test::Unit::TestCase
4
+ def setup
5
+ @r = Repo.new(GRIT_REPO)
6
+ @t = Tree.allocate
7
+ end
8
+
9
+ # contents
10
+ def test_nosuch_tree
11
+ t = @r.tree('blahblah')
12
+ assert t.contents.is_a?(Array)
13
+ assert t.is_a?(Tree)
14
+ end
15
+
16
+ def test_contents_should_cache
17
+ Git.any_instance.expects(:ls_tree).returns(
18
+ fixture('ls_tree_a'),
19
+ fixture('ls_tree_b')
20
+ ).times(2)
21
+ tree = @r.tree('master')
22
+
23
+ child = tree.contents.last
24
+
25
+ child.contents
26
+ child.contents
27
+ end
28
+
29
+ # content_from_string
30
+
31
+ def test_content_from_string_tree_should_return_tree
32
+ text = fixture('ls_tree_a').split("\n").last
33
+
34
+ tree = @t.content_from_string(nil, text)
35
+
36
+ assert_equal Tree, tree.class
37
+ assert_equal "650fa3f0c17f1edb4ae53d8dcca4ac59d86e6c44", tree.id
38
+ assert_equal "040000", tree.mode
39
+ assert_equal "test", tree.name
40
+ end
41
+
42
+ def test_content_from_string_tree_should_return_blob
43
+ text = fixture('ls_tree_b').split("\n").first
44
+
45
+ tree = @t.content_from_string(nil, text)
46
+
47
+ assert_equal Blob, tree.class
48
+ assert_equal "aa94e396335d2957ca92606f909e53e7beaf3fbb", tree.id
49
+ assert_equal "100644", tree.mode
50
+ assert_equal "grit.rb", tree.name
51
+ end
52
+
53
+ def test_content_from_string_tree_should_return_submodule
54
+ text = fixture('ls_tree_submodule').split("\n").first
55
+
56
+ sm = @t.content_from_string(nil, text)
57
+
58
+ assert_kind_of Submodule, sm
59
+ end
60
+
61
+ def test_content_from_string_invalid_type_should_raise
62
+ assert_raise(RuntimeError) do
63
+ @t.content_from_string(nil, "040000 bogus 650fa3f0c17f1edb4ae53d8dcca4ac59d86e6c44 test")
64
+ end
65
+ end
66
+
67
+ # /
68
+
69
+ def test_slash
70
+ Git.any_instance.expects(:ls_tree).returns(
71
+ fixture('ls_tree_a')
72
+ )
73
+ tree = @r.tree('master')
74
+
75
+ assert_equal 'aa06ba24b4e3f463b3c4a85469d0fb9e5b421cf8', (tree/'lib').id
76
+ assert_equal '8b1e02c0fb554eed2ce2ef737a68bb369d7527df', (tree/'README.txt').id
77
+ end
78
+
79
+ def test_slash_with_commits
80
+ Git.any_instance.expects(:ls_tree).returns(
81
+ fixture('ls_tree_commit')
82
+ )
83
+ tree = @r.tree('master')
84
+
85
+ assert_equal 'd35b34c6e931b9da8f6941007a92c9c9a9b0141a', (tree/'bar').id
86
+ assert_equal '2afb47bcedf21663580d5e6d2f406f08f3f65f19', (tree/'foo').id
87
+ assert_equal 'f623ee576a09ca491c4a27e48c0dfe04be5f4a2e', (tree/'baz').id
88
+ end
89
+
90
+ # inspect
91
+
92
+ def test_inspect
93
+ @t = Tree.create(@r, :id => 'abc')
94
+ assert_equal %Q{#<Grit::Tree "abc">}, @t.inspect
95
+ end
96
+ end
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pjhyett-grit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.11
5
+ platform: ruby
6
+ authors:
7
+ - Tom Preston-Werner
8
+ - Scott Chacon
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2008-04-24 00:00:00 -07:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: diff-lcs
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: mime-types
27
+ version_requirement:
28
+ version_requirements: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">"
31
+ - !ruby/object:Gem::Version
32
+ version: 0.0.0
33
+ version:
34
+ - !ruby/object:Gem::Dependency
35
+ name: open4
36
+ version_requirement:
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">"
40
+ - !ruby/object:Gem::Version
41
+ version: 0.0.0
42
+ version:
43
+ description: Grit is a Ruby library for extracting information from a git repository in and object oriented manner.
44
+ email: tom@rubyisawesome.com
45
+ executables: []
46
+
47
+ extensions: []
48
+
49
+ extra_rdoc_files:
50
+ - History.txt
51
+ - Manifest.txt
52
+ - README.txt
53
+ files:
54
+ - History.txt
55
+ - Manifest.txt
56
+ - README.txt
57
+ - Rakefile
58
+ - grit.gemspec
59
+ - lib/grit/actor.rb
60
+ - lib/grit/blob.rb
61
+ - lib/grit/commit.rb
62
+ - lib/grit/commit_stats.rb
63
+ - lib/grit/config.rb
64
+ - lib/grit/diff.rb
65
+ - lib/grit/errors.rb
66
+ - lib/grit/git-ruby/commit_db.rb
67
+ - lib/grit/git-ruby/file_index.rb
68
+ - lib/grit/git-ruby/git_object.rb
69
+ - lib/grit/git-ruby/internal
70
+ - lib/grit/git-ruby/internal/loose.rb
71
+ - lib/grit/git-ruby/internal/mmap.rb
72
+ - lib/grit/git-ruby/internal/pack.rb
73
+ - lib/grit/git-ruby/internal/raw_object.rb
74
+ - lib/grit/git-ruby/object.rb
75
+ - lib/grit/git-ruby/repository.rb
76
+ - lib/grit/git-ruby.rb
77
+ - lib/grit/git.rb
78
+ - lib/grit/head.rb
79
+ - lib/grit/index.rb
80
+ - lib/grit/lazy.rb
81
+ - lib/grit/ref.rb
82
+ - lib/grit/repo.rb
83
+ - lib/grit/status.rb
84
+ - lib/grit/tag.rb
85
+ - lib/grit/tree.rb
86
+ - lib/grit.rb
87
+ has_rdoc: true
88
+ homepage: http://github.com/schacon/grit
89
+ post_install_message:
90
+ rdoc_options:
91
+ - --main
92
+ - README.txt
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: "0"
100
+ version:
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: "0"
106
+ version:
107
+ requirements: []
108
+
109
+ rubyforge_project:
110
+ rubygems_version: 1.2.0
111
+ signing_key:
112
+ specification_version: 2
113
+ summary: Object model interface to a git repo
114
+ test_files:
115
+ - test/test_actor.rb
116
+ - test/test_blob.rb
117
+ - test/test_commit.rb
118
+ - test/test_config.rb
119
+ - test/test_diff.rb
120
+ - test/test_git.rb
121
+ - test/test_grit.rb
122
+ - test/test_head.rb
123
+ - test/test_real.rb
124
+ - test/test_reality.rb
125
+ - test/test_remote.rb
126
+ - test/test_repo.rb
127
+ - test/test_tag.rb
128
+ - test/test_tree.rb