Sha256: 54ca4efbe54a5b7a609e614af016ceb1363b90789912e3d7df2c6205814b89b8

Contents?: true

Size: 898 Bytes

Versions: 24

Compression:

Stored size: 898 Bytes

Contents

# frozen_string_literal: true

module Mobility
  module Sequel
=begin

Internal class used to force Sequel model to notice changes when mobility
setter method is called.

=end
    class ColumnChanges < Module
      # @param [Array<String>] attributes Backend attributes
      def initialize(attributes, column_affix: "%s")
        attributes.each do |attribute|
          define_method "#{attribute}=" do |value, **options|
            if !options[:super] && send(attribute) != value
              locale = options[:locale] || Mobility.locale
              column = (column_affix % attribute).to_sym
              attribute_with_locale = :"#{attribute}_#{Mobility.normalize_locale(locale)}"
              @changed_columns = changed_columns | [column, attribute.to_sym, attribute_with_locale]
            end
            super(value, **options)
          end
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
mobility-1.0.0.beta2 lib/mobility/sequel/column_changes.rb
mobility-1.0.0.beta1 lib/mobility/sequel/column_changes.rb
mobility-1.0.0.alpha lib/mobility/sequel/column_changes.rb
mobility-0.8.13 lib/mobility/sequel/column_changes.rb
mobility-0.8.11 lib/mobility/sequel/column_changes.rb
mobility-0.8.10 lib/mobility/sequel/column_changes.rb
mobility-0.8.9 lib/mobility/sequel/column_changes.rb
mobility-0.8.8 lib/mobility/sequel/column_changes.rb
mobility-0.8.7 lib/mobility/sequel/column_changes.rb
mobility-0.8.6 lib/mobility/sequel/column_changes.rb
mobility-0.8.5 lib/mobility/sequel/column_changes.rb
mobility-0.8.4 lib/mobility/sequel/column_changes.rb
mobility-0.8.3 lib/mobility/sequel/column_changes.rb
mobility-0.8.2 lib/mobility/sequel/column_changes.rb
mobility-0.8.1 lib/mobility/sequel/column_changes.rb
mobility-0.8.0 lib/mobility/sequel/column_changes.rb
mobility-0.7.6 lib/mobility/sequel/column_changes.rb
mobility-0.7.5 lib/mobility/sequel/column_changes.rb
mobility-0.7.4 lib/mobility/sequel/column_changes.rb
mobility-0.7.3 lib/mobility/sequel/column_changes.rb