Skip to content

Commit

Permalink
wrap everything inside a module
Browse files Browse the repository at this point in the history
  • Loading branch information
drkameleon committed Apr 29, 2024
1 parent 38dd657 commit 9149761
Showing 1 changed file with 39 additions and 37 deletions.
76 changes: 39 additions & 37 deletions src/mimetypes.art
Original file line number Diff line number Diff line change
Expand Up @@ -8,48 +8,50 @@
; (c) 2024 Yanis Zafirópulos
;===============================================

;---------------------------
; Private variables
;---------------------------
export module [
;---------------------------
; Private variables
;---------------------------

_mimetypes: #./"mimedb.art"
mimetypes: #./"mimedb.art"

;---------------------------
; Public methods
;---------------------------
;---------------------------
; Public methods
;---------------------------

mimetype: function [location :string][
;; description: « get mimetype(s) from given extension/filepath
;; options: [
;; extensions: « get possible file extensions for given mimetype instead
;; ]
;; returns: :block
;; example: {
;; mimetype "jpg" ; => ["image/jpeg"]
;; mimetype "somefile.jpg" ; => ["image/jpeg"]
;; mimetype "boom" ; => []
;;
;; mimetype.extensions "image/jpeg"
;; ; => ["jpe","jpeg","jpg"]
;; }
extensions?: not? null? attr 'extensions
mimetype: method.public [location :string][
;; description: « get mimetype(s) from given extension/filepath
;; options: [
;; extensions: « get possible file extensions for given mimetype instead
;; ]
;; returns: :block
;; example: {
;; mimetype "jpg" ; => ["image/jpeg"]
;; mimetype "somefile.jpg" ; => ["image/jpeg"]
;; mimetype "boom" ; => []
;;
;; mimetype.extensions "image/jpeg"
;; ; => ["jpe","jpeg","jpg"]
;; }
extensions?: not? null? attr 'extensions

extensions? ? [
ret: []
loop _mimetypes [k,v][
if contains? v location ->
'ret ++ k
]
return sort ret
][
isPath: contains? location "."

extension: isPath ? -> replace extract.extension location "." ""
-> location
extensions? ? [
ret: []
loop \mimetypes [k,v][
if contains? v location ->
'ret ++ k
]
return sort ret
][
isPath: contains? location "."
extension: isPath ? -> replace extract.extension location "." ""
-> location

ret: []
try -> ret: _mimetypes\[extension]
return ret
ret: []
try -> ret: \mimetypes\[extension]
return ret
]
]
]

Expand Down

0 comments on commit 9149761

Please sign in to comment.