module Sequenceable
Constants
- VERSION
Public Instance Methods
acts_in_sequence(options = {})
click to toggle source
# File lib/sequenceable.rb, line 15 def acts_in_sequence(options = {}) raise ArgumentError, "acts_in_sequence => Hash expected, got #{options.class.name}" if !options.is_a?(Hash) class_attribute :sequencing_configuration self.sequencing_configuration = { scope: options[:scope], column_name: "sequence", default_order: "ASC" } if options[:column_name].present? sequencing_configuration[:column_name] = options[:column_name] end if options[:default_order].present? sequencing_configuration[:default_order] = options[:default_order].to_s.downcase == "desc" ? "DESC" : "ASC" end return if sequenceable? include Sequenceable::Core # Scopes default_scope { order(sequencing_configuration[:column_name] => sequencing_configuration[:default_order]) } scope :without_sequence_order, -> { reorder("") } # Assign sequence before create before_create :assign_sequence_before_create end
sequenceable?()
click to toggle source
# File lib/sequenceable.rb, line 11 def sequenceable? included_modules.include?(Sequenceable::Core) end