Merge pull request #14205 from samford/livecheck/electronbuilder-allow-date-time-deserialization
ElectronBuilder: Allow Date/Time deserialization
This commit is contained in:
commit
4a07924eeb
@ -47,7 +47,7 @@ module Homebrew
|
|||||||
def self.versions_from_content(content, regex = nil, &block)
|
def self.versions_from_content(content, regex = nil, &block)
|
||||||
require "yaml"
|
require "yaml"
|
||||||
|
|
||||||
yaml = YAML.safe_load(content)
|
yaml = YAML.safe_load(content, permitted_classes: [Date, Time])
|
||||||
return [] if yaml.blank?
|
return [] if yaml.blank?
|
||||||
|
|
||||||
if block
|
if block
|
||||||
|
|||||||
@ -25,6 +25,15 @@ describe Homebrew::Livecheck::Strategy::ElectronBuilder do
|
|||||||
releaseDate: '2000-01-01T00:00:00.000Z'
|
releaseDate: '2000-01-01T00:00:00.000Z'
|
||||||
EOS
|
EOS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let(:electron_builder_yaml_with_timestamp) {
|
||||||
|
# An electron-builder YAML file may use a timestamp instead of an explicit
|
||||||
|
# string value (with quotes) for `releaseDate`, so we need to make sure that
|
||||||
|
# `ElectronBuilder#versions_from_content` won't encounter an error in this
|
||||||
|
# scenario (e.g. `Tried to load unspecified class: Time`).
|
||||||
|
electron_builder_yaml.sub(/releaseDate:\s*'([^']+)'/, 'releaseDate: \1')
|
||||||
|
}
|
||||||
|
|
||||||
let(:mac_regex) { /Example[._-]v?(\d+(?:\.\d+)+)[._-]mac\.zip/i }
|
let(:mac_regex) { /Example[._-]v?(\d+(?:\.\d+)+)[._-]mac\.zip/i }
|
||||||
|
|
||||||
let(:versions) { ["1.2.3"] }
|
let(:versions) { ["1.2.3"] }
|
||||||
@ -46,6 +55,7 @@ describe Homebrew::Livecheck::Strategy::ElectronBuilder do
|
|||||||
|
|
||||||
it "returns an array of version strings when given YAML text" do
|
it "returns an array of version strings when given YAML text" do
|
||||||
expect(electron_builder.versions_from_content(electron_builder_yaml)).to eq(versions)
|
expect(electron_builder.versions_from_content(electron_builder_yaml)).to eq(versions)
|
||||||
|
expect(electron_builder.versions_from_content(electron_builder_yaml_with_timestamp)).to eq(versions)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns an array of version strings when given YAML text and a block" do
|
it "returns an array of version strings when given YAML text and a block" do
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user