git_presenter 0.4.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 16d1088ab5afeafb7357fb67a07d0b80c29715b75f0e90ba7fcc549f58cdeb84
4
+ data.tar.gz: fe4948246f729b01c8678e11f03f8bdbd979b3988d896edd7142c35dd3c23ec8
5
+ SHA512:
6
+ metadata.gz: ab27a51ae79c16e0dc42775ecec088f135b405864487e44dcb01a35345711374e4614a5b9d3a83aac5bdd5cc1ce57f358fa48cf6bff9d8c1e3f484433f6cdbf0
7
+ data.tar.gz: 9ccf1f24f2d908b2fb1b98b4936a027cae95f29d1f933a36b3df22e9bab20574e0e78a434f4d5ff4adfa185f6540e2bee13056694ca79cb04926759b59c7ba24
data/.travis.yml CHANGED
@@ -2,4 +2,8 @@ language: ruby
2
2
  rvm:
3
3
  - 1.9.2
4
4
  - 1.9.3
5
+ - 2.0.0
6
+ - 2.1.0
7
+ - 3.0.0
5
8
  # - jruby-19mode # JRuby in 1.9 mode
9
+ script: "bundle exec rspec spec"
data/Gemfile CHANGED
@@ -3,16 +3,14 @@ source "http://rubygems.org"
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
  #
6
- gem "grit", "~> 2.4"
7
- gem "launchy", "~> 2.1"
6
+ gem "git", "1.8.1"
7
+ gem 'launchy', "2.5.0"
8
8
 
9
9
  # Add dependencies to develop your gem here.
10
10
  # Include everything needed to run rake, tests, features, etc.
11
11
  group :development do
12
- gem "pry"
13
- gem "rspec", "~> 2.7"
14
- gem "bundler"
15
- gem "jeweler", "~> 1.6"
16
- gem "rcov", "~> 0.9"
17
- gem 'pry'
12
+ gem "pry", "0.14.1"
13
+ gem "rspec", "3.10.0"
14
+ gem "bundler", "2.2.3"
15
+ gem 'jeweler', "2.3.5"
18
16
  end
data/Gemfile.lock CHANGED
@@ -1,51 +1,102 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- addressable (2.2.8)
5
- coderay (1.0.6)
6
- diff-lcs (1.1.3)
7
- git (1.2.5)
8
- grit (2.5.0)
9
- diff-lcs (~> 1.1)
10
- mime-types (~> 1.15)
11
- posix-spawn (~> 0.3.6)
12
- jeweler (1.8.3)
13
- bundler (~> 1.0)
4
+ addressable (2.7.0)
5
+ public_suffix (>= 2.0.2, < 5.0)
6
+ builder (3.2.4)
7
+ coderay (1.1.3)
8
+ descendants_tracker (0.0.4)
9
+ thread_safe (~> 0.3, >= 0.3.1)
10
+ diff-lcs (1.4.4)
11
+ faraday (0.9.2)
12
+ multipart-post (>= 1.2, < 3)
13
+ ffi (1.15.0-java)
14
+ git (1.8.1)
15
+ rchardet (~> 1.8)
16
+ github_api (0.11.3)
17
+ addressable (~> 2.3)
18
+ descendants_tracker (~> 0.0.1)
19
+ faraday (~> 0.8, < 0.10)
20
+ hashie (>= 1.2)
21
+ multi_json (>= 1.7.5, < 2.0)
22
+ nokogiri (~> 1.6.0)
23
+ oauth2
24
+ hashie (4.1.0)
25
+ highline (2.0.3)
26
+ jar-dependencies (0.4.1)
27
+ jeweler (2.3.5)
28
+ builder
29
+ bundler (>= 1.0)
14
30
  git (>= 1.2.5)
31
+ github_api (~> 0.11.0)
32
+ highline (>= 1.6.15)
33
+ nokogiri (>= 1.5.10)
34
+ psych (~> 2.2)
15
35
  rake
16
36
  rdoc
