Sha256: 7310f956306ae472160c1b12ff3f55d7655c43fb65cce3152c1d5d59e5ef3061

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

# frozen_string_literal: true

require "stimulus_reflex/installer"

if StimulusReflex::Installer.application_record_path.exist?
  lines = StimulusReflex::Installer.application_record_path.readlines

  if !lines.index { |line| line =~ /^\s*include CableReady::Updatable/ }
    proceed = if StimulusReflex::Installer.options.key? "updatable"
      StimulusReflex::Installer.options["updatable"]
    else
      !no?("✨ Include CableReady::Updatable in Active Record model classes? (Y/n)")
    end

    unless proceed
      StimulusReflex::Installer.complete_step :updatable

      puts "⏩ Skipping."
      return
    end

    index = lines.index { |line| line.include?("class ApplicationRecord < ActiveRecord::Base") }
    lines.insert index + 1, "  include CableReady::Updatable\n"
    StimulusReflex::Installer.application_record_path.write lines.join

    say "✅ included CableReady::Updatable in ApplicationRecord"
  else
    say "⏩ CableReady::Updatable has already been included in Active Record model classes. Skipping."
  end
else
  say "⏩ ApplicationRecord doesn't exist. Skipping."
end

StimulusReflex::Installer.complete_step :updatable

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stimulus_reflex-3.5.3 lib/install/updatable.rb