class CollectionAdapters::ArraySequel

Public Class Methods

new(model:, column: @ds = model) click to toggle source
# File lib/collectionadapters/array_sequel.rb, line 3
def initialize model:, column:
  @ds    = model
  @model = model.kind_of?(Sequel::Dataset) ? @ds.model : @ds
  @col   = column.to_sym
end

Public Instance Methods

<<(val) click to toggle source
# File lib/collectionadapters/array_sequel.rb, line 9
def << val
  @model.new.set(@col => val).save
rescue Sequel::UniqueConstraintViolation
  nil
end
concat(other) click to toggle source
# File lib/collectionadapters/array_sequel.rb, line 19
def concat other
  other.each {|v| self << v }
end
count() click to toggle source
# File lib/collectionadapters/array_sequel.rb, line 15
def count
  @model.count
end
include?(key) click to toggle source
# File lib/collectionadapters/array_sequel.rb, line 23
def include? key
  @model[@col => key] != nil
end
shift() click to toggle source
# File lib/collectionadapters/array_sequel.rb, line 27
def shift
  @ds.db.transaction do
    if ob = @ds.for_update.first
      v  = ob.values[@col]
      return v if ob.delete
      raise Sequel::rollback
    end
  end
  nil
end