def call(transitions)
      StateParser.parse(transitions) do |from, to|
        transition = Transition.new(@machine.env.target, @name,
                                    @attributes.merge(states: { from => to }))
        silent = @attributes.fetch(:silent, false)
        @machine.events_map.add(@name, transition)
        next unless @machine.auto_methods?

        unless @machine.respond_to?(@name)
          @event_definition.apply(@name, silent)
        end
        @state_definition.apply(from => to)
      end
      self
    end
def call(transitions)
      StateParser.parse(transitions) do |from, to|
        transition = Transition.new(@machine.env.target, @name,
                                    @attributes.merge(states: { from => to }))
        silent = @attributes.fetch(:silent, false)
        @machine.events_map.add(@name, transition)
        next unless @machine.auto_methods?

        unless @machine.respond_to?(@name)
          @event_definition.apply(@name, silent)
        end
        @state_definition.apply(from => to)
      end
      self
    end
Initialize a TransitionBuilder

 @example
   TransitionBuilder.new(machine, {})

 @api public
 Converts user transitions into internal {Transition} representation

 @example
   transition_builder.call([:green, :yellow] => :red)

 @param [Hash[Symbol]] transitions
   The transitions to extract states from

 @return [self]

 @api public