Sha256: a0f668a347d562a5cbf5571f9c5895253f7040b0b611635fa6f5c6aef4bb2c6f

Contents?: true

Size: 597 Bytes

Versions: 1

Compression:

Stored size: 597 Bytes

Contents

# frozen_string_literal: true

# Released under the MIT License.
# Copyright, 2021-2024, by Samuel Williams.

require_relative "statement/select"
require_relative "statement/count"

module DB
	module Model
		module Countable
			def count(fields = Statement::Count::ALL)
				Statement::Select.new(@model,
					fields: fields,
					where: self.predicate,
				).to_sql(@context).call do |connection|
					result = connection.next_result
					
					row = result.to_a.first
					
					# Return the count:
					return row.first
				end
			end
			
			def empty?
				self.count == 0
			end
		end
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
db-model-0.5.0 lib/db/model/countable.rb