@@ -16,10 +16,11 @@ function match(mediaQuery, values) {
16
16
17
17
// -- Utilities ----------------------------------------------------------------
18
18
19
- var RE_MEDIA_QUERY = / (?: ( o n l y | n o t ) ? \s * ( [ ^ \s \( \) ] + ) \s * a n d \s * ) ? ( .+ ) ? / i,
20
- RE_MQ_EXPRESSION = / \( \s * ( [ ^ \s \: \) ] + ) \s * (?: \: \s * ( [ ^ \s \) ] + ) ) ? \s * \) / ,
21
- RE_MQ_FEATURE = / ^ (?: ( m i n | m a x ) - ) ? ( .+ ) / ,
22
- RE_LENGTH_UNIT = / ( e m | r e m | p x | c m | m m | i n | p t | p c ) ? $ / ;
19
+ var RE_MEDIA_QUERY = / (?: ( o n l y | n o t ) ? \s * ( [ ^ \s \( \) ] + ) \s * a n d \s * ) ? ( .+ ) ? / i,
20
+ RE_MQ_EXPRESSION = / \( \s * ( [ ^ \s \: \) ] + ) \s * (?: \: \s * ( [ ^ \s \) ] + ) ) ? \s * \) / ,
21
+ RE_MQ_FEATURE = / ^ (?: ( m i n | m a x ) - ) ? ( .+ ) / ,
22
+ RE_LENGTH_UNIT = / ( e m | r e m | p x | c m | m m | i n | p t | p c ) ? $ / ,
23
+ RE_RESOLUTION_UNIT = / ( d p i | d p c m | d p p x ) ? $ / ;
23
24
24
25
function parseQuery ( mediaQuery ) {
25
26
return mediaQuery . split ( ',' ) . map ( function ( query ) {
@@ -67,3 +68,19 @@ function toPx(length) {
67
68
default : return value ;
68
69
}
69
70
}
71
+
72
+ function toDpi ( resolution ) {
73
+ var value = parseFloat ( length ) ,
74
+ units = String ( length ) . match ( RE_RESOLUTION_UNIT ) [ 1 ] ;
75
+
76
+ switch ( units ) {
77
+ case 'dpcm' : return value / 2.54 ;
78
+ case 'dppx' : return value * 96 ;
79
+ default : return value ;
80
+ }
81
+ }
82
+
83
+ function toDecimal ( ratio ) {
84
+ var numbers = ratio . match ( / ^ ( \d + ) \s * \/ \s * ( \d + ) $ / ) ;
85
+ return numbers [ 1 ] / numbers [ 2 ] ;
86
+ }
0 commit comments