smalruby-editor 0.1.24 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of smalruby-editor might be problematic. Click here for more details.

Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/Guardfile +9 -0
  3. data/app/assets/javascripts/blocks/hardware.js.coffee.erb +147 -62
  4. data/app/assets/javascripts/blocks/sensing.js.coffee.erb +4 -0
  5. data/app/assets/javascripts/msg/en_us.js +34 -12
  6. data/app/assets/javascripts/msg/ja.js +35 -15
  7. data/app/helpers/editor_helper.rb +2 -1
  8. data/app/models/concerns/ruby_to_block/block/{hardware_button_down_or_up.rb → hardware_button_pressed_or_released.rb} +3 -3
  9. data/app/models/concerns/ruby_to_block/block/{hardware_led_on.rb → hardware_led_turn_off.rb} +2 -2
  10. data/app/models/concerns/ruby_to_block/block/{hardware_led_off.rb → hardware_led_turn_on.rb} +2 -2
  11. data/app/models/concerns/ruby_to_block/block/hardware_operation.rb +2 -0
  12. data/app/models/concerns/ruby_to_block/block/{hardware_rgb_led_on.rb → hardware_rgb_led_set_color.rb} +2 -2
  13. data/app/models/concerns/ruby_to_block/block/{hardware_rgb_led_off.rb → hardware_rgb_led_turn_off.rb} +2 -2
  14. data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action.rb +22 -0
  15. data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action_with_sec.rb +24 -0
  16. data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_led_turn_on_or_off.rb +22 -0
  17. data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_light_sensor_value.rb +28 -0
  18. data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_touch_sensor_pressed_or_released.rb +29 -0
  19. data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_commands.rb +3 -1
  20. data/app/views/editor/_toolbox.html.haml +30 -17
  21. data/app/views/layouts/application.html.erb +3 -1
  22. data/config/locales/en.yml +1 -0
  23. data/config/locales/ja.yml +1 -0
  24. data/lib/smalruby_editor/blockly_message_helper.rb +2 -1
  25. data/lib/smalruby_editor/version.rb +1 -1
  26. data/lib/tasks/release.rake +0 -0
  27. data/smalruby-editor.gemspec +1 -1
  28. data/spec/acceptance/block_mode/blocks/hardware/{button_down_or_up.feature → button_pressed_or_released.feature} +15 -15
  29. data/spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature +67 -0
  30. data/spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature +67 -0
  31. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature +79 -0
  32. data/spec/acceptance/block_mode/blocks/hardware/{button_not_use_pullup.feature → rgb_led_turn_off.feature} +30 -18
  33. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action.feature +107 -0
  34. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature +151 -0
  35. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_led_turn_on_or_off.feature +73 -0
  36. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_light_sensor_value.feature +92 -0
  37. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_motor_speed.feature +116 -0
  38. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_touch_sensor_pressed_or_released.feature +108 -0
  39. data/spec/models/concerns/ruby_to_block/block/hardware_spec.rb +359 -36
  40. data/spec/models/concerns/ruby_to_block_spec.rb +8 -8
  41. data/spec/steps/block_mode_steps.rb +8 -0
  42. metadata +43 -35
  43. data/app/models/concerns/ruby_to_block/block/hardware_button_not_use_pullup.rb +0 -18
  44. data/app/models/concerns/ruby_to_block/block/hardware_on_button_down_or_up.rb +0 -19
  45. data/app/models/concerns/ruby_to_block/block/hardware_on_sensor_change.rb +0 -17
  46. data/spec/acceptance/block_mode/blocks/hardware/led_off.feature +0 -75
  47. data/spec/acceptance/block_mode/blocks/hardware/led_on.feature +0 -75
  48. data/spec/acceptance/block_mode/blocks/hardware/on_button_down_or_up.feature +0 -87
  49. data/spec/acceptance/block_mode/blocks/hardware/on_sensor_change.feature +0 -81
  50. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_off.feature +0 -81
  51. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_on.feature +0 -87
@@ -423,13 +423,13 @@ frog1 = Character.new(costume: "frog1.png", x: 261, y: 191, angle: 0)
423
423
 
424
424
  frog1.on(:click) do
425
425
  say(message: "ライトをぴかっとさせるでよ♪")
426
- rgb_led_anode("D3").on(color: [51, 51, 255])
426
+ rgb_led_anode("D3").color = [51, 51, 255]
427
427
  sleep(1)
