Sha256: e558cccf2692cffbe4aae71d7bbcf7ae1e2fc1b633a9a9ca30647dec1a0bd96e

Contents?: true

Size: 537 Bytes

Versions: 105

Compression:

Stored size: 537 Bytes

Contents

module Avo
  module Concerns
    module ModelClassConstantized
      extend ActiveSupport::Concern

      class_methods do
        # Cast the model class to a constantized version and memoize it like that
        def model_class=(value)
          @model_class = case value
          when Class
            value
          when String, Symbol
            value.to_s.safe_constantize
          else
            raise ArgumentError.new "Failed to find a proper model class for #{self}"
          end
        end
      end
    end
  end
end

Version data entries

105 entries across 105 versions & 1 rubygems

Version Path
avo-3.11.10 lib/avo/concerns/model_class_constantized.rb
avo-3.11.9 lib/avo/concerns/model_class_constantized.rb
avo-3.11.8 lib/avo/concerns/model_class_constantized.rb
avo-3.11.7 lib/avo/concerns/model_class_constantized.rb
avo-3.11.6 lib/avo/concerns/model_class_constantized.rb
avo-3.11.5 lib/avo/concerns/model_class_constantized.rb
avo-3.11.4 lib/avo/concerns/model_class_constantized.rb
avo-3.11.3 lib/avo/concerns/model_class_constantized.rb
avo-3.11.2 lib/avo/concerns/model_class_constantized.rb
avo-3.11.1 lib/avo/concerns/model_class_constantized.rb
avo-3.11.0 lib/avo/concerns/model_class_constantized.rb
avo-3.10.10 lib/avo/concerns/model_class_constantized.rb
avo-3.10.9 lib/avo/concerns/model_class_constantized.rb
avo-3.10.8 lib/avo/concerns/model_class_constantized.rb
avo-3.10.7 lib/avo/concerns/model_class_constantized.rb
avo-3.10.6 lib/avo/concerns/model_class_constantized.rb
avo-3.10.5 lib/avo/concerns/model_class_constantized.rb
avo-3.10.4 lib/avo/concerns/model_class_constantized.rb
avo-3.10.3 lib/avo/concerns/model_class_constantized.rb
avo-3.10.2 lib/avo/concerns/model_class_constantized.rb