Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions lib/generators/phlex/install/install_generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

module Phlex::Generators
class InstallGenerator < ::Rails::Generators::Base
class_option :use_literal_gem, type: :boolean, default: true,
desc: "include `extend Literal::Properties` in Components::Base (recommended)"
source_root File.expand_path("templates", __dir__)

def create_initializer
Expand Down
5 changes: 4 additions & 1 deletion lib/generators/phlex/install/templates/base_component.rb.erb
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# frozen_string_literal: true

class Components::Base < Phlex::HTML
# Include any helpers you want to be available across all components
<%- if options[:use_literal_gem] -%>
extend Literal::Properties
<%- end -%>
# Include any other rails helpers you want to be available across all components
include Phlex::Rails::Helpers::Routes

if Rails.env.development?
Expand Down
19 changes: 19 additions & 0 deletions lib/templates/rails.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Rails application template
# https://guides.rubyonrails.org/rails_application_templates.html

gem "phlex-rails"

use_literal = while true
case ask("Use literal in base component? [Y/n]")
when "", /y/i then break true
when /n/i then break false
end
end
literal_gem_flag = use_literal ? "--use-literal-gem" : "--no-use-literal-gem"

gem "literal" if use_literal

after_bundle do
generate "phlex:install", literal_gem_flag
puts "Phlex installed for rails project"
end