428
- rgb_led_anode("D3").on(color: [255, 255, 153])
428
+ rgb_led_anode("D3").color = [255, 255, 153]
429
429
  sleep(1)
430
- rgb_led_anode("D3").on(color: [255, 0, 0])
430
+ rgb_led_anode("D3").color = [255, 0, 0]
431
431
  sleep(1)
432
- rgb_led_anode("D3").off
432
+ rgb_led_anode("D3").turn_off
433
433
  say(message: "")
434
434
  end
435
435
  EOS
@@ -453,7 +453,7 @@ end
453
453
  </block>
454
454
  </value>
455
455
  <next>
456
- <block type="hardware_rgb_led_on">
456
+ <block type="hardware_rgb_led_set_color">
457
457
  <field name="AC">anode</field>
458
458
  <field name="PIN">D3</field>
459
459
  <field name="COLOUR">#3333ff</field>
@@ -465,7 +465,7 @@ end
465
465
  </block>
466
466
  </value>
467
467
  <next>
468
- <block type="hardware_rgb_led_on">
468
+ <block type="hardware_rgb_led_set_color">
469
469
  <field name="AC">anode</field>
470
470
  <field name="PIN">D3</field>
471
471
  <field name="COLOUR">#ffff99</field>
@@ -477,7 +477,7 @@ end
477
477
  </block>
478
478
  </value>
479
479
  <next>
480
- <block type="hardware_rgb_led_on">
480
+ <block type="hardware_rgb_led_set_color">
481
481
  <field name="AC">anode</field>
482
482
  <field name="PIN">D3</field>
483
483
  <field name="COLOUR">#ff0000</field>
@@ -489,7 +489,7 @@ end
489
489
  </block>
490
490
  </value>
491
491
  <next>
492
- <block type="hardware_rgb_led_off">
492
+ <block type="hardware_rgb_led_turn_off">
493
493
  <field name="AC">anode</field>
494
494
  <field name="PIN">D3</field>
495
495
  <next>
@@ -50,6 +50,14 @@ step '次のキャラクターを追加する:' do |table|
50
50
  end
51
51
  end
52
52
 
53
+ step 'キャラクターcar1を追加する' do
54
+ table = Turnip::Table.new([
55
+ %w(name costumes x y angle),
56
+ %w(car1 car1.png 0 0 0),
57
+ ])
58
+ step '次のキャラクターを追加する:', table
59
+ end
60
+
53
61
  step '次のXMLと同等のブロックが配置されていること:' do |xml|
54
62
  expect(page.evaluate_script('Smalruby.dumpXml()')).to eq(xml)
55
63
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smalruby-editor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.24
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouji Takao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-16 00:00:00.000000000 Z
11
+ date: 2015-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 0.0.32
187
+ version: 0.1.1
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: 0.0.32
194
+ version: 0.1.1
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: therubyracer
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -330,20 +330,22 @@ files:
330
330
  - app/models/concerns/ruby_to_block/block/events_on_click.rb
331
331
  - app/models/concerns/ruby_to_block/block/events_on_key_push_or_down.rb
332
332
  - app/models/concerns/ruby_to_block/block/events_on_start.rb
333
- - app/models/concerns/ruby_to_block/block/hardware_button_down_or_up.rb
334
- - app/models/concerns/ruby_to_block/block/hardware_button_not_use_pullup.rb
333
+ - app/models/concerns/ruby_to_block/block/hardware_button_pressed_or_released.rb
335
334
  - app/models/concerns/ruby_to_block/block/hardware_init_hardware.rb
336
- - app/models/concerns/ruby_to_block/block/hardware_led_off.rb
337
- - app/models/concerns/ruby_to_block/block/hardware_led_on.rb
335
+ - app/models/concerns/ruby_to_block/block/hardware_led_turn_off.rb
336
+ - app/models/concerns/ruby_to_block/block/hardware_led_turn_on.rb
338
337
  - app/models/concerns/ruby_to_block/block/hardware_motor_driver.rb
339
338
  - app/models/concerns/ruby_to_block/block/hardware_motor_driver_set_speed.rb
340
339
  - app/models/concerns/ruby_to_block/block/hardware_motor_driver_speed.rb
341
- - app/models/concerns/ruby_to_block/block/hardware_on_button_down_or_up.rb
342
- - app/models/concerns/ruby_to_block/block/hardware_on_sensor_change.rb
343
340
  - app/models/concerns/ruby_to_block/block/hardware_operation.rb
