git_wrapper 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +74 -74
- data/git_wrapper.gemspec +21 -21
- data/lib/git_wrapper/commands/add.rb +20 -20
- data/lib/git_wrapper/commands/branch.rb +72 -72
- data/lib/git_wrapper/commands/checkout.rb +20 -20
- data/lib/git_wrapper/commands/commit.rb +20 -20
- data/lib/git_wrapper/commands/config.rb +25 -25
- data/lib/git_wrapper/commands/diff.rb +27 -27
- data/lib/git_wrapper/commands/fetch.rb +20 -20
- data/lib/git_wrapper/commands/git.rb +43 -43
- data/lib/git_wrapper/commands/init.rb +15 -15
- data/lib/git_wrapper/commands/log.rb +81 -81
- data/lib/git_wrapper/commands/merge.rb +15 -15
- data/lib/git_wrapper/commands/pull.rb +20 -20
- data/lib/git_wrapper/commands/push.rb +26 -26
- data/lib/git_wrapper/commands/remote.rb +48 -48
- data/lib/git_wrapper/commands/remove.rb +15 -15
- data/lib/git_wrapper/commands/reset.rb +35 -35
- data/lib/git_wrapper/commands/revert.rb +22 -22
- data/lib/git_wrapper/commands/shell.rb +66 -66
- data/lib/git_wrapper/commands/show.rb +39 -39
- data/lib/git_wrapper/commands/status.rb +16 -16
- data/lib/git_wrapper/commands/tag.rb +53 -53
- data/lib/git_wrapper/repository.rb +208 -208
- data/lib/git_wrapper/results/diff_name_status.rb +27 -27
- data/lib/git_wrapper/results/file_status.rb +21 -21
- data/lib/git_wrapper/results/log_info.rb +22 -22
- data/lib/git_wrapper/results/status_porcelain.rb +39 -39
- data/lib/git_wrapper/version.rb +3 -3
- data/lib/git_wrapper.rb +46 -44
- data/spec/repository_spec.rb +888 -888
- data/spec/spec_helper.rb +9 -9
- data/spec/status_porcelain_parser_spec.rb +86 -86
- data/spec/support/helpers/file_helper.rb +40 -36
- data/spec/support/matchers/git_status_matchers.rb +39 -39
- metadata +17 -7
data/README.md
CHANGED
@@ -1,74 +1,74 @@
|
|
1
|
-
# GitWrapper
|
2
|
-
|
3
|
-
OO git command line wrapper
|
4
|
-
|
5
|
-
## Installation
|
6
|
-
|
7
|
-
Add this line to your application's Gemfile:
|
8
|
-
|
9
|
-
gem 'git_wrapper'
|
10
|
-
|
11
|
-
And then execute:
|
12
|
-
|
13
|
-
$ bundle
|
14
|
-
|
15
|
-
Or install it yourself as:
|
16
|
-
|
17
|
-
$ gem install git_wrapper
|
18
|
-
|
19
|
-
## Requirments
|
20
|
-
|
21
|
-
Git client must be installed and inculded in system path
|
22
|
-
|
23
|
-
## Usage
|
24
|
-
|
25
|
-
### Example
|
26
|
-
|
27
|
-
repo = Repository.new(folder_name)
|
28
|
-
|
29
|
-
repo.init
|
30
|
-
# or
|
31
|
-
repo.init_bare
|
32
|
-
|
33
|
-
repo.add 'file_name'
|
34
|
-
# or
|
35
|
-
repo.add_all
|
36
|
-
|
37
|
-
repo.status
|
38
|
-
|
39
|
-
repo.commit 'message'
|
40
|
-
|
41
|
-
repo.add_remote 'origin', 'git@localhost:repo.git'
|
42
|
-
|
43
|
-
repo.push 'origin', 'master'
|
44
|
-
|
45
|
-
### Supported commands
|
46
|
-
|
47
|
-
- Add
|
48
|
-
- Branch
|
49
|
-
- Checkout
|
50
|
-
- Commit
|
51
|
-
- Config
|
52
|
-
- Diff
|
53
|
-
- Fecht
|
54
|
-
- Init
|
55
|
-
- Log
|
56
|
-
- Merge
|
57
|
-
- Pull
|
58
|
-
- Push
|
59
|
-
- Remote
|
60
|
-
- Remove
|
61
|
-
- Reset
|
62
|
-
- Revert
|
63
|
-
- Show
|
64
|
-
- Status
|
65
|
-
- Tag
|
66
|
-
|
67
|
-
|
68
|
-
## Contributing
|
69
|
-
|
70
|
-
1. Fork it
|
71
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
72
|
-
3. Commit your changes (`git commit -am 'Added some feature'`)
|
73
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
74
|
-
5. Create new Pull Request
|
1
|
+
# GitWrapper
|
2
|
+
|
3
|
+
OO git command line wrapper
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'git_wrapper'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself as:
|
16
|
+
|
17
|
+
$ gem install git_wrapper
|
18
|
+
|
19
|
+
## Requirments
|
20
|
+
|
21
|
+
Git client must be installed and inculded in system path
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
### Example
|
26
|
+
|
27
|
+
repo = Repository.new(folder_name)
|
28
|
+
|
29
|
+
repo.init
|
30
|
+
# or
|
31
|
+
repo.init_bare
|
32
|
+
|
33
|
+
repo.add 'file_name'
|
34
|
+
# or
|
35
|
+
repo.add_all
|
36
|
+
|
37
|
+
repo.status
|
38
|
+
|
39
|
+
repo.commit 'message'
|
40
|
+
|
41
|
+
repo.add_remote 'origin', 'git@localhost:repo.git'
|
42
|
+
|
43
|
+
repo.push 'origin', 'master'
|
44
|
+
|
45
|
+
### Supported commands
|
46
|
+
|
47
|
+
- Add
|
48
|
+
- Branch
|
49
|
+
- Checkout
|
50
|
+
- Commit
|
51
|
+
- Config
|
52
|
+
- Diff
|
53
|
+
- Fecht
|
54
|
+
- Init
|
55
|
+
- Log
|
56
|
+
- Merge
|
57
|
+
- Pull
|
58
|
+
- Push
|
59
|
+
- Remote
|
60
|
+
- Remove
|
61
|
+
- Reset
|
62
|
+
- Revert
|
63
|
+
- Show
|
64
|
+
- Status
|
65
|
+
- Tag
|
66
|
+
|
67
|
+
|
68
|
+
## Contributing
|
69
|
+
|
70
|
+
1. Fork it
|
71
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
72
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
73
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
74
|
+
5. Create new Pull Request
|
data/git_wrapper.gemspec
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
$:.push File.expand_path("../lib", __FILE__)
|
3
|
-
require "git_wrapper/version"
|
4
|
-
|
5
|
-
Gem::Specification.new do |s|
|
6
|
-
s.name = 'git_wrapper'
|
7
|
-
s.version = GitWrapper::VERSION
|
8
|
-
s.authors = ['Gabriel Naiman']
|
9
|
-
s.email = ['gabynaiman@gmail.com']
|
10
|
-
s.homepage = 'https://github.com/gabynaiman/git_wrapper'
|
11
|
-
s.summary = 'OO git command line wrapper'
|
12
|
-
s.description = 'OO git command line wrapper'
|
13
|
-
|
14
|
-
s.files = `git ls-files`.split("\n")
|
15
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
|
-
s.require_paths = ["lib"]
|
18
|
-
|
19
|
-
s.add_runtime_dependency 'nokogiri'
|
20
|
-
s.add_development_dependency 'rspec'
|
21
|
-
end
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "git_wrapper/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = 'git_wrapper'
|
7
|
+
s.version = GitWrapper::VERSION
|
8
|
+
s.authors = ['Gabriel Naiman']
|
9
|
+
s.email = ['gabynaiman@gmail.com']
|
10
|
+
s.homepage = 'https://github.com/gabynaiman/git_wrapper'
|
11
|
+
s.summary = 'OO git command line wrapper'
|
12
|
+
s.description = 'OO git command line wrapper'
|
13
|
+
|
14
|
+
s.files = `git ls-files`.split("\n")
|
15
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
|
19
|
+
s.add_runtime_dependency 'nokogiri'
|
20
|
+
s.add_development_dependency 'rspec'
|
21
|
+
end
|
@@ -1,21 +1,21 @@
|
|
1
|
-
module GitWrapper
|
2
|
-
module Commands
|
3
|
-
class Add < Git
|
4
|
-
|
5
|
-
def all
|
6
|
-
@file = '-A'
|
7
|
-
self
|
8
|
-
end
|
9
|
-
|
10
|
-
def file(file_name)
|
11
|
-
@file = to_relative_path(file_name)
|
12
|
-
self
|
13
|
-
end
|
14
|
-
|
15
|
-
def command
|
16
|
-
"add \"#{@file}\""
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
1
|
+
module GitWrapper
|
2
|
+
module Commands
|
3
|
+
class Add < Git
|
4
|
+
|
5
|
+
def all
|
6
|
+
@file = '-A'
|
7
|
+
self
|
8
|
+
end
|
9
|
+
|
10
|
+
def file(file_name)
|
11
|
+
@file = to_relative_path(file_name)
|
12
|
+
self
|
13
|
+
end
|
14
|
+
|
15
|
+
def command
|
16
|
+
"add \"#{@file}\""
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
21
|
end
|
@@ -1,73 +1,73 @@
|
|
1
|
-
module GitWrapper
|
2
|
-
module Commands
|
3
|
-
class Branch < Git
|
4
|
-
|
5
|
-
def create(name)
|
6
|
-
@mode = :create
|
7
|
-
@name = name
|
8
|
-
self
|
9
|
-
end
|
10
|
-
|
11
|
-
def from(commit)
|
12
|
-
@commit = commit
|
13
|
-
self
|
14
|
-
end
|
15
|
-
|
16
|
-
def remove(name)
|
17
|
-
@mode = :remove
|
18
|
-
@name = name
|
19
|
-
self
|
20
|
-
end
|
21
|
-
|
22
|
-
def remote(remote)
|
23
|
-
@remote = remote
|
24
|
-
self
|
25
|
-
end
|
26
|
-
|
27
|
-
def list
|
28
|
-
@mode = :list
|
29
|
-
self
|
30
|
-
end
|
31
|
-
|
32
|
-
def current
|
33
|
-
@mode = :current
|
34
|
-
self
|
35
|
-
end
|
36
|
-
|
37
|
-
def command
|
38
|
-
command = 'branch '
|
39
|
-
|
40
|
-
if @mode == :create
|
41
|
-
command += "#{@name} #{@commit.nil? ? '' : @commit}"
|
42
|
-
elsif @mode == :remove
|
43
|
-
if @remote.nil?
|
44
|
-
command += "-D #{@name}"
|
45
|
-
else
|
46
|
-
command = "push #{@remote} --delete #{@name}"
|
47
|
-
end
|
48
|
-
elsif @mode == :list || @mode == :current
|
49
|
-
command += '-a'
|
50
|
-
else
|
51
|
-
raise 'Unespecified branch mode'
|
52
|
-
end
|
53
|
-
|
54
|
-
command
|
55
|
-
end
|
56
|
-
|
57
|
-
def result
|
58
|
-
return result_list if @mode == :list
|
59
|
-
return result_current if @mode == :current
|
60
|
-
super
|
61
|
-
end
|
62
|
-
|
63
|
-
def result_list
|
64
|
-
output.split("\n").map{|b| b[2..b.length]}
|
65
|
-
end
|
66
|
-
|
67
|
-
def result_current
|
68
|
-
output.split("\n").select{|b| b.start_with?('*')}.map{|b| b[2..b.length]}.first
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
72
|
-
end
|
1
|
+
module GitWrapper
|
2
|
+
module Commands
|
3
|
+
class Branch < Git
|
4
|
+
|
5
|
+
def create(name)
|
6
|
+
@mode = :create
|
7
|
+
@name = name
|
8
|
+
self
|
9
|
+
end
|
10
|
+
|
11
|
+
def from(commit)
|
12
|
+
@commit = commit
|
13
|
+
self
|
14
|
+
end
|
15
|
+
|
16
|
+
def remove(name)
|
17
|
+
@mode = :remove
|
18
|
+
@name = name
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
def remote(remote)
|
23
|
+
@remote = remote
|
24
|
+
self
|
25
|
+
end
|
26
|
+
|
27
|
+
def list
|
28
|
+
@mode = :list
|
29
|
+
self
|
30
|
+
end
|
31
|
+
|
32
|
+
def current
|
33
|
+
@mode = :current
|
34
|
+
self
|
35
|
+
end
|
36
|
+
|
37
|
+
def command
|
38
|
+
command = 'branch '
|
39
|
+
|
40
|
+
if @mode == :create
|
41
|
+
command += "#{@name} #{@commit.nil? ? '' : @commit}"
|
42
|
+
elsif @mode == :remove
|
43
|
+
if @remote.nil?
|
44
|
+
command += "-D #{@name}"
|
45
|
+
else
|
46
|
+
command = "push #{@remote} --delete #{@name}"
|
47
|
+
end
|
48
|
+
elsif @mode == :list || @mode == :current
|
49
|
+
command += '-a'
|
50
|
+
else
|
51
|
+
raise 'Unespecified branch mode'
|
52
|
+
end
|
53
|
+
|
54
|
+
command
|
55
|
+
end
|
56
|
+
|
57
|
+
def result
|
58
|
+
return result_list if @mode == :list
|
59
|
+
return result_current if @mode == :current
|
60
|
+
super
|
61
|
+
end
|
62
|
+
|
63
|
+
def result_list
|
64
|
+
output.split("\n").map{|b| b[2..b.length]}
|
65
|
+
end
|
66
|
+
|
67
|
+
def result_current
|
68
|
+
output.split("\n").select{|b| b.start_with?('*')}.map{|b| b[2..b.length]}.first
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
end
|
73
73
|
end
|
@@ -1,21 +1,21 @@
|
|
1
|
-
module GitWrapper
|
2
|
-
module Commands
|
3
|
-
class Checkout < Git
|
4
|
-
|
5
|
-
def commit(commit)
|
6
|
-
@commit = commit
|
7
|
-
self
|
8
|
-
end
|
9
|
-
|
10
|
-
def into(new_branch)
|
11
|
-
@new_branch = new_branch
|
12
|
-
self
|
13
|
-
end
|
14
|
-
|
15
|
-
def command
|
16
|
-
"checkout #{@commit} #{@new_branch.nil? ? '' : "-b #{@new_branch}" }"
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
1
|
+
module GitWrapper
|
2
|
+
module Commands
|
3
|
+
class Checkout < Git
|
4
|
+
|
5
|
+
def commit(commit)
|
6
|
+
@commit = commit
|
7
|
+
self
|
8
|
+
end
|
9
|
+
|
10
|
+
def into(new_branch)
|
11
|
+
@new_branch = new_branch
|
12
|
+
self
|
13
|
+
end
|
14
|
+
|
15
|
+
def command
|
16
|
+
"checkout #{@commit} #{@new_branch.nil? ? '' : "-b #{@new_branch}" }"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
21
|
end
|
@@ -1,21 +1,21 @@
|
|
1
|
-
module GitWrapper
|
2
|
-
module Commands
|
3
|
-
class Commit < Git
|
4
|
-
|
5
|
-
def message(message)
|
6
|
-
@message = message
|
7
|
-
self
|
8
|
-
end
|
9
|
-
|
10
|
-
def author(name, email)
|
11
|
-
@author = "#{name} <#{email}>"
|
12
|
-
self
|
13
|
-
end
|
14
|
-
|
15
|
-
def command
|
16
|
-
"commit -m \"#{@message}\" #{@author ? "--author \"#{@author}\"" : ''}"
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
1
|
+
module GitWrapper
|
2
|
+
module Commands
|
3
|
+
class Commit < Git
|
4
|
+
|
5
|
+
def message(message)
|
6
|
+
@message = message
|
7
|
+
self
|
8
|
+
end
|
9
|
+
|
10
|
+
def author(name, email)
|
11
|
+
@author = "#{name} <#{email}>"
|
12
|
+
self
|
13
|
+
end
|
14
|
+
|
15
|
+
def command
|
16
|
+
"commit -m \"#{@message}\" #{@author ? "--author \"#{@author}\"" : ''}"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
21
|
end
|
@@ -1,26 +1,26 @@
|
|
1
|
-
module GitWrapper
|
2
|
-
module Commands
|
3
|
-
class Config < Git
|
4
|
-
|
5
|
-
def key(key)
|
6
|
-
@key = key
|
7
|
-
self
|
8
|
-
end
|
9
|
-
|
10
|
-
def value(value)
|
11
|
-
@value = value
|
12
|
-
self
|
13
|
-
end
|
14
|
-
|
15
|
-
def command
|
16
|
-
"config #{@key} #{@value}"
|
17
|
-
end
|
18
|
-
|
19
|
-
def result
|
20
|
-
return @success if @value || !@success
|
21
|
-
@output[0..(@output.length - 2)].strip
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|
1
|
+
module GitWrapper
|
2
|
+
module Commands
|
3
|
+
class Config < Git
|
4
|
+
|
5
|
+
def key(key)
|
6
|
+
@key = key
|
7
|
+
self
|
8
|
+
end
|
9
|
+
|
10
|
+
def value(value)
|
11
|
+
@value = value
|
12
|
+
self
|
13
|
+
end
|
14
|
+
|
15
|
+
def command
|
16
|
+
"config #{@key} #{@value}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def result
|
20
|
+
return @success if @value || !@success
|
21
|
+
@output[0..(@output.length - 2)].strip
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
26
|
end
|
@@ -1,27 +1,27 @@
|
|
1
|
-
module GitWrapper
|
2
|
-
module Commands
|
3
|
-
class Diff < Git
|
4
|
-
|
5
|
-
def with(commit)
|
6
|
-
@commit = commit
|
7
|
-
self
|
8
|
-
end
|
9
|
-
|
10
|
-
def reverse
|
11
|
-
@reverse = true
|
12
|
-
self
|
13
|
-
end
|
14
|
-
|
15
|
-
def command
|
16
|
-
"diff #{@commit}#{@reverse ? ' -R ' : ''} --name-status"
|
17
|
-
end
|
18
|
-
|
19
|
-
def result
|
20
|
-
output.split(/\n/).map do |line|
|
21
|
-
Results::DiffNameStatus.parse(line)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
1
|
+
module GitWrapper
|
2
|
+
module Commands
|
3
|
+
class Diff < Git
|
4
|
+
|
5
|
+
def with(commit)
|
6
|
+
@commit = commit
|
7
|
+
self
|
8
|
+
end
|
9
|
+
|
10
|
+
def reverse
|
11
|
+
@reverse = true
|
12
|
+
self
|
13
|
+
end
|
14
|
+
|
15
|
+
def command
|
16
|
+
"diff #{@commit}#{@reverse ? ' -R ' : ''} --name-status"
|
17
|
+
end
|
18
|
+
|
19
|
+
def result
|
20
|
+
output.split(/\n/).map do |line|
|
21
|
+
Results::DiffNameStatus.parse(line)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -1,21 +1,21 @@
|
|
1
|
-
module GitWrapper
|
2
|
-
module Commands
|
3
|
-
class Fetch < Git
|
4
|
-
|
5
|
-
def remote(remote)
|
6
|
-
@remote = remote
|
7
|
-
self
|
8
|
-
end
|
9
|
-
|
10
|
-
def all
|
11
|
-
@remote = '--all'
|
12
|
-
self
|
13
|
-
end
|
14
|
-
|
15
|
-
def command
|
16
|
-
"fetch #{@remote}"
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
1
|
+
module GitWrapper
|
2
|
+
module Commands
|
3
|
+
class Fetch < Git
|
4
|
+
|
5
|
+
def remote(remote)
|
6
|
+
@remote = remote
|
7
|
+
self
|
8
|
+
end
|
9
|
+
|
10
|
+
def all
|
11
|
+
@remote = '--all'
|
12
|
+
self
|
13
|
+
end
|
14
|
+
|
15
|
+
def command
|
16
|
+
"fetch #{@remote}"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
21
|
end
|