react_on_rails 16.7.0.rc.1 → 16.7.0.rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6c1fa8759e37cddc05c49a9824d2914bd87a2cdbb12d174d48503604b30a6c58
4
- data.tar.gz: a61dd03cdd48c4d61f9a4df42ef329b44a80484e9078187e3f98765465d5ae87
3
+ metadata.gz: 60730ef27df1000e69cba89e5882f3a62d6c4fa0cdebb6ada0c10fa6af8f9385
4
+ data.tar.gz: 2214b6b5492d8ad2eb312bf79622b9cef74c469aaf0ef29e253211c97f0c92d8
5
5
  SHA512:
6
- metadata.gz: f482e32ce3d43fd9814535245f094c6652d1ca40e15449cb0acbba1ae0a551e52a3aab07846a95fce9316c4067e0c519114736995145baaf3dc99838eef39261
7
- data.tar.gz: 12e1670e1b1671ca36f3f4ffb426cdfb1a4a56b6a888da7d3100e6f327412a74a0714ea6a4f51e44c623c3e9941f70c742689dc47cdbd49fcf85f3d3f44ff49c
6
+ metadata.gz: 1b4cd9ee45593c49f2ae568b68f7c8b9353c6238ae710e8ceaf6f84c34becc061254acecd8850f00d10006642f9ec80f795ab6c9d74aaaf1d24fcd731119bb21
7
+ data.tar.gz: 3646913ccf2b0d66e4d0adea6310cfdeaf1ab5463e46a0991a35734cb1111ecde8c23701b0272b0a4040c216a3c5fb49546bbb6c78d4a444dec072943ada6938
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- react_on_rails (16.7.0.rc.1)
4
+ react_on_rails (16.7.0.rc.2)
5
5
  addressable
6
6
  connection_pool
7
7
  execjs (~> 2.5)
@@ -510,8 +510,10 @@ module ReactOnRails
510
510
  # @return [Boolean] true if successful, false otherwise
511
511
  def add_packages(packages, dev: false)
512
512
  return true if add_npm_dependencies(packages, dev: dev)
513
+ return true if install_packages_with_fallback(packages, dev: dev)
513
514
 
514
- install_packages_with_fallback(packages, dev: dev)
515
+ write_versioned_package_specs_to_package_json(packages, dev: dev)
516
+ false
515
517
  end
516
518
 
517
519
  def install_js_dependencies
@@ -559,6 +561,29 @@ module ReactOnRails
559
561
  false
560
562
  end
561
563
 
564
+ # Last-resort fallback for install failures. This rewrites package.json with
565
+ # JSON.pretty_generate so users can rerun their package manager manually.
566
+ def write_versioned_package_specs_to_package_json(packages, dev:)
567
+ return false unless File.exist?("package.json")
568
+
569
+ versioned_packages = packages.filter_map { |package_spec| package_name_and_version_from_spec(package_spec) }
570
+ return false if versioned_packages.empty?
571
+
572
+ content = JSON.parse(File.read("package.json"))
573
+ dependency_field = dev ? "devDependencies" : "dependencies"
574
+ content[dependency_field] ||= {}
575
+
576
+ versioned_packages.each do |package_name, package_version|
577
+ content[dependency_field][package_name] = package_version
578
+ end
579
+
580
+ File.write("package.json", "#{JSON.pretty_generate(content)}\n")
581
+ true
582
+ rescue StandardError => e
583
+ GeneratorMessages.add_warning("⚠️ Could not write dependency pins to package.json: #{e.message}")
584
+ false
585
+ end
586
+
562
587
  def fallback_package_manager
563
588
  package_manager = GeneratorMessages.detect_package_manager(app_root: destination_root)
564
589
  return package_manager if GeneratorMessages.supported_package_manager?(package_manager)
@@ -622,6 +647,13 @@ module ReactOnRails
622
647
  def version_specified?(package_spec, package_name)
623
648
  package_spec != package_name
624
649
  end
650
+
651
+ def package_name_and_version_from_spec(package_spec)
652
+ package_name = package_name_from_spec(package_spec)
653
+ return nil unless package_name && version_specified?(package_spec, package_name)
654
+
655
+ [package_name, package_spec.delete_prefix("#{package_name}@")]
656
+ end
625
657
  end
626
658
  end
627
659
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReactOnRails
4
- VERSION = "16.7.0.rc.1"
4
+ VERSION = "16.7.0.rc.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: react_on_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 16.7.0.rc.1
4
+ version: 16.7.0.rc.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Gordon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-05-24 00:00:00.000000000 Z
11
+ date: 2026-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable