Class: ReactOnRails::VersionChecker::NodePackageVersion
- Inherits:
-
Object
- Object
- ReactOnRails::VersionChecker::NodePackageVersion
- Defined in:
- lib/react_on_rails/version_checker.rb
Instance Attribute Summary collapse
-
#package_json ⇒ Object
readonly
Returns the value of attribute package_json.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(package_json) ⇒ NodePackageVersion
constructor
A new instance of NodePackageVersion.
- #major_minor_patch ⇒ Object
- #raw ⇒ Object
- #relative_path? ⇒ Boolean
- #semver_wildcard? ⇒ Boolean
Constructor Details
#initialize(package_json) ⇒ NodePackageVersion
Returns a new instance of NodePackageVersion.
80 81 82 |
# File 'lib/react_on_rails/version_checker.rb', line 80 def initialize(package_json) @package_json = package_json end |
Instance Attribute Details
#package_json ⇒ Object (readonly)
Returns the value of attribute package_json.
70 71 72 |
# File 'lib/react_on_rails/version_checker.rb', line 70 def package_json @package_json end |
Class Method Details
.build ⇒ Object
72 73 74 |
# File 'lib/react_on_rails/version_checker.rb', line 72 def self.build new(package_json_path) end |
.package_json_path ⇒ Object
76 77 78 |
# File 'lib/react_on_rails/version_checker.rb', line 76 def self.package_json_path Rails.root.join("client", "package.json") end |
Instance Method Details
#major_minor_patch ⇒ Object
102 103 104 105 106 107 108 109 110 111 |
# File 'lib/react_on_rails/version_checker.rb', line 102 def major_minor_patch return if relative_path? match = raw.match(MAJOR_MINOR_PATCH_VERSION_REGEX) unless match raise ReactOnRails::Error, "Cannot parse version number '#{raw}' (wildcard versions are not supported)" end [match[1], match[2], match[3]] end |
#raw ⇒ Object
84 85 86 87 88 89 90 91 92 |
# File 'lib/react_on_rails/version_checker.rb', line 84 def raw parsed_package_contents = JSON.parse(package_json_contents) if parsed_package_contents.key?("dependencies") && parsed_package_contents["dependencies"].key?("react-on-rails") parsed_package_contents["dependencies"]["react-on-rails"] else raise ReactOnRails::Error, "No 'react-on-rails' entry in package.json dependencies" end end |
#relative_path? ⇒ Boolean
98 99 100 |
# File 'lib/react_on_rails/version_checker.rb', line 98 def relative_path? raw.match(%r{(\.\.|\Afile:///)}).present? end |
#semver_wildcard? ⇒ Boolean
94 95 96 |
# File 'lib/react_on_rails/version_checker.rb', line 94 def semver_wildcard? raw.match(/[~^]/).present? end |