344
- - app/models/concerns/ruby_to_block/block/hardware_rgb_led_off.rb
345
- - app/models/concerns/ruby_to_block/block/hardware_rgb_led_on.rb
341
+ - app/models/concerns/ruby_to_block/block/hardware_rgb_led_set_color.rb
342
+ - app/models/concerns/ruby_to_block/block/hardware_rgb_led_turn_off.rb
346
343
  - app/models/concerns/ruby_to_block/block/hardware_sensor_value.rb
344
+ - app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action.rb
345
+ - app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action_with_sec.rb
346
+ - app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_led_turn_on_or_off.rb
347
+ - app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_light_sensor_value.rb
348
+ - app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_touch_sensor_pressed_or_released.rb
347
349
  - app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car.rb
348
350
  - app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_commands.rb
349
351
  - app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_run.rb
@@ -454,10 +456,10 @@ files:
454
456
  - public/422.html
455
457
  - public/500.html
456
458
  - public/apple-touch-icon.png
459
+ - public/assets/application-b305a6ea9e7c045a8e170bbf6fb09dd1.js
460
+ - public/assets/application-b305a6ea9e7c045a8e170bbf6fb09dd1.js.gz
457
461
  - public/assets/application-d5358d75a2c4e570c749b333c59b55ab.css
458
462
  - public/assets/application-d5358d75a2c4e570c749b333c59b55ab.css.gz
459
- - public/assets/application-fda71a642d958ffbaf90185c471d6e51.js
460
- - public/assets/application-fda71a642d958ffbaf90185c471d6e51.js.gz
461
463
  - public/assets/blockly/msg/js/en_us-6f7333af29688596ef863fa36a22cb41.js
462
464
  - public/assets/blockly/msg/js/en_us-6f7333af29688596ef863fa36a22cb41.js.gz
463
465
  - public/assets/blockly/msg/js/ja-d2cbf808bda8180571bc5f39141a98fe.js
@@ -478,11 +480,11 @@ files:
478
480
  - public/assets/jquery-ui/ui-icons_888888_256x240-ce584ffa171c3ea9a018cf0d7bec65c8.png
479
481
  - public/assets/jquery-ui/ui-icons_cd0a0a_256x240-747e96029e8dedcabc224e5f7d1f2ede.png
480
482
  - public/assets/loading-e77296be32d066d3e29d3bf9803fa417.gif
481
- - public/assets/manifest-1a9856df207640ec658271db34b30dbb.json
482
- - public/assets/msg/en_us-893d970ff8061fbe7459f009582c4df5.js
483
- - public/assets/msg/en_us-893d970ff8061fbe7459f009582c4df5.js.gz
484
- - public/assets/msg/ja-4d22bd0341f464f9d1b9f373121bce6d.js
485
- - public/assets/msg/ja-4d22bd0341f464f9d1b9f373121bce6d.js.gz
483
+ - public/assets/manifest-ebd584fa603a378faf780f013e6a447d.json
484
+ - public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js
485
+ - public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js.gz
486
+ - public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js
487
+ - public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js.gz
486
488
  - public/assets/progressbar-ee8fb1222f286f625bbf7332844a6a0c.gif
487
489
  - public/blockly/media/1x1.gif
488
490
  - public/blockly/media/click.mp3
@@ -552,19 +554,22 @@ files:
552
554
  - spec/acceptance/block_mode/blocks/events/on_hit.feature
553
555
  - spec/acceptance/block_mode/blocks/events/on_key_push_or_down.feature
554
556
  - spec/acceptance/block_mode/blocks/events/on_start.feature
555
- - spec/acceptance/block_mode/blocks/hardware/button_down_or_up.feature
556
- - spec/acceptance/block_mode/blocks/hardware/button_not_use_pullup.feature
557
+ - spec/acceptance/block_mode/blocks/hardware/button_pressed_or_released.feature
557
558
  - spec/acceptance/block_mode/blocks/hardware/init_hardware.feature
558
- - spec/acceptance/block_mode/blocks/hardware/led_off.feature
559
- - spec/acceptance/block_mode/blocks/hardware/led_on.feature
559
+ - spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature
560
+ - spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature
560
561
  - spec/acceptance/block_mode/blocks/hardware/motor_driver.feature
561
562
  - spec/acceptance/block_mode/blocks/hardware/motor_driver_speed.feature
