Sha256: a1867bc1c46b0d4253236c2bbe73b432687839dac15b0a05879f1b701d25f843

Contents?: true

Size: 1.08 KB

Versions: 43

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

module BetterRecord
  class PolymorphicOverride
    def self.polymorphic_value(klass, options = nil)
      type_val = nil
      type_method = polymorphic_method(options.presence || {})
      begin
        type_val = klass.__send__(type_method)
      rescue
        puts type_method, klass, type_val
        if type_val == :table_name_without_schema
          type_val = klass.table_name
        else
          type_val = klass.polymorphic_name
        end
      end
      type_val
    end

    def self.polymorphic_method(options = {})
      (options[:primary_type].presence) || BetterRecord.default_polymorphic_method.presence || :polymorphic_name
    end

    def self.all_types(klass)
      keys = [ :polymorphic_name, :table_name ]
      keys |= [BetterRecord.default_polymorphic_method] if BetterRecord.default_polymorphic_method.present?
      p keys
      values = []
      keys.each do |k|
        val = nil
        begin
          val = klass.__send__(k)
          values << val if val.present?
        rescue
        end
      end
      values
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
better_record-0.17.1 lib/better_record/polymorphic_override.rb
better_record-0.17.0 lib/better_record/polymorphic_override.rb
better_record-0.16.1 lib/better_record/polymorphic_override.rb
better_record-0.16.0 lib/better_record/polymorphic_override.rb
better_record-0.15.2 lib/better_record/polymorphic_override.rb
better_record-0.15.1 lib/better_record/polymorphic_override.rb
better_record-0.15.0 lib/better_record/polymorphic_override.rb
better_record-0.14.6 lib/better_record/polymorphic_override.rb
better_record-0.14.5 lib/better_record/polymorphic_override.rb
better_record-0.14.4 lib/better_record/polymorphic_override.rb
better_record-0.14.3 lib/better_record/polymorphic_override.rb
better_record-0.14.2 lib/better_record/polymorphic_override.rb
better_record-0.14.1 lib/better_record/polymorphic_override.rb
better_record-0.14.0 lib/better_record/polymorphic_override.rb
better_record-0.13.1 lib/better_record/polymorphic_override.rb
better_record-0.13.0 lib/better_record/polymorphic_override.rb
better_record-0.12.5 lib/better_record/polymorphic_override.rb
better_record-0.12.4 lib/better_record/polymorphic_override.rb
better_record-0.12.3 lib/better_record/polymorphic_override.rb
better_record-0.12.2 lib/better_record/polymorphic_override.rb