deprecate usage of AASM.aasm_from_states_for_state (getter method)

This commit is contained in:
Thorsten Böttger 2013-11-30 21:48:37 +01:00
parent 9fa60651b4
commit 45250d09e2
3 changed files with 15 additions and 10 deletions

View File

@ -36,13 +36,10 @@ module AASM
end
end
# is this better?: aasm.states.name.from_states
# TODO remove this method in v4.0.0
def aasm_from_states_for_state(state, options={})
if options[:transition]
aasm.events[options[:transition]].transitions_to_state(state).flatten.map(&:from).flatten
else
aasm.events.map {|k,v| v.transitions_to_state(state)}.flatten.map(&:from).flatten
end
warn ".aasm_from_states_for_state is deprecated and will be removed in version 4.0.0; please use .aasm.from_states_for_state instead!"
aasm.from_states_for_state(state, options)
end
# TODO remove this method in v4.0.0

View File

@ -76,5 +76,13 @@ module AASM
states.map { |state| state.for_select }
end
def from_states_for_state(state, options={})
if options[:transition]
events[options[:transition]].transitions_to_state(state).flatten.map(&:from).flatten
else
events.map {|k,v| v.transitions_to_state(state)}.flatten.map(&:from).flatten
end
end
end
end

View File

@ -81,15 +81,15 @@ describe 'aasm.states_for_select' do
end
end
describe :aasm_from_states_for_state do
describe 'aasm.from_states_for_state' do
it "should return all from states for a state" do
AuthMachine.should respond_to(:aasm_from_states_for_state)
froms = AuthMachine.aasm_from_states_for_state(:active)
AuthMachine.aasm.should respond_to(:from_states_for_state)
froms = AuthMachine.aasm.from_states_for_state(:active)
[:pending, :passive, :suspended].each {|from| froms.should include(from)}
end
it "should return from states for a state for a particular transition only" do
froms = AuthMachine.aasm_from_states_for_state(:active, :transition => :unsuspend)
froms = AuthMachine.aasm.from_states_for_state(:active, :transition => :unsuspend)
[:suspended].each {|from| froms.should include(from)}
end
end