Class: RailsuiCharts::Generators::InstallGenerator

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

Constant Summary collapse

CONTROLLERS =
%w[
  railsui_chart_controller.js
  railsui_chart_filters_controller.js
  railsui_metric_dialog_controller.js
].freeze

Instance Method Summary collapse

Instance Method Details

#add_css_importObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/generators/railsui_charts/install/install_generator.rb', line 8

def add_css_import
  application_css = Rails.root.join("app/assets/tailwind/application.css")

  if File.exist?(application_css)
    content = File.read(application_css)
    import_statement = '@import "../../stylesheets/railsui_charts";'

    unless content.include?(import_statement)
      File.write(application_css, "#{content.strip}\n#{import_statement}\n")
      say "✓ Added RailsUI Charts CSS import to app/assets/tailwind/application.css", :green
    else
      say "✓ RailsUI Charts CSS import already present", :green
    end
  else
    say "⚠️ app/assets/tailwind/application.css not found. Add this import manually:", :yellow
    say '  @import "../../stylesheets/railsui_charts";'
  end
end

#copy_stimulus_controllersObject



33
34
35
36
37
# File 'lib/generators/railsui_charts/install/install_generator.rb', line 33

def copy_stimulus_controllers
  CONTROLLERS.each do |controller|
    copy_file controller, "app/javascript/controllers/#{controller}"
  end
end


39
40
41
42
43
44
45
46
47
48
49
# File 'lib/generators/railsui_charts/install/install_generator.rb', line 39

def print_next_steps
  say ""
  say "RailsUI Charts installed.", :green
  say ""
  say "Next steps:", :cyan
  say "  1. Add the ApexCharts dependency for your JS setup:", :cyan
  say "     Build mode:  yarn add apexcharts", :cyan
  say "     No-build:    pin \"apexcharts\", to: \"https://esm.sh/apexcharts@3.45.2\"", :cyan
  say "  2. Use <%= railsui_chart data, type: :area %> in your views.", :cyan
  say ""
end