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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 71509f19c9d674c923c4fb3d375516d87d9d5593
4
- data.tar.gz: 4fe443aec8e10bb1f2d22a13dd3d4bd3969056bf
3
+ metadata.gz: 53e910ea77cfbd6307926ba296eba33f3a6b8e43
4
+ data.tar.gz: 73d1df2e9827bc0eaa1417e3c7f966d3a72b5aff
5
5
  SHA512:
6
- metadata.gz: 4fc36605682ffc7e8421c39e3a6ed04de752907d5fe422c4e0a8e0da04ff54b3b990ed90e369608d4fbbc4ca28ccee0fb3801de4907d5ccdc9a09183b7c9d2e4
7
- data.tar.gz: facfef2698ff6257aa58bfbbe9f28856e07da25f183c769f059162ba0b346ca30550742d72a568d1f03fe5f96347247923a8f193634e552e5f8372d0301238db
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, 'hrk/execute/command'
4
- autoload :Help, 'hrk/execute/help'
5
- autoload :ErrorTrap, 'hrk/execute/error_trap'
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
@@ -1,3 +1,3 @@
1
1
  module Hrk
2
- VERSION = '1.0.2'
2
+ VERSION = '1.0.3'
3
3
  end
@@ -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
@@ -18,10 +18,12 @@ RSpec.describe Hrk::Execute do
18
18
  end
19
19
 
20
20
  describe '.executer' do
21
- let(:error_trap) { double(Hrk::Execute::ErrorTrap) }
22
- let(:help) { double(Hrk::Execute::Help) }
23
- let(:command) { double(Hrk::Execute::Command) }
24
- before { allow(Hrk::Execute::ErrorTrap).to receive(:new).with(help).and_return(error_trap) }
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.2
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-15 00:00:00.000000000 Z
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