17
- json (1.7.3)
18
- launchy (2.1.0)
19
- addressable (~> 2.2.6)
20
- method_source (0.7.1)
21
- mime-types (1.18)
22
- posix-spawn (0.3.6)
23
- pry (0.9.9.6)
24
- coderay (~> 1.0.5)
25
- method_source (~> 0.7.1)
26
- slop (>= 2.4.4, < 3)
27
- rake (0.9.2.2)
28
- rcov (0.9.11)
29
- rdoc (3.12)
30
- json (~> 1.4)
31
- rspec (2.10.0)
32
- rspec-core (~> 2.10.0)
33
- rspec-expectations (~> 2.10.0)
34
- rspec-mocks (~> 2.10.0)
35
- rspec-core (2.10.1)
36
- rspec-expectations (2.10.0)
37
- diff-lcs (~> 1.1.3)
38
- rspec-mocks (2.10.1)
39
- slop (2.4.4)
37
+ semver2
38
+ jwt (2.2.3)
39
+ launchy (2.5.0)
40
+ addressable (~> 2.7)
41
+ method_source (1.0.0)
42
+ mini_portile2 (2.1.0)
43
+ multi_json (1.15.0)
44
+ multi_xml (0.6.0)
45
+ multipart-post (2.1.1)
46
+ nokogiri (1.6.8.1)
47
+ mini_portile2 (~> 2.1.0)
48
+ nokogiri (1.6.8.1-java)
49
+ oauth2 (1.4.7)
50
+ faraday (>= 0.8, < 2.0)
51
+ jwt (>= 1.0, < 3.0)
52
+ multi_json (~> 1.3)
53
+ multi_xml (~> 0.5)
54
+ rack (>= 1.2, < 3)
55
+ pry (0.14.1)
56
+ coderay (~> 1.1)
57
+ method_source (~> 1.0)
58
+ pry (0.14.1-java)
59
+ coderay (~> 1.1)
60
+ method_source (~> 1.0)
61
+ spoon (~> 0.0)
62
+ psych (2.2.4)
63
+ psych (2.2.4-java)
64
+ jar-dependencies (>= 0.1.7)
65
+ public_suffix (4.0.6)
66
+ rack (2.2.3)
67
+ rake (13.0.3)
68
+ rchardet (1.8.0)
69
+ rdoc (6.3.0)
70
+ rspec (3.10.0)
71
+ rspec-core (~> 3.10.0)
72
+ rspec-expectations (~> 3.10.0)
73
+ rspec-mocks (~> 3.10.0)
74
+ rspec-core (3.10.1)
75
+ rspec-support (~> 3.10.0)
76
+ rspec-expectations (3.10.1)
77
+ diff-lcs (>= 1.2.0, < 2.0)
78
+ rspec-support (~> 3.10.0)
79
+ rspec-mocks (3.10.2)
80
+ diff-lcs (>= 1.2.0, < 2.0)
81
+ rspec-support (~> 3.10.0)
82
+ rspec-support (3.10.2)
83
+ semver2 (3.4.2)
84
+ spoon (0.0.6)
85
+ ffi
86
+ thread_safe (0.3.6)
87
+ thread_safe (0.3.6-java)
40
88
 
41
89
  PLATFORMS
90
+ java
42
91
  ruby
43
92
 
44
93
  DEPENDENCIES
