Class: ThemeSettingsManager::Upload

Inherits:
ThemeSettingsManager show all
Defined in:
lib/theme_settings_manager/upload.rb

Instance Attribute Summary

Attributes inherited from ThemeSettingsManager

#name, #theme

Instance Method Summary collapse

Methods inherited from ThemeSettingsManager

cast, cast_row_value, create, #create_record!, #db_record, #description, #ensure_is_valid_value!, extract_value_from_row, #has_max?, #has_min?, #has_record?, #initialize, #requests_refresh?, #type, #type_name, types, #update_record!

Constructor Details

This class inherits a constructor from ThemeSettingsManager

Instance Method Details

#defaultObject



8
9
10
11
12
13
# File 'lib/theme_settings_manager/upload.rb', line 8

def default
  upload_id = default_upload_id
  return if upload_id.blank?

  cdn_url(upload_id)
end

#valueObject



4
5
6
# File 'lib/theme_settings_manager/upload.rb', line 4

def value
  has_record? ? cdn_url(db_record.value) : default
end

#value=(new_value) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/theme_settings_manager/upload.rb', line 15

def value=(new_value)
  if new_value.present?
    if new_value == default
      new_value = default_upload_id
    else
      upload = ::Upload.find_by(url: new_value)
      new_value = upload.id if upload.present?
    end
  end

  super(new_value)
end