multi_git 0.0.1.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. data/lib/multi_git/backend.rb +100 -0
  2. data/lib/multi_git/backend_set.rb +42 -0
  3. data/lib/multi_git/blob.rb +52 -0
  4. data/lib/multi_git/builder.rb +19 -0
  5. data/lib/multi_git/commit.rb +185 -0
  6. data/lib/multi_git/directory.rb +67 -0
  7. data/lib/multi_git/error.rb +67 -0
  8. data/lib/multi_git/executeable.rb +12 -0
  9. data/lib/multi_git/file.rb +35 -0
  10. data/lib/multi_git/git_backend/blob.rb +11 -0
  11. data/lib/multi_git/git_backend/cmd.rb +117 -0
  12. data/lib/multi_git/git_backend/commit.rb +75 -0
  13. data/lib/multi_git/git_backend/object.rb +34 -0
  14. data/lib/multi_git/git_backend/ref.rb +36 -0
  15. data/lib/multi_git/git_backend/repository.rb +162 -0
  16. data/lib/multi_git/git_backend/tree.rb +22 -0
  17. data/lib/multi_git/git_backend.rb +19 -0
  18. data/lib/multi_git/handle.rb +33 -0
  19. data/lib/multi_git/jgit_backend/blob.rb +10 -0
  20. data/lib/multi_git/jgit_backend/commit.rb +45 -0
  21. data/lib/multi_git/jgit_backend/object.rb +48 -0
  22. data/lib/multi_git/jgit_backend/ref.rb +117 -0
  23. data/lib/multi_git/jgit_backend/repository.rb +223 -0
  24. data/lib/multi_git/jgit_backend/rewindeable_io.rb +33 -0
  25. data/lib/multi_git/jgit_backend/tree.rb +28 -0
  26. data/lib/multi_git/jgit_backend.rb +15 -0
  27. data/lib/multi_git/object.rb +59 -0
  28. data/lib/multi_git/ref.rb +381 -0
  29. data/lib/multi_git/repository.rb +190 -0
  30. data/lib/multi_git/rugged_backend/blob.rb +8 -0
  31. data/lib/multi_git/rugged_backend/commit.rb +38 -0
  32. data/lib/multi_git/rugged_backend/object.rb +38 -0
  33. data/lib/multi_git/rugged_backend/ref.rb +32 -0
  34. data/lib/multi_git/rugged_backend/repository.rb +160 -0
  35. data/lib/multi_git/rugged_backend/tree.rb +18 -0
  36. data/lib/multi_git/rugged_backend.rb +16 -0
  37. data/lib/multi_git/submodule.rb +7 -0
  38. data/lib/multi_git/symlink.rb +42 -0
  39. data/lib/multi_git/tree/builder.rb +184 -0
  40. data/lib/multi_git/tree.rb +144 -0
  41. data/lib/multi_git/tree_entry.rb +86 -0
  42. data/lib/multi_git/utils.rb +57 -0
  43. data/lib/multi_git/version.rb +3 -0
  44. data/lib/multi_git.rb +44 -0
  45. metadata +138 -0
