lib/nextgen/rails_options.rb in nextgen-0.26.0 vs lib/nextgen/rails_options.rb in nextgen-0.27.0

- old
+ new

@@ -17,22 +17,25 @@ action_cable hotwire jbuilder ].freeze - attr_reader :asset_pipeline, :css, :javascript, :database, :test_framework + JS_PACKAGE_MANAGERS = %i[npm yarn].freeze + attr_reader :asset_pipeline, :css, :javascript, :js_package_manager, :database, :test_framework + def_delegators :version, :asset_pipelines, :databases, :default_features, :optional_features def initialize(version:) @version = version @api = false @vite = false @enable_features = [] @skip_features = [] @skip_system_test = false @test_framework = :minitest + @js_package_manager = :yarn end def version_label version.label end @@ -53,9 +56,19 @@ def javascript=(framework) raise ArgumentError, "Can't specify javascript in API mode" if api? && framework raise ArgumentError, "Can't specify javascript when asset pipeline is disabled" if skip_asset_pipeline? @javascript = framework + end + + def js_package_manager=(tool) + raise ArgumentError, "Unknown package manager: #{tool}" unless JS_PACKAGE_MANAGERS.include?(tool) + + @js_package_manager = tool + end + + def npm? + js_package_manager == :npm end def vite! self.asset_pipeline = nil @javascript = "esbuild"