Sha256: 187e79bbfa6f97debd824d8bcc7a1a6958d31a9914470ea77852cd6127f0b1eb

Contents?: true

Size: 1.14 KB

Versions: 6

Compression:

Stored size: 1.14 KB

Contents

class RemoveCustomizedBootswatchSkins < Cardio::Migration::Core
  def up
    return unless Card::Codename[:customized_bootswatch_skin]

    convert_bootswatch_skins
    delete_code_card :customized_bootswatch_skin
  end

  def convert_bootswatch_skins
    parent_field_name = :parent.cardname
    Card.search(type_id: ::Card::CustomizedBootswatchSkinID) do |card|
      update_args = { type_id: Card::BootswatchSkinID, skip: :asset_input_changed }
      parent = find_parent(card.name)
      if parent && parent.id != card.id
        update_args[:subcards] = { "+#{parent_field_name}" => { content: parent.name } }
      end
      # delete_empty_stylesheets card
      card.field(:variables)&.update content: ""
      card.update! update_args
    end
    Card::Cache.reset_all
  end

  # def delete_empty_stylesheets card
  #   s = card.fetch :stylesheets
  #   binding.pry
  #   return unless s&.item_names.present?
  #
  #   s.update! content: (s.item_cards.map { |c| c.name if c.real? }.compact)
  # end

  def find_parent card_name
    potential_parent_name = card_name.downcase.sub("customized", "").gsub(/\d/, "").strip
    Card[potential_parent_name]
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
card-mod-bootstrap-0.15.3 db/migrate_core_cards/20220514141025_remove_customized_bootswatch_skins.rb
card-mod-bootstrap-0.15.1.2 db/migrate_core_cards/20220514141025_remove_customized_bootswatch_skins.rb
card-mod-bootstrap-0.15.2.pre1 db/migrate_core_cards/20220514141025_remove_customized_bootswatch_skins.rb
card-mod-bootstrap-0.15.1.1 db/migrate_core_cards/20220514141025_remove_customized_bootswatch_skins.rb
card-mod-bootstrap-0.15.1 db/migrate_core_cards/20220514141025_remove_customized_bootswatch_skins.rb
card-mod-bootstrap-0.15.0 db/migrate_core_cards/20220514141025_remove_customized_bootswatch_skins.rb