@@ -74,7 +74,7 @@ def test_function_that_returns_a_number
74
74
75
75
def test_function_that_takes_a_number
76
76
assert_sass <<-SCSS , <<-CSS
77
- div { display: returns-arg (42.1px); }
77
+ div { display: inspect-number (42.1px); }
78
78
SCSS
79
79
div { display: 42.1px; }
80
80
CSS
@@ -144,7 +144,7 @@ def test_function_that_returns_a_sass_map
144
144
145
145
def test_function_that_takes_a_sass_map
146
146
assert_sass <<-SCSS , <<-CSS
147
- div { background-color: map-get( returns-arg (( dark : black, light: white )), dark ); }
147
+ div { background-color: map-get( inspect-map (( color : black, number: 1.23px, string: "abc", map: ( x: 'y' ))), color ); }
148
148
SCSS
149
149
div { background-color: black; }
150
150
CSS
@@ -199,8 +199,30 @@ def returns_a_number
199
199
return Sass ::Script ::Value ::Number . new ( -312 , 'rem' )
200
200
end
201
201
202
- def returns_arg ( arg )
203
- return arg
202
+ def inspect_number ( argument )
203
+ raise StandardError . new "passed value is not a Sass::Script::Value::Number" unless argument . is_a? Sass ::Script ::Value ::Number
204
+ return argument
205
+ end
206
+
207
+ def inspect_map ( argument )
208
+ argument . to_h . each_pair do |key , value |
209
+ raise StandardError . new "key #{ key . inspect } is not a string" unless key . is_a? Sass ::Script ::Value ::String
210
+
211
+ valueClass = case key . value
212
+ when 'string'
213
+ Sass ::Script ::Value ::String
214
+ when 'number'
215
+ Sass ::Script ::Value ::Number
216
+ when 'color'
217
+ Sass ::Script ::Value ::Color
218
+ when 'map'
219
+ Sass ::Script ::Value ::Map
220
+ end
221
+
222
+ raise StandardError . new "unknown key #{ key . inspect } " unless valueClass
223
+ raise StandardError . new "value for #{ key . inspect } is not a #{ valueClass } " unless value . is_a? valueClass
224
+ end
225
+ return argument
204
226
end
205
227
206
228
def returns_sass_value
0 commit comments