kopia lustrzana https://git.sr.ht/~edwardloveall/scribe
				
				
				
			Handle gists with file extensions
Somehow, in my Gist Proxy code 7518a035b1 I never accounted for gist
ids with file extensions. For example: `def123.js` instead of plain
`def123`. This is now fixed and articles with those kinds of gists in
them work now.
Reference article:
https://medium.com/neat-tips-tricks/ocaml-continuation-explained-3b73839
b679f
			
			
				main
			
			
				2022-04-04
			
		
							rodzic
							
								
									89e5c7209f
								
							
						
					
					
						commit
						defec9319e
					
				|  | @ -10,6 +10,16 @@ describe GistParams do | |||
|     params.filename.should eq("example.txt") | ||||
|   end | ||||
| 
 | ||||
|   describe "when gist file has a file extension" do | ||||
|     it "extracts params from the gist url" do | ||||
|       url = "https://gist.github.com/user/1d.js" | ||||
| 
 | ||||
|       params = GistParams.extract_from_url(url) | ||||
| 
 | ||||
|       params.id.should eq("1d") | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe "when no file param exists" do | ||||
|     it "does not extract a filename" do | ||||
|       url = "https://gist.github.com/user/1D" | ||||
|  |  | |||
|  | @ -9,20 +9,15 @@ class GistParams | |||
| 
 | ||||
|   def self.extract_from_url(href : String) | ||||
|     uri = URI.parse(href) | ||||
|     maybe_id = Monads::Try(Regex::MatchData) | ||||
|       .new(->{ uri.path.match(GIST_ID_REGEX) }) | ||||
|       .to_maybe | ||||
|       .fmap(->(matches : Regex::MatchData) { matches[0] }) | ||||
|     case maybe_id | ||||
|     in Monads::Just | ||||
|       id = maybe_id.value! | ||||
|     in Monads::Nothing, Monads::Maybe | ||||
|     maybe_id = Path.posix(uri.path).stem | ||||
| 
 | ||||
|     if maybe_id.matches?(GIST_ID_REGEX) | ||||
|       id = maybe_id | ||||
|       filename = uri.query_params["file"]? | ||||
|       new(id: id, filename: filename) | ||||
|     else | ||||
|       raise MissingGistId.new(href) | ||||
|     end | ||||
| 
 | ||||
|     filename = uri.query_params["file"]? | ||||
| 
 | ||||
|     new(id: id, filename: filename) | ||||
|   end | ||||
| 
 | ||||
|   def initialize(@id : String, @filename : String?) | ||||
|  |  | |||
|  | @ -1,3 +1,3 @@ | |||
| module Scribe | ||||
|   VERSION = "2022-03-12" | ||||
|   VERSION = "2022-04-04" | ||||
| end | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Edward Loveall
						Edward Loveall