Class: RubyUI::Generators::InstallGenerator

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

Instance Method Summary collapse

Methods included from JavascriptUtils

#install_js_package, #pin_with_importmap, #using_importmap?, #using_npm?, #using_yarn?

Instance Method Details

#add_ruby_ui_baseObject



78
79
80
81
# File 'lib/generators/ruby_ui/install/install_generator.rb', line 78

def add_ruby_ui_base
  say "Adding RubyUI::Base component"
  template "../../../../ruby_ui/base.rb", Rails.root.join("app/components/ruby_ui/base.rb")
end

#add_ruby_ui_module_to_components_baseObject



48
49
50
51
52
53
# File 'lib/generators/ruby_ui/install/install_generator.rb', line 48

def add_ruby_ui_module_to_components_base
  say "Adding RubyUI Kit to Components::Base"
  insert_into_file Rails.root.join("app/components/base.rb"), after: "include Components" do
    "\n  include RubyUI"
  end
end

#add_tailwind_configObject



60
61
62
63
64
65
66
67
68
69
70
# File 'lib/generators/ruby_ui/install/install_generator.rb', line 60

def add_tailwind_config
  say "Adding RubyUI config to tailwind config"

  if File.exist?(Rails.root.join("tailwind.config.js")) # tailwindcss js package
    template "tailwind.config.js.js-package.erb", Rails.root.join("tailwind.config.js")
  elsif File.exist?(Rails.root.join("config/tailwind.config.js")) # tailwindcss-rails gem
    template "tailwind.config.js.tailwindcss-rails.erb", Rails.root.join("config/tailwind.config.js")
  else
    say "Cannot find tailwind.config.js. You will need to install tailwind config manually", :red
  end
end

#add_tailwind_cssObject



55
56
57
58
# File 'lib/generators/ruby_ui/install/install_generator.rb', line 55

def add_tailwind_css
  say "Adding RubyUI styles to application css"
  template "application.tailwind.css.erb", Rails.root.join("app/assets/stylesheets/application.tailwind.css")
end

#install_phlex_railsObject



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

def install_phlex_rails
  say "Checking for phlex-rails"

  if gem_installed?("phlex-rails")
    if Gem::Specification.find_by_name("phlex-rails").version < "2.0.0.beta2"
      say "You need to upgrade to phlex-rails 2 to use RubyUI", :red
      exit
    else
      say "phlex-rails is already installed", :green
    end
  else
    say "Adding phlex-rails to Gemfile"
    run %(bundle add phlex-rails --github="phlex-ruby/phlex-rails")

    say "Running phlex-rails structure"
    run "bin/rails generate phlex:install"
  end
end

#install_ruby_ui_initializerObject



43
44
45
46
# File 'lib/generators/ruby_ui/install/install_generator.rb', line 43

def install_ruby_ui_initializer
  say "Creating RubyUI initializer"
  template "ruby_ui.rb.erb", Rails.root.join("config/initializers/ruby_ui.rb")
end

#install_tailwind_animateObject



72
73
74
75
76
# File 'lib/generators/ruby_ui/install/install_generator.rb', line 72

def install_tailwind_animate
  say "Installing tailwindcss-animate plugin"

  install_js_package("tailwindcss-animate")
end

#install_tailwind_mergeObject



32
33
34
35
36
37
38
39
40
41
# File 'lib/generators/ruby_ui/install/install_generator.rb', line 32

def install_tailwind_merge
  say "Checking for tailwind_merge"

  if gem_installed?("tailwind_merge")
    say "tailwind_merge is already installed", :green
  else
    say "Adding phlex-rails to Gemfile"
    run %(bundle add tailwind_merge)
  end
end