hrk 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/hrk/execute/heroku_detector.rb +28 -0
- data/lib/hrk/execute.rb +5 -4
- data/lib/hrk/version.rb +1 -1
- data/spec/hrk/execute/heroku_detector_spec.rb +37 -0
- data/spec/hrk/execute_spec.rb +6 -4
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53e910ea77cfbd6307926ba296eba33f3a6b8e43
|
4
|
+
data.tar.gz: 73d1df2e9827bc0eaa1417e3c7f966d3a72b5aff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b812509b8e4a20cbc67fc93646a01fc014dab686582baad96d6867ad15303595641d7afe0103298362baeffe3d0030dd0990adadbeaf78a57b6fdbb1fa592953
|
7
|
+
data.tar.gz: 293229e3d9b9db5f192e82308bb18a299ddd0176bdb79469a092575cd260abd9bbbfdaf8ce64056fe76e0507839c92f30a3c44e974d340affd6d3c3b31daa15f
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Hrk
|
2
|
+
module Execute
|
3
|
+
class HerokuDetector
|
4
|
+
def initialize callee
|
5
|
+
@callee = callee
|
6
|
+
end
|
7
|
+
|
8
|
+
def call *args
|
9
|
+
if heroku_present?
|
10
|
+
@callee.call(*args)
|
11
|
+
else
|
12
|
+
puts <<-eos
|
13
|
+
Error: The heroku command is missing!
|
14
|
+
|
15
|
+
Hrk uses the heroku command from the heroku toolbelt to communicate with your
|
16
|
+
servers. You will find all you need to install the heroku toolbelt here:
|
17
|
+
https://toolbelt.heroku.com/
|
18
|
+
eos
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def heroku_present?
|
23
|
+
`which heroku`
|
24
|
+
$?.success?
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/hrk/execute.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
module Hrk
|
2
2
|
module Execute
|
3
|
-
autoload :Command,
|
4
|
-
autoload :Help,
|
5
|
-
autoload :ErrorTrap,
|
3
|
+
autoload :Command, 'hrk/execute/command'
|
4
|
+
autoload :Help, 'hrk/execute/help'
|
5
|
+
autoload :ErrorTrap, 'hrk/execute/error_trap'
|
6
|
+
autoload :HerokuDetector, 'hrk/execute/heroku_detector'
|
6
7
|
|
7
8
|
def self.call *args
|
8
9
|
executer.call(*args)
|
9
10
|
end
|
10
11
|
|
11
12
|
def self.executer
|
12
|
-
ErrorTrap.new Help.new Command.new
|
13
|
+
ErrorTrap.new HerokuDetector.new Help.new Command.new
|
13
14
|
end
|
14
15
|
end
|
15
16
|
end
|
data/lib/hrk/version.rb
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Hrk::Execute::HerokuDetector do
|
4
|
+
describe '#call' do
|
5
|
+
let(:next_callee) { double }
|
6
|
+
|
7
|
+
subject(:heroku_detector) { Hrk::Execute::HerokuDetector.new(next_callee) }
|
8
|
+
|
9
|
+
[true, false].each do |next_callee_returns|
|
10
|
+
context "the next_callee would return #{next_callee_returns.inspect}" do
|
11
|
+
let(:args) { %W(-s ome dumb --arguments#{rand(1..9)}) }
|
12
|
+
|
13
|
+
before { allow(next_callee).to receive(:call).and_return(next_callee_returns) }
|
14
|
+
before { allow(heroku_detector).to receive(:heroku_present?).and_return(heroku_exist) }
|
15
|
+
before { allow(heroku_detector).to receive(:puts) }
|
16
|
+
|
17
|
+
subject!(:result) { heroku_detector.call(args) }
|
18
|
+
|
19
|
+
context 'heroku is here' do
|
20
|
+
let!(:heroku_exist) { true }
|
21
|
+
|
22
|
+
it { expect(result).to eq next_callee_returns }
|
23
|
+
it { expect(next_callee).to have_received(:call).with(args) }
|
24
|
+
it { expect(heroku_detector).not_to have_received(:puts) }
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'heroku is not here' do
|
28
|
+
let!(:heroku_exist) { false }
|
29
|
+
|
30
|
+
it { expect(result).to be_falsy }
|
31
|
+
it { expect(next_callee).not_to have_received(:call) }
|
32
|
+
it { expect(heroku_detector).to have_received(:puts) }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/spec/hrk/execute_spec.rb
CHANGED
@@ -18,10 +18,12 @@ RSpec.describe Hrk::Execute do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
describe '.executer' do
|
21
|
-
let(:error_trap)
|
22
|
-
let(:
|
23
|
-
let(:
|
24
|
-
|
21
|
+
let(:error_trap) { double(Hrk::Execute::ErrorTrap) }
|
22
|
+
let(:heroku_detector) { double(Hrk::Execute::HerokuDetector) }
|
23
|
+
let(:help) { double(Hrk::Execute::Help) }
|
24
|
+
let(:command) { double(Hrk::Execute::Command) }
|
25
|
+
before { allow(Hrk::Execute::ErrorTrap).to receive(:new).with(heroku_detector).and_return(error_trap) }
|
26
|
+
before { allow(Hrk::Execute::HerokuDetector).to receive(:new).with(help).and_return(heroku_detector) }
|
25
27
|
before { allow(Hrk::Execute::Help).to receive(:new).with(command).and_return(help) }
|
26
28
|
before { allow(Hrk::Execute::Command).to receive(:new).and_return(command) }
|
27
29
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hrk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michel Belleville
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -168,12 +168,14 @@ files:
|
|
168
168
|
- lib/hrk/execute/command.rb
|
169
169
|
- lib/hrk/execute/error_trap.rb
|
170
170
|
- lib/hrk/execute/help.rb
|
171
|
+
- lib/hrk/execute/heroku_detector.rb
|
171
172
|
- lib/hrk/heroku.rb
|
172
173
|
- lib/hrk/version.rb
|
173
174
|
- spec/hrk/env_spec.rb
|
174
175
|
- spec/hrk/execute/command_spec.rb
|
175
176
|
- spec/hrk/execute/error_trap_spec.rb
|
176
177
|
- spec/hrk/execute/help_spec.rb
|
178
|
+
- spec/hrk/execute/heroku_detector_spec.rb
|
177
179
|
- spec/hrk/execute_spec.rb
|
178
180
|
- spec/hrk/heroku_spec.rb
|
179
181
|
- spec/spec_helper.rb
|