45
- bundler
46
- grit (~> 2.4)
47
- jeweler (~> 1.6)
48
- launchy (~> 2.1)
49
- pry
50
- rcov (~> 0.9)
51
- rspec (~> 2.7)
94
+ bundler (= 2.2.3)
95
+ git (= 1.8.1)
96
+ jeweler (= 2.3.5)
97
+ launchy (= 2.5.0)
98
+ pry (= 0.14.1)
99
+ rspec (= 3.10.0)
100
+
101
+ BUNDLED WITH
102
+ 2.2.3
data/README.markdown CHANGED
@@ -1,6 +1,6 @@
1
1
  # git-presenter
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/pythonandchips/git-presenter.png?branch=master)](http://travis-ci.org/pythonandchips/git-presenter)
3
+ [![Build Status](https://drone.io/github.com/pythonandchips/git-presenter/status.png)](https://drone.io/github.com/pythonandchips/git-presenter/latest)
4
4
 
5
5
  When presenting code live on stage you have a few choices:
6
6
 
@@ -11,15 +11,12 @@ Git-presenter hope to solve this problem by giving a presentation style interfac
11
11
 
12
12
  ## Current status
13
13
 
14
- Early version but the basics are there to be used.
15
- Any and all feedback is welcome
14
+ Complete.
16
15
 
17
16
  ## Pre-requisites
18
17
 
19
18
  * Git
20
- * Ruby version 1.9.2 or 1.9.3
21
-
22
- Note jruby is currently unsupported as there is a problem with posix-spawn and jruby
19
+ * Ruby version 1.9.2, 1.9.3, 2.0.0, 2.1.0 and jruby
23
20
 
24
21
  ## Installation
25
22
 
@@ -39,7 +36,20 @@ gem install git_presenter
39
36
  * list/l : list slides in presentation
40
37
  * help/h: display this message
41
38
 
42
- ## Bugs/Features/Prase
39
+ ### Command mode
40
+
41
+ The default for git presenter is interactive mode however if you want to use git presenter from a text editor you can use command mode.
42
+
43
+ To start a presentation in command mode use "git-presenter start -c"
44
+
45
+ Once started you run "git-presenter {{command}}" e.g. to move to the next slide run "git-presenter next"
46
+
47
+ ## Other resources
48
+ There are couple of videos showing git presenter and how to us it
49
+ * (video 1)[https://vimeo.com/38949496]
50
+ * (video 2)[https://vimeo.com/39225144]
51
+
52
+ ## Bugs/Features/Praise
43
53
 
44
54
  It you find any bugs or have some feature requests please add an issue on the repository. Or if you just want to get in touch and tell me how awesome git presenter is you can get me on twitter @colin_gemmell or drop me an email at pythonandchips{at}gmail.com
45
55
 
@@ -54,6 +64,10 @@ It you find any bugs or have some feature requests please add an issue on the re
54
64
  * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
55
65
  * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
56
66
 
67
+ ## Contributors
68
+
69
+ * (Luís Ferreira - Zamith)[https://github.com/zamith]
70
+
57
71
  ## Copyright
58
72
 
59
73
  Copyright (c) 2012 Colin Gemmell
@@ -76,4 +90,3 @@ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
76
90
  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
77
91
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
78
92
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
79
-
data/Rakefile CHANGED
@@ -24,26 +24,3 @@ Jeweler::Tasks.new do |gem|
24
24
  # dependencies defined in Gemfile
25
25
  end
26
26
  Jeweler::RubygemsDotOrgTasks.new
27
-
28
- require 'rspec/core'
29
- require 'rspec/core/rake_task'
30
- RSpec::Core::RakeTask.new(:spec) do |spec|
31
- spec.pattern = FileList['spec/**/*_spec.rb']
32
- end
33
-
34
- RSpec::Core::RakeTask.new(:rcov) do |spec|
35
- spec.pattern = 'spec/**/*_spec.rb'
36
- spec.rcov = true
37
- end
38
-
39
- task :default => :spec
40
-
41
- require 'rake/rdoctask'
42
- Rake::RDocTask.new do |rdoc|
43
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
44
-
45
- rdoc.rdoc_dir = 'rdoc'
46
- rdoc.title = "git_presenter #{version}"
47
- rdoc.rdoc_files.include('README*')
48
- rdoc.rdoc_files.include('lib/**/*.rb')
49
- end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 1.4.0
data/bin/git-presenter CHANGED
@@ -1,8 +1,14 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
  require "rubygems"
3
3
  require_relative "../lib/git_presenter"
4
4
 
5
- YAML::ENGINE.yamler = 'psych'
5
+ YAML::ENGINE.yamler = 'psych' if defined?(Psych::ENGINE)
6
6
 
7
- presenter = GitPresenter.new(Dir.pwd)
7
+ if ARGV[1] == "-c"
8
+ interactive = false
9
+ else
10
+ interactive = true
11
+ end
12
+
13
+ presenter = GitPresenter.new(Dir.pwd, interactive)
8
14
  presenter.execute(ARGV[0])
@@ -2,17 +2,19 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: git_presenter 1.4.0 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
- s.name = "git_presenter"
8
- s.version = "0.4.0"
8
+ s.name = "git_presenter".freeze
9
+ s.version = "1.4.0"
9
10
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Colin Gemmell"]
12
- s.date = "2012-07-10"
13
- s.description = "Code presentation tool using git"
14
- s.email = "pythonandchips@gmail.com"
15
- s.executables = ["git-presenter"]
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Colin Gemmell".freeze]
14
+ s.date = "2021-05-01"
15
+ s.description = "Code presentation tool using git".freeze
16
+ s.email = "pythonandchips@gmail.com".freeze
17
+ s.executables = ["git-presenter".freeze]
16
18
  s.extra_rdoc_files = [
17
19
  "LICENSE.txt",
18
20
  "README.markdown"
@@ -31,6 +33,7 @@ Gem::Specification.new do |s|
31
33
  "lib/git_presenter.rb",
32
34
  "lib/git_presenter/controller.rb",
33
35
  "lib/git_presenter/presentation.rb",
36
+ "lib/git_presenter/shell.rb",
34
37
  "lib/git_presenter/slide.rb",
35
38
  "spec/bugs/max_10_commits_being_parsed_spec.rb",
36
39
  "spec/integration/initialize_presentation_spec.rb",
@@ -44,43 +47,29 @@ Gem::Specification.new do |s|
44
47
  "spec/support/command_line_helper.rb",
45
48
  "spec/support/git_helpers.rb"
46
49
  ]
47
- s.homepage = "http://github.com/pythonandchips/git-presenter"
48
- s.licenses = ["MIT"]
49
- s.require_paths = ["lib"]
50
- s.rubygems_version = "1.8.15"
51
- s.summary = "Code presentation tool using git"
50
+ s.homepage = "http://github.com/pythonandchips/git-presenter".freeze
51
+ s.licenses = ["MIT".freeze]
52
+ s.rubygems_version = "3.2.3".freeze
53
+ s.summary = "Code presentation tool using git".freeze
52
54
 
53
55
  if s.respond_to? :specification_version then
54
- s.specification_version = 3
56
+ s.specification_version = 4
57
+ end
55
58
 
56
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
57
- s.add_runtime_dependency(%q<grit>, ["~> 2.4"])
58
- s.add_runtime_dependency(%q<launchy>, ["~> 2.1"])
59
- s.add_development_dependency(%q<pry>, [">= 0"])
60
- s.add_development_dependency(%q<rspec>, ["~> 2.7"])
61
- s.add_development_dependency(%q<bundler>, [">= 0"])
62
- s.add_development_dependency(%q<jeweler>, ["~> 1.6"])
63
- s.add_development_dependency(%q<rcov>, ["~> 0.9"])
64
- s.add_development_dependency(%q<pry>, [">= 0"])
65
- else
66
- s.add_dependency(%q<grit>, ["~> 2.4"])
67
- s.add_dependency(%q<launchy>, ["~> 2.1"])
68
- s.add_dependency(%q<pry>, [">= 0"])
69
- s.add_dependency(%q<rspec>, ["~> 2.7"])
70
- s.add_dependency(%q<bundler>, [">= 0"])
71
- s.add_dependency(%q<jeweler>, ["~> 1.6"])
72
- s.add_dependency(%q<rcov>, ["~> 0.9"])
73
- s.add_dependency(%q<pry>, [">= 0"])
74
- end
59
+ if s.respond_to? :add_runtime_dependency then
60
+ s.add_runtime_dependency(%q<git>.freeze, ["= 1.8.1"])
61
+ s.add_runtime_dependency(%q<launchy>.freeze, ["= 2.5.0"])
62
+ s.add_development_dependency(%q<pry>.freeze, ["= 0.14.1"])
63
+ s.add_development_dependency(%q<rspec>.freeze, ["= 3.10.0"])
64
+ s.add_development_dependency(%q<bundler>.freeze, ["= 2.2.3"])
65
+ s.add_development_dependency(%q<jeweler>.freeze, ["= 2.3.5"])
75
66
  else
76
- s.add_dependency(%q<grit>, ["~> 2.4"])
77
- s.add_dependency(%q<launchy>, ["~> 2.1"])
78
- s.add_dependency(%q<pry>, [">= 0"])
79
- s.add_dependency(%q<rspec>, ["~> 2.7"])
80
- s.add_dependency(%q<bundler>, [">= 0"])
81
- s.add_dependency(%q<jeweler>, ["~> 1.6"])
82
- s.add_dependency(%q<rcov>, ["~> 0.9"])
83
- s.add_dependency(%q<pry>, [">= 0"])
67
+ s.add_dependency(%q<git>.freeze, ["= 1.8.1"])
68
+ s.add_dependency(%q<launchy>.freeze, ["= 2.5.0"])
69
+ s.add_dependency(%q<pry>.freeze, ["= 0.14.1"])
70
+ s.add_dependency(%q<rspec>.freeze, ["= 3.10.0"])
71
+ s.add_dependency(%q<bundler>.freeze, ["= 2.2.3"])
72
+ s.add_dependency(%q<jeweler>.freeze, ["= 2.3.5"])
84
73
  end
85
74
  end
86
75
 
data/lib/git_presenter.rb CHANGED
@@ -1,12 +1,13 @@
1
- require 'grit'
1
+ require 'git'
2
2
  require 'yaml'
3
3
  require 'readline'
4
4
  require 'launchy'
5
5
 
6
6
  class GitPresenter
7
- require 'git_presenter/presentation'
8
- require 'git_presenter/controller'
9
- require 'git_presenter/slide'
7
+ require_relative 'git_presenter/presentation'
8
+ require_relative 'git_presenter/controller'
9
+ require_relative 'git_presenter/slide'
10
+ require_relative 'git_presenter/shell'
10
11
 
11
12
  def initialize(current_dir, interactive=true)
12
13
  @controller = Controller.new(current_dir)
@@ -24,11 +25,18 @@ class GitPresenter
24
25
  elsif command == 'update'
25
26
  @controller.update_presentation
26
27
  else
28
+ if @presentation.nil?
29
+ @presentation = @controller.load_presentation
30
+ end
27
31
  puts @presentation.execute(command)
28
32
  end
29
33
  @presentation
30
34
  end
31
35
 
36
+ def current_slide
37
+ @presentation.current_slide
38
+ end
39
+
32
40
  private
33
41
 
34
42
  def enter_run_loop
@@ -6,7 +6,7 @@ class GitPresenter::Controller
6
6
  end
7
7
 
8
8
  def initialise_presentation
9
- yaml = {"slides" => create_slides}.to_yaml
9
+ yaml = {"slides" => create_slides, "branch" => current_branch}.to_yaml
10
10
  File.open(presentation_file_location, "w") do |file|
11
11
  file.write(yaml)
12
12
  end
@@ -14,9 +14,13 @@ class GitPresenter::Controller
14
14
  puts "run 'git-presenter start' to begin the presentation"
15
15
  end
16
16
 
17
- def start_presentation
17
+ def load_presentation
18
18
  yaml = YAML.parse(File.open(@presentation_dir + "/.presentation", "r")).to_ruby
19
- presenter = GitPresenter::Presentation.new(yaml)
19
+ GitPresenter::Presentation.new(yaml)
20
+ end
21
+
22
+ def start_presentation
23
+ presenter = load_presentation
20
24
  puts presenter.start
21
25
  presenter
22
26
  end
@@ -24,7 +28,6 @@ class GitPresenter::Controller
24
28
  def update_presentation
25
29
  yaml = YAML.parse(File.open(@presentation_dir + "/.presentation", "r")).to_ruby
26
30
  slides = create_slides(yaml['slides'].last["slide"]["commit"])
27
- last_commit = yaml["slides"].last
28
31
  yaml["slides"] = yaml["slides"] + slides
29
32
  yaml["slides"].uniq!
30
33
  write_file(yaml.to_yaml)
@@ -44,14 +47,18 @@ class GitPresenter::Controller
44
47
  end
45
48
 
46
49
  def create_slides(last_commit=nil)
47
- repo = Grit::Repo.new(".", "master")
48
- commits = repo.commits("master", false).reverse
49
- commits = commits.drop_while{|commit| commit.id != last_commit}[1..-1] unless last_commit.nil?
50
+ repo = Git.open(".")
51
+ commits = repo.log.to_a.reverse
52
+ commits = commits.drop_while{|commit| commit.sha != last_commit}[1..-1] unless last_commit.nil?
50
53
  commits.map do |commit|
51
54
  {"slide" =>
52
- {"commit" => commit.id,
55
+ {"commit" => commit.sha,
53
56
  "message" => commit.message}
54
57
  }
55
58
  end
56
59
  end
60
+
61
+ def current_branch
62
+ `git rev-parse --abbrev-ref HEAD`.strip
63
+ end
57
64
  end