@@ -0,0 +1,3 @@
1
+ module MultiGit
2
+ VERSION = '0.0.1.alpha1'
3
+ end
data/lib/multi_git.rb ADDED
@@ -0,0 +1,44 @@
1
+ require 'forwardable'
2
+ require 'multi_git/version'
3
+ require 'multi_git/backend'
4
+ require 'multi_git/backend_set'
5
+ require 'multi_git/error'
6
+ require 'multi_git/utils'
7
+ module MultiGit
8
+
9
+ private
10
+
11
+ BACKENDS = BackendSet.new
12
+ BACKENDS[ :git, priority: 0] = GitBackend
13
+ BACKENDS[:rugged, priority: 1] = RuggedBackend
14
+ BACKENDS[ :jgit, priority: 2] = JGitBackend
15
+
16
+ public
17
+
18
+ extend SingleForwardable
19
+
20
+ # @!method best
21
+ # Determines the best available backend..
22
+ # @return [Backend]
23
+ delegate :best => 'MultiGit::BACKENDS'
24
+
25
+ # @!method open( directory, options = {} )
26
+ #
27
+ # Opens a git repository.
28
+ #
29
+ # @example
30
+ # # setup:
31
+ # dir = `mktemp -d`
32
+ # # example:
33
+ # MultiGit.open(dir, init: true) #=> be_a MultiGit::Repository
34
+ # # teardown:
35
+ # `rm -rf #{dir}`
36
+ #
37
+ #
38
+ # @return [Repository]
39
+ #
40
+ # @see Backend
41
+ #
42
+ delegate :open => 'best'
43
+
44
+ end
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: multi_git
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.alpha1
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Hannes Georg
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-04-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: simplecov
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description:
63
+ email: hannes.georg@googlemail.com
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - lib/multi_git/tree.rb
69
+ - lib/multi_git/git_backend.rb
70
+ - lib/multi_git/utils.rb
71
+ - lib/multi_git/backend.rb
72
+ - lib/multi_git/symlink.rb
73
+ - lib/multi_git/executeable.rb
74
+ - lib/multi_git/repository.rb
75
+ - lib/multi_git/object.rb
76
+ - lib/multi_git/git_backend/tree.rb
77
+ - lib/multi_git/git_backend/repository.rb
78
+ - lib/multi_git/git_backend/object.rb
79
+ - lib/multi_git/git_backend/blob.rb
80
+ - lib/multi_git/git_backend/ref.rb
81
+ - lib/multi_git/git_backend/cmd.rb
82
+ - lib/multi_git/git_backend/commit.rb
83
+ - lib/multi_git/jgit_backend.rb
84
+ - lib/multi_git/blob.rb
85
+ - lib/multi_git/ref.rb
86
+ - lib/multi_git/error.rb
87
+ - lib/multi_git/jgit_backend/tree.rb
88
+ - lib/multi_git/jgit_backend/rewindeable_io.rb
89
+ - lib/multi_git/jgit_backend/repository.rb
90
+ - lib/multi_git/jgit_backend/object.rb
91
+ - lib/multi_git/jgit_backend/blob.rb
92
+ - lib/multi_git/jgit_backend/ref.rb
93
+ - lib/multi_git/jgit_backend/commit.rb
94
+ - lib/multi_git/submodule.rb
95
+ - lib/multi_git/file.rb
96
+ - lib/multi_git/rugged_backend/tree.rb
97
+ - lib/multi_git/rugged_backend/repository.rb
98
+ - lib/multi_git/rugged_backend/object.rb
99
+ - lib/multi_git/rugged_backend/blob.rb
100
+ - lib/multi_git/rugged_backend/ref.rb
101
+ - lib/multi_git/rugged_backend/commit.rb
102
+ - lib/multi_git/handle.rb
103
+ - lib/multi_git/backend_set.rb
104
+ - lib/multi_git/version.rb
105
+ - lib/multi_git/rugged_backend.rb
106
+ - lib/multi_git/commit.rb
107
+ - lib/multi_git/tree_entry.rb
108
+ - lib/multi_git/builder.rb
109
+ - lib/multi_git/directory.rb
110
+ - lib/multi_git/tree/builder.rb
111
+ - lib/multi_git.rb
112
+ homepage: https://github.com/hannesg/ridley-git
113
+ licenses: []
114
+ post_install_message:
115
+ rdoc_options: []
116
+ require_paths:
117
+ - lib
118
+ required_ruby_version: !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - '>='
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - '>'
128
+ - !ruby/object:Gem::Version
129
+ version: 1.3.1
130
+ requirements:
131
+ - jar 'org.eclipse.jgit:org.eclipse.jgit'
132
+ rubyforge_project:
133
+ rubygems_version: 1.8.25
134
+ signing_key:
135
+ specification_version: 3
136
+ summary: Use all the gits
137
+ test_files: []
138
+ has_rdoc: