git-crecord 1.0.5 → 1.0.6

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 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