git-crecord 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 32b27152b0c2462bac010cb3f9ded85e80555cc8
4
- data.tar.gz: abb4843e7164833a17d309f49b7886b2f77b6b97
3
+ metadata.gz: f50b11b78c296e17be381bfcd4bcd6f0c353debf
4
+ data.tar.gz: 63b91fcd44796f4ca85dae4cdabf05ddd8c2d4d7
5
5
  SHA512:
6
- metadata.gz: e7237132d036b3efda7640151444aec7592a32ae0986d86b32d602e8836ff4ecba48c3a22c737d5fd9965a88b6ead0f83267a7fb8bd55fb4c826afd954a780f1
7
- data.tar.gz: 3351f2120e57e49f1a4b6554bb17b5ecba9f894d5afb4ed1add950b1d726d79986e2d8f2a3d0333688b0170b9bd73c0e078d9ba32f4ea8c8ac37dad67fcf9912
6
+ metadata.gz: 53df5470936c02756917e03606bc3c36c661b5387761392422943252e68216005ca50ecf00323fb9f9f2c83376d40c6d19172e8d098f80764149ea867c9cc804
7
+ data.tar.gz: 3a31aa6f040cd3f3c9c955305fb3b5e6d38f24275812fd3cd30730496a93cf560bba27c084a1514f74a067bb9bbdd63ade1ff1e5b1020d9c4449567f1ca61ad4
data/README.md CHANGED
@@ -23,8 +23,8 @@ Key-bindings:
23
23
  c - commit selection and quit
24
24
  j / ↓ - down
25
25
  k / ↑ - up
26
- h / ← - collapse hunk
27
- l / → - expand hunk
26
+ h / ← - collapse fold
27
+ l / → - expand fold
28
28
  f - toggle fold
29
29
  g - go to first line
30
30
  G - go to last line
@@ -3,6 +3,40 @@ require_relative '../ui/color'
3
3
 
4
4
  module GitCrecord
5
5
  module Diff
6
+ class PseudoLine < Difference
7
+ attr_accessor :selected
8
+
9
+ def initialize(line)
10
+ @line = line || 'file is empty'
11
+ @selected = false
12
+ super()
13
+ end
14
+
15
+ def to_s
16
+ @line
17
+ end
18
+
19
+ def x_offset
20
+ 6
21
+ end
22
+
23
+ def selectable?
24
+ true
25
+ end
26
+
27
+ def expanded
28
+ false
29
+ end
30
+
31
+ def generate_diff
32
+ nil
33
+ end
34
+
35
+ def style(is_highlighted)
36
+ Curses::A_BOLD | (is_highlighted ? UI::Color.hl : UI::Color.normal)
37
+ end
38
+ end
39
+
6
40
  class Line < Difference
7
41
  attr_reader :selected
8
42
 
@@ -13,7 +47,7 @@ module GitCrecord
13
47
  end
14
48
 
15
49
  def to_s
16
- @to_s ||= @line.include?("\t") ? @line.gsub(/\t/, Git.tab) : @line
50
+ @to_s ||= @line.gsub(/\t/, Git.tab)
17
51
  end
18
52
 
19
53
  def x_offset
@@ -42,11 +42,11 @@ module GitCrecord
42
42
  end
43
43
 
44
44
  def self.untracked_file(filename)
45
- file_lines = ::File.readlines(filename)
46
- return nil if file_lines.empty?
47
45
  File.new(filename, filename, type: :untracked).tap do |file|
48
- file << "@@ -0,0 +1,#{file_lines.size} @@"
49
- file_lines.each{ |line| file.add_hunk_line("+#{line.chomp}") }
46
+ lines, err = file_lines(filename)
47
+ file << "@@ -0,0 +1,#{lines.size} @@"
48
+ file.subs[0].subs << PseudoLine.new(err) if lines.empty?
49
+ lines.each{ |line| file.add_hunk_line("+#{line.chomp}") }
50
50
  file.selected = false
51
51
  end
52
52
  end
@@ -56,5 +56,15 @@ module GitCrecord
56
56
  untracked_file(filename) unless ::File.directory?(filename)
57
57
  end
58
58
  end
59
+
60
+ def self.file_encoding(filename)
61
+ `file --mime-encoding #{filename}`.split(': ', 2)[1].chomp
62
+ end
63
+
64
+ def self.file_lines(filename)
65
+ encoding = file_encoding(filename)
66
+ return [[], 'binary'] if encoding == 'binary'
67
+ [::File.open(filename, "r:#{encoding}", &:readlines), nil]
68
+ end
59
69
  end
60
70
  end
@@ -2,7 +2,7 @@
2
2
  module GitCrecord
3
3
  class QuitAction < Proc
4
4
  def ==(other)
5
- :quit == other
5
+ other == :quit
6
6
  end
7
7
  end
8
8
  end
@@ -9,8 +9,8 @@ module GitCrecord
9
9
  c - commit selection and quit
10
10
  j / ↓ - down
11
11
  k / ↑ - up
12
- h / ← - collapse hunk
13
- l / → - expand hunk
12
+ h / ← - collapse fold
13
+ l / → - expand fold
14
14
  f - toggle fold
15
15
  g - go to first line
16
16
  G - go to last line
@@ -1,3 +1,3 @@
1
1
  module GitCrecord
2
- VERSION = '1.0.5'.freeze
2
+ VERSION = '1.0.6'.freeze
3
3
  end
data/lib/git_crecord.rb CHANGED
@@ -1,8 +1,8 @@
1
- require_relative 'git_crecord/git'
2
1
  require_relative 'git_crecord/diff'
2
+ require_relative 'git_crecord/git'
3
3
  require_relative 'git_crecord/ui'
4
- require_relative 'git_crecord/version'
5
4
  require_relative 'git_crecord/ui/help_window'
5
+ require_relative 'git_crecord/version'
6
6
 
7
7
  module GitCrecord
8
8
  def self.main(argv)
@@ -32,13 +32,13 @@ module GitCrecord
32
32
 
33
33
  def self.help
34
34
  puts <<EOS
35
- usage: git crecord [<options>]'
35
+ usage: git crecord [<options>]
36
36
 
37
37
  --no-untracked-files -- ignore untracked files
38
- --version -- show version information'
39
- -h -- this help message'
38
+ --version -- show version information
39
+ -h -- this help message
40
40
 
41
- in-program commands:'
41
+ in-program commands:
42
42
  #{UI::HelpWindow::CONTENT.gsub(/^/, ' ')}
43
43
  EOS
44
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-crecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maik Brendler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-12 00:00:00.000000000 Z
11
+ date: 2017-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake