Skip to content
Snippets Groups Projects
Unverified Commit b8bafe4e authored by Sam Ford's avatar Sam Ford Committed by GitHub
Browse files

Merge pull request #8156 from samford/add-strategy-to-livecheck-dsl

Add strategy to livecheck DSL
parents c3eada09 72985277
No related branches found
No related tags found
No related merge requests found
......@@ -15,6 +15,7 @@ class Livecheck
@regex = nil
@skip = false
@skip_msg = nil
@strategy = nil
@url = nil
end
......@@ -40,6 +41,22 @@ class Livecheck
@skip
end
# Sets the strategy instance variable to the provided symbol or returns the
# strategy instance variable when no argument is provided. The strategy
# symbols use snake case (e.g., `:page_match`) and correspond to the strategy
# file name.
# @param symbol [Symbol] symbol for the desired strategy
def strategy(symbol = nil)
case symbol
when nil
@strategy
when Symbol
@strategy = symbol
else
raise TypeError, "Livecheck#strategy expects a Symbol"
end
end
# Sets the url instance variable to the argument given, returns the url
# instance variable when no argument is given.
def url(val = nil)
......@@ -61,6 +78,7 @@ class Livecheck
"regex" => @regex,
"skip" => @skip,
"skip_msg" => @skip_msg,
"strategy" => @strategy,
"url" => @url,
}
end
......
......@@ -44,6 +44,23 @@ describe Livecheck do
end
end
describe "#strategy" do
it "returns nil if not set" do
expect(livecheckable.strategy).to be nil
end
it "returns the Symbol if set" do
livecheckable.strategy(:page_match)
expect(livecheckable.strategy).to eq(:page_match)
end
it "raises a TypeError if the argument isn't a Symbol" do
expect {
livecheckable.strategy("page_match")
}.to raise_error(TypeError, "Livecheck#strategy expects a Symbol")
end
end
describe "#url" do
it "returns nil if unset" do
expect(livecheckable.url).to be nil
......@@ -57,7 +74,15 @@ describe Livecheck do
describe "#to_hash" do
it "returns a Hash of all instance variables" do
expect(livecheckable.to_hash).to eq({ "regex"=>nil, "skip"=>false, "skip_msg"=>nil, "url"=>nil })
expect(livecheckable.to_hash).to eq(
{
"regex" => nil,
"skip" => false,
"skip_msg" => nil,
"strategy" => nil,
"url" => nil,
},
)
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment