Sha256: 8f0fc340b57d4d179fa1d112a9f7f5519222a2ef4d7e19e3f1c46f2df1e2fa35

Contents?: true

Size: 541 Bytes

Versions: 3

Compression:

Stored size: 541 Bytes

Contents

# frozen_string_literal: true

module SQLRunner
  class Query
    module One
      def self.activate(target, _options)
        target.singleton_class.prepend self
      end

      def call(**bind_vars)
        result = super(**bind_vars)
        result.to_a.first
      end

      def call!(**bind_vars)
        result = call(**bind_vars)

        return result if result

        raise(
          SQLRunner::RecordNotFound,
          "#{name}: record was not found with #{bind_vars.inspect} arguments"
        )
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sql_runner-0.4.1 lib/sql_runner/query/one.rb
sql_runner-0.4.0 lib/sql_runner/query/one.rb
sql_runner-0.3.0 lib/sql_runner/query/one.rb