Sha256: d5fedde6b5576f58089d140bc323b27aef33c31d4bab36f8e0ba359a5d5fe0df

Contents?: true

Size: 1.1 KB

Versions: 6

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

namespace :mr_common do
  desc "dump reminders"
  task dump_reminders: :environment do
    reminders = MrCommon::Reminder.all.map do |r|
      r.attributes
    end

    unless reminders.any?
      puts "No reminders to save yet..."
      exit
    end

    yml = reminders.to_yaml
    file = File.open("mr_common_reminders.yml", "w")
    file.write(yml)
    file.close
  end

  desc "load reminders"
  task load_reminders: :environment do
    unless Dir["mr_common_reminders.yml"].any?
      puts "No reminders to load yet..."
      exit
    end
    reminders = YAML.load(File.read("mr_common_reminders.yml"))

    if reminders.any?
      reminder_fields = %i[
        all_day
        description
        end_time
        location
        start_time
        summary
        time_zone
        include_in_confirmation_mailer
      ]

      reminders.each do |reminder|
        r = MrCommon::Reminder.find_or_initialize_by(slug: reminder["slug"])
        attrs = {}
        reminder_fields.each { |attr| attrs[attr.to_s] = reminder[attr.to_s] }
        r.update(attrs)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mr_common-2.1.0 lib/tasks/mr_common_tasks.rake
mr_common-2.0.0 lib/tasks/mr_common_tasks.rake
mr_common-1.3.0 lib/tasks/mr_common_tasks.rake
mr_common-1.2.0 lib/tasks/mr_common_tasks.rake
mr_common-1.1.0 lib/tasks/mr_common_tasks.rake
mr_common-1.0.5 lib/tasks/mr_common_tasks.rake