Module: Sunrise::Utils

Defined in:
lib/sunrise/utils.rb,
lib/sunrise/utils/csv_document.rb,
lib/sunrise/utils/eval_helpers.rb,
lib/sunrise/utils/search_wrapper.rb,
lib/sunrise/utils/transliteration.rb

Defined Under Namespace

Modules: EvalHelpers, SearchWrapper, Transliteration Classes: CsvDocument

Constant Summary collapse

IMAGE_TYPES =
['image/jpeg', 'image/png', 'image/gif', 'image/jpg', 'image/pjpeg', 'image/tiff', 'image/x-png']

Class Method Summary collapse

Class Method Details

.get_model(model_name, *args) ⇒ Object



10
11
12
13
# File 'lib/sunrise/utils.rb', line 10

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) ⇒ Object

Given a string model_name, finds the corresponding model class



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/sunrise/utils.rb', line 16

def self.lookup(model_name, klass = nil)
  model = model_name.constantize

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

.normalize_friendly_id(input) ⇒ Object

Convert input to friendly slug using babosa gem



51
52
53
# File 'lib/sunrise/utils.rb', line 51

def self.normalize_friendly_id(input)
  input.to_s.to_slug.normalize(:transliterations => Sunrise::Config.transliteration).to_s
end

.sort_to_hash(value) ⇒ Object

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



41
42
43
44
45
46
47
# File 'lib/sunrise/utils.rb', line 41

def self.sort_to_hash(value)
  items = value.split('_')
  mode = items.pop
  column = items.join('_')
  
  {:column => column, :mode => mode}
end

.superclasses(klass) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/sunrise/utils.rb', line 29

def self.superclasses(klass)
  superclasses = []
  while klass
    superclasses << klass.superclass if klass && klass.superclass
    klass = klass.superclass
  end
  superclasses
end