562
- - spec/acceptance/block_mode/blocks/hardware/on_button_down_or_up.feature
563
- - spec/acceptance/block_mode/blocks/hardware/on_sensor_change.feature
564
- - spec/acceptance/block_mode/blocks/hardware/rgb_led_off.feature
565
- - spec/acceptance/block_mode/blocks/hardware/rgb_led_on.feature
563
+ - spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature
564
+ - spec/acceptance/block_mode/blocks/hardware/rgb_led_turn_off.feature
566
565
  - spec/acceptance/block_mode/blocks/hardware/sensor_value.feature
567
566
  - spec/acceptance/block_mode/blocks/hardware/servo_set_position.feature
567
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action.feature
568
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature
569
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_led_turn_on_or_off.feature
570
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_light_sensor_value.feature
571
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_motor_speed.feature
572
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_touch_sensor_pressed_or_released.feature
568
573
  - spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car.feature
569
574
  - spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car_speed.feature
570
575
  - spec/acceptance/block_mode/blocks/looks/hide.feature
@@ -721,19 +726,22 @@ test_files:
721
726
  - spec/acceptance/block_mode/blocks/events/on_hit.feature
722
727
  - spec/acceptance/block_mode/blocks/events/on_key_push_or_down.feature
723
728
  - spec/acceptance/block_mode/blocks/events/on_start.feature
724
- - spec/acceptance/block_mode/blocks/hardware/button_down_or_up.feature
725
- - spec/acceptance/block_mode/blocks/hardware/button_not_use_pullup.feature
729
+ - spec/acceptance/block_mode/blocks/hardware/button_pressed_or_released.feature
726
730
  - spec/acceptance/block_mode/blocks/hardware/init_hardware.feature
727
- - spec/acceptance/block_mode/blocks/hardware/led_off.feature
728
- - spec/acceptance/block_mode/blocks/hardware/led_on.feature
731
+ - spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature
732
+ - spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature
729
733
  - spec/acceptance/block_mode/blocks/hardware/motor_driver.feature
730
734
  - spec/acceptance/block_mode/blocks/hardware/motor_driver_speed.feature
731
- - spec/acceptance/block_mode/blocks/hardware/on_button_down_or_up.feature
732
- - spec/acceptance/block_mode/blocks/hardware/on_sensor_change.feature
733
- - spec/acceptance/block_mode/blocks/hardware/rgb_led_off.feature
734
- - spec/acceptance/block_mode/blocks/hardware/rgb_led_on.feature
735
+ - spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature
736
+ - spec/acceptance/block_mode/blocks/hardware/rgb_led_turn_off.feature
735
737
  - spec/acceptance/block_mode/blocks/hardware/sensor_value.feature
736
738
  - spec/acceptance/block_mode/blocks/hardware/servo_set_position.feature
739
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action.feature
740
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature
741
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_led_turn_on_or_off.feature
742
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_light_sensor_value.feature
743
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_motor_speed.feature
744
+ - spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_touch_sensor_pressed_or_released.feature
737
745
  - spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car.feature
738
746
  - spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car_speed.feature
739
747
  - spec/acceptance/block_mode/blocks/looks/hide.feature
