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