Implement Action post-initialize hook
This commit is contained in:
parent
e7a46cecd1
commit
336b43aaa7
@ -13,6 +13,7 @@ module Producer
|
|||||||
@env = env
|
@env = env
|
||||||
@arguments = args
|
@arguments = args
|
||||||
@options = options
|
@options = options
|
||||||
|
setup if respond_to? :setup
|
||||||
end
|
end
|
||||||
|
|
||||||
def name
|
def name
|
||||||
|
@ -2,11 +2,22 @@ require 'spec_helper'
|
|||||||
|
|
||||||
module Producer::Core
|
module Producer::Core
|
||||||
describe Action do
|
describe Action do
|
||||||
|
let(:env) { double 'env'}
|
||||||
|
subject(:action) { described_class.new(env) }
|
||||||
|
|
||||||
it_behaves_like 'action'
|
it_behaves_like 'action'
|
||||||
|
|
||||||
describe '#name' do
|
describe '#initialize' do
|
||||||
subject(:action) { described_class.new(double 'env') }
|
it 'calls #setup when defined' do
|
||||||
|
action_class = Class.new(described_class)
|
||||||
|
action_class.class_eval do
|
||||||
|
define_method(:setup) { @arguments = :other_arguments }
|
||||||
|
end
|
||||||
|
expect(action_class.new(env).arguments).to eq :other_arguments
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#name' do
|
||||||
it 'infers action name from class name' do
|
it 'infers action name from class name' do
|
||||||
expect(action.name).to eq 'action'
|
expect(action.name).to eq 'action'
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user