class Cuprum::Rails::Repository

A repository represents a group of Rails collections.

Public Instance Methods

build(record_class:, **options) click to toggle source

Adds a new collection with the given name to the repository.

@param record_class [Class] The ActiveRecord class for the collection. @param options [Hash] Additional options to pass to Collection.new

@return [Cuprum::Rails::Collection] the created collection.

@see Cuprum::Rails::Collection#initialize.

# File lib/cuprum/rails/repository.rb, line 19
def build(record_class:, **options)
  validate_record_class!(record_class)

  collection = Cuprum::Rails::Collection.new(
    record_class: record_class,
    **options
  )

  add(collection)

  collection
end

Private Instance Methods

valid_collection?(collection) click to toggle source
# File lib/cuprum/rails/repository.rb, line 34
def valid_collection?(collection)
  collection.is_a?(Cuprum::Rails::Collection)
end
validate_record_class!(record_class) click to toggle source
# File lib/cuprum/rails/repository.rb, line 38
def validate_record_class!(record_class)
  return if record_class.is_a?(Class) && record_class < ActiveRecord::Base

  raise ArgumentError, 'record class must be an ActiveRecord model'
end