module Sunrise::Utils

Constants

IMAGE_TYPES

Public Class Methods

get_model(model_name, *args) click to toggle source
# File lib/sunrise/utils.rb, line 13
def self.get_model(model_name, *args)
  klass = lookup(['Sunrise', model_name.to_s.classify].join, Sunrise::AbstractModel)
  klass ? klass.new(*args) : nil
end
lookup(model_name, _klass = nil) click to toggle source

Given a string model_name, finds the corresponding model class

# File lib/sunrise/utils.rb, line 19
def self.lookup(model_name, _klass = nil)
  model = model_name.constantize

  model if model&.is_a?(Class)
rescue LoadError, NameError
  Rails.logger.error "Error while loading '#{model_name}': #{$!}"
  nil
end
normalize_friendly_id(input) click to toggle source

Convert input to friendly slug using babosa gem

# File lib/sunrise/utils.rb, line 50
def self.normalize_friendly_id(input)
  input.to_s.to_slug.normalize(transliterations: Sunrise::Config.transliteration).to_s
end
sort_to_hash(value) click to toggle source

Convert sort string to hash “create_at_desc” to { :column => “created_at”, :mode => “desc” }

# File lib/sunrise/utils.rb, line 40
def self.sort_to_hash(value)
  items = value.split('_')
  mode = items.pop
  column = items.join('_')

  { column: column, mode: mode }
end
superclasses(klass) click to toggle source
# File lib/sunrise/utils.rb, line 28
def self.superclasses(klass)
  superclasses = []
  while klass
    superclasses << klass.superclass if klass&.superclass
    klass = klass.superclass
  end
  superclasses
end