git_presenter 0.4.0 → 1.4.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.
- checksums.yaml +7 -0
- data/.travis.yml +4 -0
- data/Gemfile +6 -8
- data/Gemfile.lock +91 -40
- data/README.markdown +21 -8
- data/Rakefile +0 -23
- data/VERSION +1 -1
- data/bin/git-presenter +9 -3
- data/git_presenter.gemspec +30 -41
- data/lib/git_presenter.rb +12 -4
- data/lib/git_presenter/controller.rb +15 -8
- data/lib/git_presenter/presentation.rb +11 -4
- data/lib/git_presenter/shell.rb +5 -0
- data/spec/bugs/max_10_commits_being_parsed_spec.rb +1 -1
- data/spec/integration/initialize_presentation_spec.rb +11 -5
- data/spec/integration/moving_through_presentation_spec.rb +27 -18
- data/spec/integration/start_presentation_spec.rb +5 -5
- data/spec/integration/update_presentation_spec.rb +4 -4
- data/spec/lib/git_presenter/presentation_spec.rb +43 -19
- data/spec/lib/git_presenter/slide_spec.rb +8 -8
- data/spec/support/git_helpers.rb +14 -9
- metadata +56 -65
@@ -4,12 +4,12 @@ describe GitPresenter::Slide do
|
|
4
4
|
context "when displaying as string" do
|
5
5
|
it "should write out the commit id and the message" do
|
6
6
|
slide = GitPresenter::Slide.new({"commit" => "012345678901234567890","message" => "message"})
|
7
|
-
slide.to_s.
|
7
|
+
expect(slide.to_s).to eql "0123456789, message"
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should not blow up if no command exists" do
|
11
11
|
slide = GitPresenter::Slide.new({"run" => "echo hello world"})
|
12
|
-
slide.to_s.
|
12
|
+
expect(slide.to_s).to eql "run: echo hello world"
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
@@ -18,7 +18,7 @@ describe GitPresenter::Slide do
|
|
18
18
|
it "should run that command" do
|
19
19
|
command_line_helper = CommandLineHelper.capture_output
|
20
20
|
slide = GitPresenter::Slide.new({"run" => "echo hello world"})
|
21
|
-
slide.execute.strip.
|
21
|
+
expect(slide.execute.strip).to eql "hello world"
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -27,24 +27,24 @@ describe GitPresenter::Slide do
|
|
27
27
|
command_line_helper = CommandLineHelper.capture_output
|
28
28
|
slide = GitPresenter::Slide.new({"commit" => "number", "message" => "checkout", "run" => "echo hello world"})
|
29
29
|
slide.stub(:checkout).and_return("checkout\n")
|
30
|
-
slide.execute.
|
30
|
+
expect(slide.execute).to eql "checkout\nhello world\n"
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
34
|
context "when slide contains a launch command" do
|
35
35
|
it "should launch the application for the file type" do
|
36
36
|
command_line_helper = CommandLineHelper.capture_output
|
37
|
-
Launchy.
|
37
|
+
expect(Launchy).to receive(:open).with("readme").once
|
38
38
|
slide = GitPresenter::Slide.new({"launch" => "readme"})
|
39
39
|
slide.execute
|
40
40
|
end
|
41
41
|
|
42
42
|
it "should not try and launch if no launch supplied" do
|
43
43
|
command_line_helper = CommandLineHelper.capture_output
|
44
|
-
Launchy.
|
44
|
+
expect(Launchy).to receive(:open).with("readme").never
|
45
45
|
slide = GitPresenter::Slide.new({"commit" => "number", "message" => "checkout", "run" => "echo hello world"})
|
46
46
|
slide.stub(:checkout).and_return("checkout\n")
|
47
|
-
slide.execute.
|
47
|
+
expect(slide.execute).to eql "checkout\nhello world\n"
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
@@ -53,7 +53,7 @@ describe GitPresenter::Slide do
|
|
53
53
|
command_line_helper = CommandLineHelper.capture_output
|
54
54
|
slide = GitPresenter::Slide.new({"commit" => "number", "message" => "checkout"})
|
55
55
|
slide.stub(:checkout).and_return("checkout\n")
|
56
|
-
slide.execute.
|
56
|
+
expect(slide.execute).to eql "checkout\n"
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
data/spec/support/git_helpers.rb
CHANGED
@@ -16,10 +16,10 @@ class GitHelper
|
|
16
16
|
content = ('a'..'z').to_a
|
17
17
|
Dir.mkdir(presentation_dir)
|
18
18
|
Dir.chdir(presentation_dir) do
|
19
|
-
@git_repo =
|
19
|
+
@git_repo = Git.init(".")
|
20
20
|
(1..no_of_commits).each do |n|
|
21
|
-
edit_file_and_commit("commit number #{n}", content[n])
|
22
|
-
commits <<
|
21
|
+
commit = edit_file_and_commit("commit number #{n}", content[n])
|
22
|
+
commits << commit
|
23
23
|
#need to make it sleep for a second.
|
24
24
|
#git is not accurate enough with the speed of the test
|
25
25
|
#to sort correctly only when required
|
@@ -40,7 +40,7 @@ class GitHelper
|
|
40
40
|
edit_file(content)
|
41
41
|
@git_repo.add(".")
|
42
42
|
@git_repo.commit_all(commit_message)
|
43
|
-
@git_repo.
|
43
|
+
@git_repo.log.to_a[0]
|
44
44
|
end
|
45
45
|
|
46
46
|
def setup_presentation_file(commits)
|
@@ -56,7 +56,7 @@ class GitHelper
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def head_position
|
59
|
-
File.open(@presentation_dir + '/.git/HEAD').
|
59
|
+
File.open(@presentation_dir + '/.git/HEAD').each_line.first.strip
|
60
60
|
end
|
61
61
|
|
62
62
|
def initialise_presentation(params={})
|
@@ -71,12 +71,17 @@ class GitHelper
|
|
71
71
|
commits
|
72
72
|
end
|
73
73
|
|
74
|
-
def start_presentation(commands=[])
|
74
|
+
def start_presentation(commands=[], start_slide=0)
|
75
75
|
commits = initialise_presentation({:delay => true})
|
76
76
|
Dir.chdir(@presentation_dir) do
|
77
77
|
add_commands(commands) unless commands.empty?
|
78
|
+
if start_slide != 0
|
79
|
+
`git checkout -q #{commits[start_slide]}`
|
80
|
+
end
|
78
81
|
presenter = GitPresenter.new('.', false)
|
79
|
-
|
82
|
+
if start_slide == 0
|
83
|
+
presenter = presenter.execute('start')
|
84
|
+
end
|
80
85
|
yield(commits, presenter) if block_given?
|
81
86
|
end
|
82
87
|
end
|
@@ -143,8 +148,8 @@ class GitHelper
|
|
143
148
|
|
144
149
|
def current_branch
|
145
150
|
Dir.chdir(PRESENTATION_DIR) do
|
146
|
-
repo =
|
147
|
-
repo.
|
151
|
+
repo = Git.open('.')
|
152
|
+
repo.current_branch
|
148
153
|
end
|
149
154
|
end
|
150
155
|
|
metadata
CHANGED
@@ -1,104 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: git_presenter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 1.4.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Colin Gemmell
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2021-05-01 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
16
|
-
requirement:
|
17
|
-
none: false
|
14
|
+
name: git
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '='
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: 1.8.1
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.8.1
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: launchy
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '='
|
31
32
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
33
|
+
version: 2.5.0
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.5.0
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: pry
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- -
|
45
|
+
- - '='
|
42
46
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
47
|
+
version: 0.14.1
|
44
48
|
type: :development
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.14.1
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: rspec
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - '='
|
53
60
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
61
|
+
version: 3.10.0
|
55
62
|
type: :development
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.10.0
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: bundler
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
|
-
- -
|
73
|
+
- - '='
|
64
74
|
- !ruby/object:Gem::Version
|
65
|
-
version:
|
75
|
+
version: 2.2.3
|
66
76
|
type: :development
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: jeweler
|
71
|
-
requirement: &70174478385540 !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
79
|
requirements:
|
74
|
-
- -
|
80
|
+
- - '='
|
75
81
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: *70174478385540
|
82
|
+
version: 2.2.3
|
80
83
|
- !ruby/object:Gem::Dependency
|
81
|
-
name:
|
82
|
-
requirement:
|
83
|
-
none: false
|
84
|
+
name: jeweler
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
84
86
|
requirements:
|
85
|
-
- -
|
87
|
+
- - '='
|
86
88
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
89
|
+
version: 2.3.5
|
88
90
|
type: :development
|
89
91
|
prerelease: false
|
90
|
-
version_requirements:
|
91
|
-
- !ruby/object:Gem::Dependency
|
92
|
-
name: pry
|
93
|
-
requirement: &70174478102720 !ruby/object:Gem::Requirement
|
94
|
-
none: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
93
|
requirements:
|
96
|
-
- -
|
94
|
+
- - '='
|
97
95
|
- !ruby/object:Gem::Version
|
98
|
-
version:
|
99
|
-
type: :development
|
100
|
-
prerelease: false
|
101
|
-
version_requirements: *70174478102720
|
96
|
+
version: 2.3.5
|
102
97
|
description: Code presentation tool using git
|
103
98
|
email: pythonandchips@gmail.com
|
104
99
|
executables:
|
@@ -108,8 +103,8 @@ extra_rdoc_files:
|
|
108
103
|
- LICENSE.txt
|
109
104
|
- README.markdown
|
110
105
|
files:
|
111
|
-
- .rspec
|
112
|
-
- .travis.yml
|
106
|
+
- ".rspec"
|
107
|
+
- ".travis.yml"
|
113
108
|
- Gemfile
|
114
109
|
- Gemfile.lock
|
115
110
|
- LICENSE.txt
|
@@ -121,6 +116,7 @@ files:
|
|
121
116
|
- lib/git_presenter.rb
|
122
117
|
- lib/git_presenter/controller.rb
|
123
118
|
- lib/git_presenter/presentation.rb
|
119
|
+
- lib/git_presenter/shell.rb
|
124
120
|
- lib/git_presenter/slide.rb
|
125
121
|
- spec/bugs/max_10_commits_being_parsed_spec.rb
|
126
122
|
- spec/integration/initialize_presentation_spec.rb
|
@@ -136,29 +132,24 @@ files:
|
|
136
132
|
homepage: http://github.com/pythonandchips/git-presenter
|
137
133
|
licenses:
|
138
134
|
- MIT
|
135
|
+
metadata: {}
|
139
136
|
post_install_message:
|
140
137
|
rdoc_options: []
|
141
138
|
require_paths:
|
142
139
|
- lib
|
143
140
|
required_ruby_version: !ruby/object:Gem::Requirement
|
144
|
-
none: false
|
145
141
|
requirements:
|
146
|
-
- -
|
142
|
+
- - ">="
|
147
143
|
- !ruby/object:Gem::Version
|
148
144
|
version: '0'
|
149
|
-
segments:
|
150
|
-
- 0
|
151
|
-
hash: -3910658736089827662
|
152
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
146
|
requirements:
|
155
|
-
- -
|
147
|
+
- - ">="
|
156
148
|
- !ruby/object:Gem::Version
|
157
149
|
version: '0'
|
158
150
|
requirements: []
|
159
|
-
|
160
|
-
rubygems_version: 1.8.15
|
151
|
+
rubygems_version: 3.2.3
|
161
152
|
signing_key:
|
162
|
-
specification_version:
|
153
|
+
specification_version: 4
|
163
154
|
summary: Code presentation tool using git
|
164
155
|
test_files: []
|