Class: ReactOnRails::VersionSynchronizer
- Inherits:
-
Object
- Object
- ReactOnRails::VersionSynchronizer
- Defined in:
- lib/react_on_rails/version_synchronizer.rb
Overview
rubocop:disable Metrics/ClassLength
Defined Under Namespace
Classes: Result
Constant Summary collapse
- PACKAGE_SECTIONS =
%w[dependencies devDependencies optionalDependencies peerDependencies].freeze
- NPM_ALIAS_PREFIX =
"npm:"- EXACT_VERSION_REGEX =
Matches exact npm versions and rubygem-style prerelease notation (e.g. “1.2.3.rc.4”). Prerelease/build segments are intentionally bounded to avoid matching arbitrarily long dotted suffixes.
/\A\d+\.\d+\.\d+(?:[-.][0-9A-Za-z]+(?:\.[0-9A-Za-z-]+){0,4})?\z/- PACKAGE_VERSION_SOURCES =
{ "react-on-rails" => :react_on_rails, "react-on-rails-pro" => :react_on_rails_pro, "react-on-rails-pro-node-renderer" => :react_on_rails_pro }.freeze
Instance Method Summary collapse
-
#initialize(package_json_path: VersionChecker::NodePackageVersion.package_json_path, io: $stdout) ⇒ VersionSynchronizer
constructor
A new instance of VersionSynchronizer.
- #sync(write: false) ⇒ Object
Constructor Details
#initialize(package_json_path: VersionChecker::NodePackageVersion.package_json_path, io: $stdout) ⇒ VersionSynchronizer
Returns a new instance of VersionSynchronizer.
24 25 26 27 28 |
# File 'lib/react_on_rails/version_synchronizer.rb', line 24 def initialize(package_json_path: VersionChecker::NodePackageVersion.package_json_path, io: $stdout) @package_json_path = package_json_path.to_s @io = io @converter = VersionSyntaxConverter.new end |
Instance Method Details
#sync(write: false) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/react_on_rails/version_synchronizer.rb', line 30 def sync(write: false) package_json_data, original_content = parse_package_json changes, unsupported_specs, missing_source_specs = detect_changes(package_json_data) apply_changes!(package_json_data, changes, original_content) if write && changes.any? print_summary(changes, unsupported_specs: unsupported_specs, missing_source_specs: missing_source_specs, write: write) changed_files = write && changes.any? ? [package_json_path] : [] Result.new(changes: changes, changed_files: changed_files, unsupported_specs: unsupported_specs, missing_source_specs: missing_source_specs) end |