Sha256: f2fa4b46d3f4fc3e863e1c0629c3d2c0c41a53b00ab0a370b7382ef7bf646f3f

Contents?: true

Size: 974 Bytes

Versions: 8

Compression:

Stored size: 974 Bytes

Contents

require 'sequel'

module Sequel
  module Plugins
    # The RailsExtensions plugin adds a single class method to Sequel::Model in
    # order to make its use in controllers a little more like ActiveRecord's.
    # The +find!+ method is added which will raise an exception if no object is
    # found. By adding the following code to a Railtie:
    #
    #   config.action_dispatch.rescue_responses.merge!(
    #    'Sequel::Plugins::RailsExtensions::ModelNotFound' => :not_found
    #   )
    #
    # Usage:
    #
    #   # Apply plugin to all models:
    #   Sequel::Model.plugin :rails_extensions
    #
    #   # Apply plugin to a single model:
    #   Album.plugin :rails_extensions
    module RailsExtensions
      class ModelNotFound < Sequel::Error
      end

      module ClassMethods
        def find!(args)
          m = self[args]
          raise ModelNotFound, "Couldn't find #{self} matching #{args}." unless m
          m
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
sequel-rails-1.2.3 lib/sequel_rails/sequel/plugins/rails_extensions.rb
sequel-rails-1.2.2 lib/sequel_rails/sequel/plugins/rails_extensions.rb
sequel-rails-1.2.1 lib/sequel_rails/sequel/plugins/rails_extensions.rb
sequel-rails-1.2.0 lib/sequel_rails/sequel/plugins/rails_extensions.rb
sequel-rails-1.1.1 lib/sequel_rails/sequel/plugins/rails_extensions.rb
sequel-rails-1.1.0 lib/sequel_rails/sequel/plugins/rails_extensions.rb
sequel-rails-1.0.1 lib/sequel_rails/sequel/plugins/rails_extensions.rb
sequel-rails-1.0.0 lib/sequel_rails/sequel/plugins/rails_extensions.rb