@@ -1,18 +0,0 @@
1
- module RubyToBlock
2
- module Block
3
- class HardwareButtonNotUsePullup < CharacterMethodCall
4
- include HardwareOperation
5
-
6
- blocknize '^\s*' + CHAR_RE +
7
- 'button\(' + DIO_PIN_RE + '\)\.not_use_pullup\s*$',
8
- statement: true
9
-
10
- def self.process_match_data(md, context)
11
- md2 = regexp.match(md[type])
12
- add_character_method_call_block(context, md2[1],
13
- new(fields: { PIN: md2[2] }))
14
- true
15
- end
16
- end
17
- end
18
- end
@@ -1,19 +0,0 @@
1
- module RubyToBlock
2
- module Block
3
- class HardwareOnButtonDownOrUp < CharacterEvent
4
- include HardwareOperation
5
-
6
- blocknize '^\s*' + CHAR_RE +
7
- 'on\(:button_(down|up),' + DIO_PIN_RE + '\)\s+' +
8
- 'do\s*$',
9
- statement: true, indent: true
10
-
11
- def self.process_match_data(md, context)
12
- md2 = regexp.match(md[type])
13
- add_character_event_blocks(context, md2[1],
14
- new(fields: { PIN: md2[3], DOU: md2[2] }))
15
- true
16
- end
17
- end
18
- end
19
- end
@@ -1,17 +0,0 @@
1
- module RubyToBlock
2
- module Block
3
- class HardwareOnSensorChange < CharacterEvent
4
- # rubocop:disable LineLength
5
- blocknize '^\s*' + CHAR_RE + 'on\(:sensor_change,\s*"(A[0-5])"\s*\)\s+do\s*$',
6
- statement: true, indent: true
7
- # rubocop:enable LineLength
8
-
9
- def self.process_match_data(md, context)
10
- md2 = regexp.match(md[type])
11
- add_character_event_blocks(context, md2[1],
12
- new(fields: { PIN: md2[2] }))
13
- true
14
- end
15
- end
16
- end
17
- end
@@ -1,75 +0,0 @@
1
- # encoding: utf-8
2
- # language: ja
3
- @javascript
4
- 機能: hardware_led_off - 「LED[▼ピン]をオフにする」ブロック
5
- シナリオ: ブロックのみ配置する
6
- 前提 "ブロック" タブを表示する
7
-
8
- もし 次のブロックを配置する:
9
- """
10
- %block{:type => "hardware_led_off", :x => "0", :y => "0"}
11
- %field{:name => "PIN"}<
12
- D13
13
- """
14
- かつ ブロックからソースコードを生成する
15
-
16
- ならば テキストエディタのプログラムは "" であること
17
-
18
- シナリオ: キャラクターとブロックを配置する
19
- 前提 "ブロック" タブを表示する
20
- かつ 次のキャラクターを追加する:
21
- | name | costumes | x | y | angle |
22
- | car1 | car1.png | 0 | 0 | 0 |
23
-
24
- もし 次のブロックを配置する:
25
- """
26
- %block{:type => "character_new", :x => "21", :y => "15"}
27
- %field{:name => "NAME"}<
28
- car1
29
- %statement{:name => "DO"}
30
- %block{:type => "hardware_led_off", :x => "0", :y => "0"}
31
- %field{:name => "PIN"}<
32
- D13
33
- """
34
- かつ ブロックからソースコードを生成する
35
-
36
- ならば テキストエディタのプログラムは以下であること:
37
- """
38
- require "smalruby"
39
-
40
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
41
- car1.led("D13").off
42
-
43
- """
44
-
45
- シナリオ: キャラクターとイベントとブロックを配置する
46
- 前提 "ブロック" タブを表示する
47
- かつ 次のキャラクターを追加する:
48
- | name | costumes | x | y | angle |
49
- | car1 | car1.png | 0 | 0 | 0 |
50
-
51
- もし 次のブロックを配置する:
52
- """
53
- %block{:type => "character_new", :x => "21", :y => "15"}
54
- %field{:name => "NAME"}<
55
- car1
56
- %statement{:name => "DO"}
57
- %block{:type => "events_on_start"}
58
- %statement{:name => "DO"}
59
- %block{:type => "hardware_led_off", :x => "0", :y => "0"}
60
- %field{:name => "PIN"}<
61
- D13
62
- """
63
- かつ ブロックからソースコードを生成する
64
-
65
- ならば テキストエディタのプログラムは以下であること:
66
- """
67
- require "smalruby"
68
-
69
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
70
-
71
- car1.on(:start) do
72
- led("D13").off
73
- end
74
-
75
- """
@@ -1,75 +0,0 @@
1
- # encoding: utf-8
2
- # language: ja
3
- @javascript
4
- 機能: hardware_led_on - 「LED[▼ピン]をオンにする」ブロック
5
- シナリオ: ブロックのみ配置する
6
- 前提 "ブロック" タブを表示する
7
-
8
- もし 次のブロックを配置する:
9
- """
10
- %block{:type => "hardware_led_on", :x => "0", :y => "0"}
11
- %field{:name => "PIN"}<
12
- D13
13
- """
14
- かつ ブロックからソースコードを生成する
15
-
16
- ならば テキストエディタのプログラムは "" であること
17
-
18
- シナリオ: キャラクターとブロックを配置する
19
- 前提 "ブロック" タブを表示する
20
- かつ 次のキャラクターを追加する:
21
- | name | costumes | x | y | angle |
22
- | car1 | car1.png | 0 | 0 | 0 |
23
-
24
- もし 次のブロックを配置する:
25
- """
26
- %block{:type => "character_new", :x => "21", :y => "15"}
27
- %field{:name => "NAME"}<
28
- car1
29
- %statement{:name => "DO"}
30
- %block{:type => "hardware_led_on", :x => "0", :y => "0"}
31
- %field{:name => "PIN"}<
32
- D13
33
- """
34
- かつ ブロックからソースコードを生成する
35
-
36
- ならば テキストエディタのプログラムは以下であること:
37
- """
38
- require "smalruby"
39
-
40
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
41
- car1.led("D13").on
42
-
43
- """
44
-
45
- シナリオ: キャラクターとイベントとブロックを配置する
46
- 前提 "ブロック" タブを表示する
47
- かつ 次のキャラクターを追加する:
48
- | name | costumes | x | y | angle |
49
- | car1 | car1.png | 0 | 0 | 0 |
50
-
51
- もし 次のブロックを配置する:
52
- """
53
- %block{:type => "character_new", :x => "21", :y => "15"}
54
- %field{:name => "NAME"}<
55
- car1
56
- %statement{:name => "DO"}
57
- %block{:type => "events_on_start"}
58
- %statement{:name => "DO"}
59
- %block{:type => "hardware_led_on", :x => "0", :y => "0"}
60
- %field{:name => "PIN"}<
61
- D13
62
- """
63
- かつ ブロックからソースコードを生成する
64
-
65
- ならば テキストエディタのプログラムは以下であること:
66
- """
67
- require "smalruby"
68
-
69
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
70
-
71
- car1.on(:start) do
72
- led("D13").on
73
- end
74
-
75
- """
@@ -1,87 +0,0 @@
1
- # encoding: utf-8
2
- # language: ja
3
- @javascript
4
- 機能: hardware_on_button_down_or_up - 「ボタン[▼PIN]が[▼押された]とき」ブロック
5
- シナリオ: ブロックのみ配置する
6
- 前提 "ブロック" タブを表示する
7
-
8
- もし 次のブロックを配置する:
9
- """
10
- %block{:type => "hardware_on_button_down_or_up", :x => "0", :y => "0"}
11
- %field{:name => "PIN"}<
12
- D2
13
- %field{:name => "DOU"}<
14
- down
15
- """
16
- かつ ブロックからソースコードを生成する
17
-
18
- ならば テキストエディタのプログラムは "" であること
19
-
20
- シナリオ: キャラクターとブロックを配置する
21
- 前提 "ブロック" タブを表示する
22
- かつ 次のキャラクターを追加する:
23
- | name | costumes | x | y | angle |
24
- | car1 | car1.png | 0 | 0 | 0 |
25
-
26
- もし 次のブロックを配置する:
27
- """
28
- %block{:type => "character_new", :x => "21", :y => "15"}
29
- %field{:name => "NAME"}<
30
- car1
31
- %statement{:name => "DO"}
32
- %block{:type => "hardware_on_button_down_or_up", :x => "0", :y => "0"}
33
- %field{:name => "PIN"}<
34
- D2
35
- %field{:name => "DOU"}<
36
- down
37
- """
38
- かつ ブロックからソースコードを生成する
39
-
40
- ならば テキストエディタのプログラムは以下であること:
41
- """
42
- require "smalruby"
43
-
44
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
45
-
46
- car1.on(:button_down, "D2") do
47
-
48
- end
49
-
50
- """
51
-
52
- シナリオ: キャラクターとイベントとブロックを配置する
53
- 前提 "ブロック" タブを表示する
54
- かつ 次のキャラクターを追加する:
55
- | name | costumes | x | y | angle |
56
- | car1 | car1.png | 0 | 0 | 0 |
57
-
58
- もし 次のブロックを配置する:
59
- """
60
- %block{:type => "character_new", :x => "21", :y => "15"}
61
- %field{:name => "NAME"}<
62
- car1
63
- %statement{:name => "DO"}
64
- %block{:type => "events_on_start"}
65
- %statement{:name => "DO"}
66
- %block{:type => "hardware_on_button_down_or_up", :x => "0", :y => "0"}
67
- %field{:name => "PIN"}<
68
- D2
69
- %field{:name => "DOU"}<
70
- up
71
- """
72
- かつ ブロックからソースコードを生成する
73
-
74
- ならば テキストエディタのプログラムは以下であること:
75
- """
76
- require "smalruby"
77
-
78
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
79
-
80
- car1.on(:start) do
81
-
82
- on(:button_up, "D2") do
83
-
84
- end
85
- end
86
-
87
- """