git_wrapper 1.0.2 → 1.0.3
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.
- 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/spec/spec_helper.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
require 'git_wrapper'
|
2
|
-
|
3
|
-
include GitWrapper
|
4
|
-
include GitWrapper::Results
|
5
|
-
|
6
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
7
|
-
|
8
|
-
RSpec.configure do |config|
|
9
|
-
|
1
|
+
require 'git_wrapper'
|
2
|
+
|
3
|
+
include GitWrapper
|
4
|
+
include GitWrapper::Results
|
5
|
+
|
6
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
7
|
+
|
8
|
+
RSpec.configure do |config|
|
9
|
+
|
10
10
|
end
|
@@ -1,87 +1,87 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe GitWrapper, '-> Status porcelain parser' do
|
4
|
-
|
5
|
-
it 'Untracked file' do
|
6
|
-
text = '?? file.txt'
|
7
|
-
file_status = StatusPorcelain.parse(text)
|
8
|
-
|
9
|
-
file_status.file_name.should eq('file.txt')
|
10
|
-
file_status.status.should be(:untracked)
|
11
|
-
file_status.staged_for_commit.should be_false
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'New file' do
|
15
|
-
text = 'A file.txt'
|
16
|
-
file_status = StatusPorcelain.parse(text)
|
17
|
-
|
18
|
-
file_status.file_name.should eq('file.txt')
|
19
|
-
file_status.status.should be(:new_file)
|
20
|
-
file_status.staged_for_commit.should be_true
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'Modified' do
|
24
|
-
text = ' M file.txt'
|
25
|
-
file_status = StatusPorcelain.parse(text)
|
26
|
-
|
27
|
-
file_status.file_name.should eq('file.txt')
|
28
|
-
file_status.status.should be(:modified)
|
29
|
-
file_status.staged_for_commit.should be_false
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'Modified and staged for commit' do
|
33
|
-
text = 'M file.txt'
|
34
|
-
file_status = StatusPorcelain.parse(text)
|
35
|
-
|
36
|
-
file_status.file_name.should eq('file.txt')
|
37
|
-
file_status.status.should be(:modified)
|
38
|
-
file_status.staged_for_commit.should be_true
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'Deleted' do
|
42
|
-
text = ' D file.txt'
|
43
|
-
file_status = StatusPorcelain.parse(text)
|
44
|
-
|
45
|
-
file_status.file_name.should eq('file.txt')
|
46
|
-
file_status.status.should be(:deleted)
|
47
|
-
file_status.staged_for_commit.should be_false
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'Deleted and staged for commit' do
|
51
|
-
text = 'D file.txt'
|
52
|
-
file_status = StatusPorcelain.parse(text)
|
53
|
-
|
54
|
-
file_status.file_name.should eq('file.txt')
|
55
|
-
file_status.status.should be(:deleted)
|
56
|
-
file_status.staged_for_commit.should be_true
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'Merge conflict (UU)' do
|
60
|
-
text = 'UU file.txt'
|
61
|
-
file_status = StatusPorcelain.parse(text)
|
62
|
-
|
63
|
-
file_status.file_name.should eq('file.txt')
|
64
|
-
file_status.status.should be(:merge_conflict)
|
65
|
-
file_status.staged_for_commit.should be_false
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'Merge conflict (AA)' do
|
69
|
-
text = 'AA file.txt'
|
70
|
-
file_status = StatusPorcelain.parse(text)
|
71
|
-
|
72
|
-
file_status.file_name.should eq('file.txt')
|
73
|
-
file_status.status.should be(:merge_conflict)
|
74
|
-
file_status.staged_for_commit.should be_false
|
75
|
-
end
|
76
|
-
|
77
|
-
it 'Renamed' do
|
78
|
-
text = 'R file.txt -> new_file.txt'
|
79
|
-
file_status = StatusPorcelain.parse(text)
|
80
|
-
|
81
|
-
file_status.file_name.should eq('new_file.txt')
|
82
|
-
file_status.original_file_name.should eq('file.txt')
|
83
|
-
file_status.status.should be(:renamed)
|
84
|
-
file_status.staged_for_commit.should be_true
|
85
|
-
end
|
86
|
-
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GitWrapper, '-> Status porcelain parser' do
|
4
|
+
|
5
|
+
it 'Untracked file' do
|
6
|
+
text = '?? file.txt'
|
7
|
+
file_status = StatusPorcelain.parse(text)
|
8
|
+
|
9
|
+
file_status.file_name.should eq('file.txt')
|
10
|
+
file_status.status.should be(:untracked)
|
11
|
+
file_status.staged_for_commit.should be_false
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'New file' do
|
15
|
+
text = 'A file.txt'
|
16
|
+
file_status = StatusPorcelain.parse(text)
|
17
|
+
|
18
|
+
file_status.file_name.should eq('file.txt')
|
19
|
+
file_status.status.should be(:new_file)
|
20
|
+
file_status.staged_for_commit.should be_true
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'Modified' do
|
24
|
+
text = ' M file.txt'
|
25
|
+
file_status = StatusPorcelain.parse(text)
|
26
|
+
|
27
|
+
file_status.file_name.should eq('file.txt')
|
28
|
+
file_status.status.should be(:modified)
|
29
|
+
file_status.staged_for_commit.should be_false
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'Modified and staged for commit' do
|
33
|
+
text = 'M file.txt'
|
34
|
+
file_status = StatusPorcelain.parse(text)
|
35
|
+
|
36
|
+
file_status.file_name.should eq('file.txt')
|
37
|
+
file_status.status.should be(:modified)
|
38
|
+
file_status.staged_for_commit.should be_true
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'Deleted' do
|
42
|
+
text = ' D file.txt'
|
43
|
+
file_status = StatusPorcelain.parse(text)
|
44
|
+
|
45
|
+
file_status.file_name.should eq('file.txt')
|
46
|
+
file_status.status.should be(:deleted)
|
47
|
+
file_status.staged_for_commit.should be_false
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'Deleted and staged for commit' do
|
51
|
+
text = 'D file.txt'
|
52
|
+
file_status = StatusPorcelain.parse(text)
|
53
|
+
|
54
|
+
file_status.file_name.should eq('file.txt')
|
55
|
+
file_status.status.should be(:deleted)
|
56
|
+
file_status.staged_for_commit.should be_true
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'Merge conflict (UU)' do
|
60
|
+
text = 'UU file.txt'
|
61
|
+
file_status = StatusPorcelain.parse(text)
|
62
|
+
|
63
|
+
file_status.file_name.should eq('file.txt')
|
64
|
+
file_status.status.should be(:merge_conflict)
|
65
|
+
file_status.staged_for_commit.should be_false
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'Merge conflict (AA)' do
|
69
|
+
text = 'AA file.txt'
|
70
|
+
file_status = StatusPorcelain.parse(text)
|
71
|
+
|
72
|
+
file_status.file_name.should eq('file.txt')
|
73
|
+
file_status.status.should be(:merge_conflict)
|
74
|
+
file_status.staged_for_commit.should be_false
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'Renamed' do
|
78
|
+
text = 'R file.txt -> new_file.txt'
|
79
|
+
file_status = StatusPorcelain.parse(text)
|
80
|
+
|
81
|
+
file_status.file_name.should eq('new_file.txt')
|
82
|
+
file_status.original_file_name.should eq('file.txt')
|
83
|
+
file_status.status.should be(:renamed)
|
84
|
+
file_status.staged_for_commit.should be_true
|
85
|
+
end
|
86
|
+
|
87
87
|
end
|
@@ -1,37 +1,41 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
|
3
|
-
class FileHelper
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
@temp_folders = []
|
7
|
-
end
|
8
|
-
|
9
|
-
def create_temp_folder
|
10
|
-
folder_name = "#{
|
11
|
-
@temp_folders << folder_name
|
12
|
-
|
13
|
-
folder_name
|
14
|
-
end
|
15
|
-
|
16
|
-
def remove_temp_folders
|
17
|
-
@temp_folders.each do |folder_name|
|
18
|
-
FileUtils.rm_rf folder_name
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def create_temp_file(folder, content)
|
23
|
-
file_name = "#{folder}/file #{timestamp}.txt"
|
24
|
-
sleep(0.01)
|
25
|
-
File.open(file_name, 'w') do |file|
|
26
|
-
file.puts content
|
27
|
-
end
|
28
|
-
file_name
|
29
|
-
end
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
def
|
34
|
-
(
|
35
|
-
end
|
36
|
-
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
class FileHelper
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@temp_folders = []
|
7
|
+
end
|
8
|
+
|
9
|
+
def create_temp_folder
|
10
|
+
folder_name = "#{temp_path}/#{timestamp}"
|
11
|
+
@temp_folders << folder_name
|
12
|
+
FileUtils.mkpath folder_name
|
13
|
+
folder_name
|
14
|
+
end
|
15
|
+
|
16
|
+
def remove_temp_folders
|
17
|
+
@temp_folders.each do |folder_name|
|
18
|
+
FileUtils.rm_rf folder_name
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_temp_file(folder, content)
|
23
|
+
file_name = "#{folder}/file #{timestamp}.txt"
|
24
|
+
sleep(0.01)
|
25
|
+
File.open(file_name, 'w') do |file|
|
26
|
+
file.puts content
|
27
|
+
end
|
28
|
+
file_name
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def temp_path
|
34
|
+
Pathname.new("#{File.dirname(__FILE__)}/../../tmp").expand_path.to_s
|
35
|
+
end
|
36
|
+
|
37
|
+
def timestamp
|
38
|
+
(Time.now.to_f * 1000).to_i
|
39
|
+
end
|
40
|
+
|
37
41
|
end
|
@@ -1,40 +1,40 @@
|
|
1
|
-
RSpec::Matchers.define :eq_git_status do |expected|
|
2
|
-
match do |actual|
|
3
|
-
(expected[:file_name].nil? || actual.file_name == expected[:file_name]) &&
|
4
|
-
(expected[:original_file_name].nil? || actual.original_file_name == expected[:original_file_name]) &&
|
5
|
-
(expected[:status].nil? || actual.status == expected[:status]) &&
|
6
|
-
(expected[:staged_for_commit].nil? || actual.staged_for_commit == expected[:staged_for_commit])
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
RSpec::Matchers.define :be_git_untracked do |expected_file_name|
|
11
|
-
match do |actual|
|
12
|
-
actual.file_name == expected_file_name &&
|
13
|
-
actual.status == :untracked &&
|
14
|
-
!actual.staged_for_commit
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
RSpec::Matchers.define :be_git_new_file do |expected_file_name|
|
19
|
-
match do |actual|
|
20
|
-
actual.file_name == expected_file_name &&
|
21
|
-
actual.status == :new_file &&
|
22
|
-
actual.staged_for_commit
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
RSpec::Matchers.define :be_git_deleted do |expected_file_name|
|
27
|
-
match do |actual|
|
28
|
-
actual.file_name == expected_file_name &&
|
29
|
-
actual.status == :deleted &&
|
30
|
-
actual.staged_for_commit
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
RSpec::Matchers.define :be_git_merge_conflict do |expected_file_name|
|
35
|
-
match do |actual|
|
36
|
-
actual.file_name == expected_file_name &&
|
37
|
-
actual.status == :merge_conflict &&
|
38
|
-
!actual.staged_for_commit
|
39
|
-
end
|
1
|
+
RSpec::Matchers.define :eq_git_status do |expected|
|
2
|
+
match do |actual|
|
3
|
+
(expected[:file_name].nil? || actual.file_name == expected[:file_name]) &&
|
4
|
+
(expected[:original_file_name].nil? || actual.original_file_name == expected[:original_file_name]) &&
|
5
|
+
(expected[:status].nil? || actual.status == expected[:status]) &&
|
6
|
+
(expected[:staged_for_commit].nil? || actual.staged_for_commit == expected[:staged_for_commit])
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
RSpec::Matchers.define :be_git_untracked do |expected_file_name|
|
11
|
+
match do |actual|
|
12
|
+
actual.file_name == expected_file_name &&
|
13
|
+
actual.status == :untracked &&
|
14
|
+
!actual.staged_for_commit
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
RSpec::Matchers.define :be_git_new_file do |expected_file_name|
|
19
|
+
match do |actual|
|
20
|
+
actual.file_name == expected_file_name &&
|
21
|
+
actual.status == :new_file &&
|
22
|
+
actual.staged_for_commit
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
RSpec::Matchers.define :be_git_deleted do |expected_file_name|
|
27
|
+
match do |actual|
|
28
|
+
actual.file_name == expected_file_name &&
|
29
|
+
actual.status == :deleted &&
|
30
|
+
actual.staged_for_commit
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
RSpec::Matchers.define :be_git_merge_conflict do |expected_file_name|
|
35
|
+
match do |actual|
|
36
|
+
actual.file_name == expected_file_name &&
|
37
|
+
actual.status == :merge_conflict &&
|
38
|
+
!actual.staged_for_commit
|
39
|
+
end
|
40
40
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rspec
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,7 +37,12 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
description: OO git command line wrapper
|
37
47
|
email:
|
38
48
|
- gabynaiman@gmail.com
|
@@ -98,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
108
|
version: '0'
|
99
109
|
requirements: []
|
100
110
|
rubyforge_project:
|
101
|
-
rubygems_version: 1.8.
|
111
|
+
rubygems_version: 1.8.24
|
102
112
|
signing_key:
|
103
113
|
specification_version: 3
|
104
114
|
summary: OO git command line wrapper
|