Module: DataUri
- Defined in:
- lib/calldata.rb
Constant Summary collapse
- REGEX =
%r{ \Adata: (?<mediatype> (?<mimetype> .+? / .+? )? (?<parameters> (?: ; .+? = .+? )* ) )? (?<extension>;base64)? , (?<data>.*)\z }x
Class Method Summary collapse
- ._parse(str) ⇒ Object
- .parse(str) ⇒ Object
- .valid?(str) ⇒ Boolean (also: is_valid?)
Class Method Details
._parse(str) ⇒ Object
98 |
# File 'lib/calldata.rb', line 98 def self._parse( str ) REGEX.match( str ); end |
.parse(str) ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/calldata.rb', line 100 def self.parse( str ) m = _parse( str ) if m ## 1) return mediatype (mimetype PLUS optional parameters) ## 2) return data (base64 decoded or not) mediatype = m[:mediatype] data = if m[:extension] ## assume base64 encoded Base64.strict_decode64(m[:data]) else m[:data] end [mediatype, data] else raise ArgumentError, "invalid datauri - cannot match regex; sorry" end end |
.valid?(str) ⇒ Boolean Also known as: is_valid?
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/calldata.rb', line 120 def self.valid?( str ) m = _parse( str ) if m if m[:extension] ## assume base64 begin Base64.strict_decode64(m[:data]) true rescue ArgumentError false end else true end else false end end |