File tree Expand file tree Collapse file tree 2 files changed +65
-2
lines changed Expand file tree Collapse file tree 2 files changed +65
-2
lines changed Original file line number Diff line number Diff line change @@ -234,10 +234,12 @@ export default function (Blockly) {
234234
235235 let code = this . hashToCode ( attributes , ': ' , false ) ;
236236 if ( code . length > 0 ) {
237- code = `,\n${ this . prefixLines ( code , ' ' ) } ` ;
237+ const indent = renderedTarget . isStage ? ' ' : ' ' ;
238+ code = `,\n${ this . prefixLines ( code , indent ) } ` ;
238239 }
240+ const klass = renderedTarget . isStage ? 'Stage' : 'Sprite' ;
239241 const name = renderedTarget . sprite . name ;
240- return `Sprite .new(${ this . quote_ ( name ) } ${ code } )` ;
242+ return `${ klass } .new(${ this . quote_ ( name ) } ${ code } )` ;
241243 } ;
242244
243245 Blockly . Ruby . characterStack = function ( ) {
Original file line number Diff line number Diff line change @@ -276,5 +276,66 @@ describe('RubyGenerator', () => {
276276 const expected = `Sprite.new(${ Ruby . quote_ ( spriteName ) } )` ;
277277 expect ( Ruby . spriteNew ( renderedTarget ) ) . toEqual ( expected ) ;
278278 } ) ;
279+
280+ test ( 'the Stage.new instead of the Sprite.new if stage' , ( ) => {
281+ Object . assign ( renderedTarget , {
282+ isStage : true
283+ } ) ;
284+ const expected = `Stage.new(${ Ruby . quote_ ( spriteName ) } ,
285+ x: ${ renderedTarget . x } ,
286+ y: ${ renderedTarget . y } ,
287+ direction: ${ renderedTarget . direction } ,
288+ visible: ${ ! ! renderedTarget . visible } ,
289+ size: ${ renderedTarget . size } ,
290+ current_costume: ${ renderedTarget . currentCostume - 1 } ,
291+ costumes: [
292+ {
293+ asset_id: "01ae57fd339529445cb890978ef8a054",
294+ name: "Costume1",
295+ bitmap_resolution: 1,
296+ md5: "01ae57fd339529445cb890978ef8a054.svg",
297+ data_format: "svg",
298+ rotation_center_x: 47,
299+ rotation_center_y: 55
300+ },
301+ {
302+ asset_id: "3b6274510488d5b26447c1c266475801",
303+ name: "Costume2",
304+ bitmap_resolution: 1,
305+ md5: "3b6274510488d5b26447c1c266475801.svg",
306+ data_format: "svg",
307+ rotation_center_x: 65,
308+ rotation_center_y: 61
309+ }
310+ ],
311+ rotation_style: :left_right,
312+ variables: [
313+ {
314+ name: "Variable1",
315+ value: 10
316+ },
317+ {
318+ name: "Variable2"
319+ },
320+ {
321+ name: "Variable3",
322+ value: "abc"
323+ }
324+ ],
325+ lists: [
326+ {
327+ name: "List1",
328+ value: [1, 2, 3]
329+ },
330+ {
331+ name: "List2"
332+ },
333+ {
334+ name: "List3",
335+ value: ["a", "b", "c"]
336+ }
337+ ])` ;
338+ expect ( Ruby . spriteNew ( renderedTarget ) ) . toEqual ( expected ) ;
339+ } ) ;
279340 } ) ;
280341} ) ;
You can’t perform that action at this time.
0 commit comments