Class: Tramway::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/tramway/install/install_generator.rb

Overview

Running ‘rails generate tramway:install` will invoke this generator

Instance Method Summary collapse

Instance Method Details

#ensure_dependenciesObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/generators/tramway/install/install_generator.rb', line 13

def ensure_dependencies
  missing_dependencies = gem_dependencies.reject do |dependency|
    gemfile_contains?(dependency[:name])
  end

  return if missing_dependencies.empty?

  append_to_file 'Gemfile', "\n    # Tramway dependencies\n    \#{missing_dependencies.pluck(:declaration).join(\"\\n\")}\n\n  GEMS\nend\n"

#ensure_tailwind_application_stylesheetObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/generators/tramway/install/install_generator.rb', line 41

def ensure_tailwind_application_stylesheet
  path = tailwind_application_stylesheet_path
  FileUtils.mkdir_p(File.dirname(path))

  return create_file(path, "#{tailwind_css_import_line}\n") unless File.exist?(path)

  content = File.read(path)
  return if content.include?(tailwind_css_import_line)

  File.open(path, 'a') do |file|
    file.write("\n") unless content.empty? || content.end_with?("\n")
    file.write("#{tailwind_css_import_line}\n")
  end
end

#ensure_tailwind_safelistObject



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/generators/tramway/install/install_generator.rb', line 28

def ensure_tailwind_safelist
  return create_tailwind_config unless File.exist?(tailwind_config_path)

  source_entries = extract_safelist_entries(File.read(gem_tailwind_config_path))
  target_content = File.read(tailwind_config_path)
  target_entries = extract_safelist_entries(target_content)

  missing_entries = source_entries - target_entries
  return if missing_entries.empty?

  File.write(tailwind_config_path, insert_entries(target_content, missing_entries))
end