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"