ruby-appraiser 1.0.1 → 1.0.2
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/lib/ruby-appraiser.rb +2 -2
- data/lib/ruby-appraiser/cli.rb +2 -1
- data/lib/ruby-appraiser/git.rb +21 -13
- data/lib/ruby-appraiser/version.rb +1 -1
- metadata +2 -2
data/lib/ruby-appraiser.rb
CHANGED
@@ -52,9 +52,9 @@ class RubyAppraiser
|
|
52
52
|
# true if file has a ruby shebang
|
53
53
|
begin
|
54
54
|
return true if File.open(filepath) do |file|
|
55
|
-
file.
|
55
|
+
file.readline(20).chomp =~ /\A#\!.+ruby/
|
56
56
|
end
|
57
|
-
rescue
|
57
|
+
rescue EOFError # file was empty
|
58
58
|
rescue ArgumentError # invalid byte sequence
|
59
59
|
end
|
60
60
|
|
data/lib/ruby-appraiser/cli.rb
CHANGED
@@ -79,7 +79,8 @@ class RubyAppraiser
|
|
79
79
|
@appraisal.add_adapter(adapter) or
|
80
80
|
raise "Unknown adapter '#{adapter}'"
|
81
81
|
end
|
82
|
-
|
82
|
+
git_base = Git.run('rev-parse', '--show-toplevel', &:read).chomp
|
83
|
+
Dir.chdir(git_base)
|
83
84
|
end
|
84
85
|
|
85
86
|
def options
|
data/lib/ruby-appraiser/git.rb
CHANGED
@@ -1,33 +1,24 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
require 'open3'
|
2
3
|
|
3
4
|
class RubyAppraiser
|
4
5
|
module Git
|
5
6
|
extend self
|
6
7
|
|
7
8
|
def authored_lines(options = {})
|
8
|
-
diff_command = ['
|
9
|
+
diff_command = ['diff']
|
9
10
|
if options[:range]
|
10
11
|
diff_command << options[:range]
|
11
12
|
else
|
12
13
|
diff_command << (options[:staged] ? '--cached' : 'HEAD')
|
13
14
|
end
|
14
15
|
|
15
|
-
|
16
|
-
diff_output = diff_io.read
|
17
|
-
|
18
|
-
case diff_output
|
19
|
-
when /^fatal: Not a git/i
|
20
|
-
then raise 'ruby-appraiser only works in git repos.'
|
21
|
-
when /^fatal: ambiguous argument 'HEAD'/i
|
22
|
-
then raise 'this ruby-appraiser mode only works with previous ' +
|
23
|
-
'commits, and your repository doesn\t appear to have ' +
|
24
|
-
'any. Make some commits first, or try a different mode.'
|
25
|
-
end
|
16
|
+
diff_out = run(*diff_command)
|
26
17
|
|
27
18
|
current_path, current_line = nil, nil
|
28
19
|
authored_lines = Hash.new { |hash, key| hash[key] = [] }
|
29
20
|
|
30
|
-
|
21
|
+
diff_out.each_line do |line|
|
31
22
|
case line
|
32
23
|
when /^---/ then next
|
33
24
|
when /^\+\+\+ (?:b\/)?(.*)/
|
@@ -47,5 +38,22 @@ class RubyAppraiser
|
|
47
38
|
not RubyAppraiser::rubytype? filepath
|
48
39
|
end
|
49
40
|
end
|
41
|
+
|
42
|
+
def run(*git_command)
|
43
|
+
stdin, stdout, stderr = Open3.popen3('git', *git_command)
|
44
|
+
stdin.close
|
45
|
+
|
46
|
+
case stderr.read
|
47
|
+
when /^fatal: Not a git/i
|
48
|
+
then raise 'ruby-appraiser only works in git repos.'
|
49
|
+
when /^fatal: ambiguous argument 'HEAD'/i
|
50
|
+
then raise 'this ruby-appraiser mode only works with previous ' +
|
51
|
+
'commits, and your repository doesn\'t appear to have ' +
|
52
|
+
'any. Make some commits first, or try a different mode.'
|
53
|
+
end
|
54
|
+
|
55
|
+
return yield(stdout) if block_given?
|
56
|
+
stdout
|
57
|
+
end
|
50
58
|
end
|
51
59
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-appraiser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-06-
|
12
|
+
date: 2013-06-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|