class Locomotive::Wagon::PushSiteCommand

Public Instance Methods

decorate(entity) click to toggle source
# File lib/locomotive/wagon/commands/push_sub_commands/push_site_command.rb, line 9
def decorate(entity)
  UpdateSiteDecorator.new(entity, default_locale, path, content_assets_pusher)
end
entities() click to toggle source
# File lib/locomotive/wagon/commands/push_sub_commands/push_site_command.rb, line 5
def entities
  [repositories.site.first]
end
label_for(decorated_entity) click to toggle source
# File lib/locomotive/wagon/commands/push_sub_commands/push_site_command.rb, line 36
def label_for(decorated_entity)
  decorated_entity.name
end
persist(decorated_entity) click to toggle source
# File lib/locomotive/wagon/commands/push_sub_commands/push_site_command.rb, line 13
def persist(decorated_entity)
  _attributes = decorated_entity.to_hash

  # push the picture only if there is no existing remote picture
  _attributes.delete(:picture) if remote_site['picture_url'].present?

  # timezone can be pushed with the -d option
  _attributes.delete(:timezone) unless with_data?

  # push the locales as long as there is no content on the remote site yet
  _attributes.delete(:locales) if remote_site.edited?

  _attributes.delete(:metafields) unless with_data?

  _attributes.delete(:sections_content) unless with_data?

  if _attributes.present?
    api_client.current_site.update(_attributes)
  else
    raise SkipPersistingException.new
  end
end