Module: Hold::Sequel

Defined in:
lib/hold/sequel.rb,
lib/hold/sequel/query.rb,
lib/hold/sequel/property_mapper.rb,
lib/hold/sequel/query_array_cell.rb,
lib/hold/sequel/dataset_lazy_array.rb,
lib/hold/sequel/repository_observer.rb,
lib/hold/sequel/property_mapper/hash.rb,
lib/hold/sequel/property_mapper/array.rb,
lib/hold/sequel/polymorphic_repository.rb,
lib/hold/sequel/property_mapper/column.rb,
lib/hold/sequel/identity_set_repository.rb,
lib/hold/sequel/property_mapper/identity.rb,
lib/hold/sequel/property_mapper/created_at.rb,
lib/hold/sequel/property_mapper/updated_at.rb,
lib/hold/sequel/property_mapper/foreign_key.rb,
lib/hold/sequel/property_mapper/one_to_many.rb,
lib/hold/sequel/property_mapper/custom_query.rb,
lib/hold/sequel/property_mapper/many_to_many.rb,
lib/hold/sequel/with_polymorphic_type_column.rb,
lib/hold/sequel/property_mapper/transformed_column.rb,
lib/hold/sequel/property_mapper/custom_query_single_value.rb

Overview

Module containing implementations of hold interfaces which persist in a relational database, using the Sequel library, via some configurable mapping.

Defined Under Namespace

Modules: RepositoryObserver Classes: DatasetLazyArray, IdentitySetRepository, PolymorphicRepository, PropertyMapper, Query, QueryArrayCell

Class Method Summary collapse

Class Method Details

.IdentitySetRepository(model_class, main_table = nil, &block) ⇒ Object



4
5
6
7
8
9
10
# File 'lib/hold/sequel/identity_set_repository.rb', line 4

def self.IdentitySetRepository(model_class, main_table=nil, &block)
  Class.new(IdentitySetRepository) do
    set_model_class model_class
    use_table(main_table, :id_column => :id, :id_sequence => true) if main_table
    class_eval(&block) if block
  end
end

.translate_exceptionsObject



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/hold/sequel.rb', line 30

def self.translate_exceptions
  yield
rescue ::Sequel::DatabaseError => error
  case error.message
  when /duplicate|unique/i
    raise Hold::IdentityConflict
  else
    error.extend(Hold::Error)
    raise
  end
end