Raise TypeError in Livecheck DSL for invalid arg
We previously added `raise TypeError` logic to the `Livecheck` DSL's `#strategy` method. This updates the existing methods to follow suit and modifies the tests accordingly.
This commit is contained in:
		
							parent
							
								
									e0ffc45954
								
							
						
					
					
						commit
						b99e8626e2
					
				| @ -22,9 +22,14 @@ class Livecheck | ||||
|   # Sets the regex instance variable to the argument given, returns the | ||||
|   # regex instance variable when no argument is given. | ||||
|   def regex(pattern = nil) | ||||
|     return @regex if pattern.nil? | ||||
| 
 | ||||
|     @regex = pattern | ||||
|     case pattern | ||||
|     when nil | ||||
|       @regex | ||||
|     when Regexp | ||||
|       @regex = pattern | ||||
|     else | ||||
|       raise TypeError, "Livecheck#regex expects a Regexp" | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # Sets the skip instance variable to true, indicating that livecheck | ||||
| @ -32,8 +37,13 @@ class Livecheck | ||||
|   # its value is assigned to the skip_msg instance variable, else nil is | ||||
|   # assigned. | ||||
|   def skip(skip_msg = nil) | ||||
|     if skip_msg.is_a?(String) | ||||
|       @skip_msg = skip_msg | ||||
|     elsif skip_msg.present? | ||||
|       raise TypeError, "Livecheck#skip expects a String" | ||||
|     end | ||||
| 
 | ||||
|     @skip = true | ||||
|     @skip_msg = skip_msg.presence | ||||
|   end | ||||
| 
 | ||||
|   # Should livecheck be skipped for the formula? | ||||
| @ -60,15 +70,17 @@ class Livecheck | ||||
|   # Sets the url instance variable to the argument given, returns the url | ||||
|   # instance variable when no argument is given. | ||||
|   def url(val = nil) | ||||
|     return @url if val.nil? | ||||
| 
 | ||||
|     @url = case val | ||||
|     when nil | ||||
|       return @url | ||||
|     when :head, :stable, :devel | ||||
|       @formula.send(val).url | ||||
|     when :homepage | ||||
|       @formula.homepage | ||||
|     else | ||||
|     when String | ||||
|       val | ||||
|     else | ||||
|       raise TypeError, "Livecheck#url expects a String or valid Symbol" | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|  | ||||
| @ -20,6 +20,12 @@ describe Livecheck do | ||||
|       livecheckable.regex(/foo/) | ||||
|       expect(livecheckable.regex).to eq(/foo/) | ||||
|     end | ||||
| 
 | ||||
|     it "raises a TypeError if the argument isn't a Regexp" do | ||||
|       expect { | ||||
|         livecheckable.regex("foo") | ||||
|       }.to raise_error(TypeError, "Livecheck#regex expects a Regexp") | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe "#skip" do | ||||
| @ -34,6 +40,12 @@ describe Livecheck do | ||||
|       expect(livecheckable.instance_variable_get(:@skip)).to be true | ||||
|       expect(livecheckable.instance_variable_get(:@skip_msg)).to eq("foo") | ||||
|     end | ||||
| 
 | ||||
|     it "raises a TypeError if the argument isn't a String" do | ||||
|       expect { | ||||
|         livecheckable.skip(/foo/) | ||||
|       }.to raise_error(TypeError, "Livecheck#skip expects a String") | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe "#skip?" do | ||||
| @ -69,6 +81,11 @@ describe Livecheck do | ||||
|     it "returns the URL if set" do | ||||
|       livecheckable.url("foo") | ||||
|       expect(livecheckable.url).to eq("foo") | ||||
| 
 | ||||
|     it "raises a TypeError if the argument isn't a String or Symbol" do | ||||
|       expect { | ||||
|         livecheckable.url(/foo/) | ||||
|       }.to raise_error(TypeError, "Livecheck#url expects a String or valid Symbol") | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Sam Ford
						Sam Ford