hrk 1.0.2 → 1.0.3

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