Sha256: 43028e0fcc59db484acd96ea451ec5b4b25fa31554658200fe85a34fd6c624b9

Contents?: true

Size: 1.06 KB

Versions: 5

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

namespace :consyncful do
  task update: [:environment] do
    Consyncful::Sync.latest.run
  end

  task refresh: [:environment] do
    Consyncful::Sync.fresh.run
  end

  task :sync, [:seconds] => %i[environment update_model_names] do |_task, args|
    seconds = args[:seconds].to_i
    seconds = 15 if seconds.zero?
    loop do
      Consyncful::Sync.latest.run
      sleep(seconds)
    end
  end

  task update_model_names: [:environment] do
    if Object.const_defined?('Zeitwerk::Loader') && Rails.application.config.autoloader.to_s == 'zeitwerk'
      Zeitwerk::Loader.eager_load_all
    else
      Rails.application.eager_load!
    end

    puts Rainbow('Updating model names:').blue

    Consyncful::Base.model_map.each do |contentful_name, constant|
      puts Rainbow("#{contentful_name}: #{constant}").yellow
      Consyncful::Base.where(contentful_type: contentful_name).update_all(_type: constant.to_s)
    end

    Consyncful::Base.where(:contentful_type.nin => Consyncful::Base.model_map.keys).update_all(_type: 'Consyncful::Base')
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
consyncful-0.6.1 lib/consyncful/tasks/consyncful.rake
consyncful-0.5.0 lib/consyncful/tasks/consyncful.rake
consyncful-0.4.0 lib/consyncful/tasks/consyncful.rake
consyncful-0.3.3 lib/consyncful/tasks/consyncful.rake
consyncful-0.3.2 lib/consyncful/tasks/consyncful.rake