Class: ThemeSettingsManager::Upload

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

Instance Attribute Summary

Attributes inherited from ThemeSettingsManager

#name, #theme

Instance Method Summary collapse

Methods inherited from ThemeSettingsManager

create, #create_record!, #db_record, #description, #ensure_is_valid_value!, #has_max?, #has_min?, #has_record?, #initialize, #invalid_value_error_message, #is_valid_value?, #requests_refresh?, #type, #type_name, types

Constructor Details

This class inherits a constructor from ThemeSettingsManager

Instance Method Details

#defaultObject



190
191
192
193
194
195
# File 'lib/theme_settings_manager.rb', line 190

def default
  upload_id = default_upload_id
  return if upload_id.blank?

  cdn_url(upload_id)
end

#valueObject



186
187
188
# File 'lib/theme_settings_manager.rb', line 186

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

#value=(new_value) ⇒ Object



197
198
199
200
201
202
203
204
205
206
207
208
# File 'lib/theme_settings_manager.rb', line 197

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