diff-runner 0.1.1 → 0.1.2

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: 3670b470666327ebeab9b54c1fdae2d2f59f94a4
4
- data.tar.gz: 5736c022a16e3c15a3e6db7cdb59e3a1e793e286
3
+ metadata.gz: 0860457527ffc5c20d58823a7a6f900874321bf8
4
+ data.tar.gz: 2a49cbc8a414663251082aa137750edc54cdc8b3
5
5
  SHA512:
6
- metadata.gz: c0e33d79f083b8a7e2fc01d30f53fb3fcea48a56afcfddbda3855aba3d38c5ecaf06c9845f6503ba2a67882b698a1caec59db9f4d9c4201d8a6820a6897260cd
7
- data.tar.gz: acf10512732a8c14f15795c6aa02aaf0631a19e5c48fccdaacd1dacd2bade89892c506da6e61a4701592a9a0e1e88bfbc20f22591e2b98b03a1f17f9b6becb4d
6
+ metadata.gz: 765127beca0a2b918bba39c0bb01b570d966aad9e9a20c4795512964cbd38c5a56099c84904beb526cb64d0696130ae9c38401afb759c9bc998efbe72a0c5ad7
7
+ data.tar.gz: c81a1c04f89b09dee713ce37eae93062113c10d4533591100c28ad4972a973e5411bd8d51e0ecb1b1341883b2f93deaef8124712756e2fc47cd224225d8d3961
@@ -1,34 +1,12 @@
1
1
 
2
2
  module DiffRunner
3
3
  class Invocation
4
- attr_reader :pid
5
-
6
4
  def initialize(cmd)
7
5
  @cmd = cmd
8
6
  end
9
7
 
10
- def run
11
- Thread.new do
12
- puts `clear`
13
- present output
14
- end
15
- end
16
-
17
8
  def output
18
- IO.popen(@cmd) do |io|
19
- io.read
20
- end
21
- end
22
-
23
- def present(message)
24
- if @pid
25
- Process.kill("QUIT", @pid) rescue nil
26
- end
27
-
28
- IO.popen("less", "w") do |io|
29
- io.puts message
30
- @pid = io.pid
31
- end
9
+ IO.popen(@cmd, &:read)
32
10
  end
33
11
  end
34
12
  end
@@ -0,0 +1,13 @@
1
+
2
+ module DiffRunner
3
+ class InvocationRunner
4
+ def initialize(action, pager)
5
+ @action = action
6
+ @pager = pager
7
+ end
8
+
9
+ def run
10
+ @pager.present @action.output
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,30 @@
1
+
2
+ module DiffRunner
3
+ class Presenter
4
+ attr_reader :pid
5
+
6
+ def present(str)
7
+ presenting = true
8
+ if @pid
9
+ Process.kill("QUIT", @pid) rescue nil
10
+ end
11
+
12
+ Thread.new do
13
+ puts `clear`
14
+ IO.popen("less", "w") do |io|
15
+ io.puts str
16
+ @pid = io.pid
17
+ end
18
+
19
+ if !presenting
20
+ puts `clear`
21
+ exit(0)
22
+ end
23
+ end
24
+
25
+ presenting = false
26
+ end
27
+ end
28
+ end
29
+
30
+
@@ -1,3 +1,3 @@
1
1
  module DiffRunner
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/diff-runner.rb CHANGED
@@ -1,13 +1,20 @@
1
1
  require "diff-runner/version"
2
2
  require "diff-runner/invocation"
3
+ require "diff-runner/presenter"
3
4
  require "diff-runner/registary"
5
+ require "diff-runner/invocation_runner"
4
6
 
5
7
  module DiffRunner
6
8
  class App
7
9
  def run
8
- invocation.run
9
- Registary.instance.register(".", invocation)
10
- sleep
10
+ runner.run
11
+ Registary.instance.register(".", runner)
12
+ begin
13
+ sleep
14
+ rescue Interrupt
15
+ end
16
+ puts `clear`
17
+ puts "Bye!"
11
18
  end
12
19
 
13
20
  def invocation
@@ -22,6 +29,10 @@ module DiffRunner
22
29
 
23
30
  @invocation
24
31
  end
32
+
33
+ def runner
34
+ @runner ||= InvocationRunner.new invocation, Presenter.new
35
+ end
25
36
  end
26
37
  end
27
38
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diff-runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Felgenhauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-07 00:00:00.000000000 Z
11
+ date: 2016-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -87,6 +87,8 @@ files:
87
87
  - diff-runner.gemspec
88
88
  - lib/diff-runner.rb
89
89
  - lib/diff-runner/invocation.rb
90
+ - lib/diff-runner/invocation_runner.rb
91
+ - lib/diff-runner/presenter.rb
90
92
  - lib/diff-runner/registary.rb
91
93
  - lib/diff-runner/version.rb
92
94
  homepage: https://github.com/felgenh3/diff-runner