Sha256: cca600a1a836b5aea8de7205c88749c8d1ee9829124465d86b97ac642cd1a701

Contents?: true

Size: 981 Bytes

Versions: 11

Compression:

Stored size: 981 Bytes

Contents

module EnumStateMachine
  module Integrations #:nodoc:
    module ActiveModel
      version '2.x' do
        def self.active?
          !defined?(::ActiveModel::VERSION) || ::ActiveModel::VERSION::MAJOR == 2
        end
        
        def define_validation_hook
          define_helper :instance, <<-end_eval, __FILE__, __LINE__ + 1
            def valid?(*)
              self.class.state_machines.transitions(self, #{action.inspect}, :after => false).perform { super }
            end
          end_eval
        end
      end
      
      version '3.0.x' do
        def self.active?
          defined?(::ActiveModel::VERSION) && ::ActiveModel::VERSION::MAJOR == 3 && ::ActiveModel::VERSION::MINOR == 0
        end
        
        def define_validation_hook
          # +around+ callbacks don't have direct access to results until AS 3.1
          owner_class.set_callback(:validation, :after, 'value', :prepend => true)
          super
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
enum_state_machine-0.8.0 lib/enum_state_machine/integrations/active_model/versions.rb
enum_state_machine-0.7.0 lib/enum_state_machine/integrations/active_model/versions.rb
enum_state_machine-0.6.0 lib/enum_state_machine/integrations/active_model/versions.rb
enum_state_machine-0.5.0 lib/enum_state_machine/integrations/active_model/versions.rb
enum_state_machine-0.4.1 lib/enum_state_machine/integrations/active_model/versions.rb
enum_state_machine-0.4.0 lib/enum_state_machine/integrations/active_model/versions.rb
enum_state_machine-0.3.0 lib/enum_state_machine/integrations/active_model/versions.rb
enum_state_machine-0.2.0 lib/enum_state_machine/integrations/active_model/versions.rb
enum_state_machine-0.1.1 lib/enum_state_machine/integrations/active_model/versions.rb
enum_state_machine-0.1.0 lib/enum_state_machine/integrations/active_model/versions.rb
enum_state_machine-0.0.1 lib/enum_state_machine/integrations/active_model/versions.rb