smalruby-editor 0.1.24-x86-mingw32 → 0.2.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (62) 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/public/assets/{application-fda71a642d958ffbaf90185c471d6e51.js → application-b305a6ea9e7c045a8e170bbf6fb09dd1.js} +3 -3
  28. data/public/assets/{application-fda71a642d958ffbaf90185c471d6e51.js.gz → application-b305a6ea9e7c045a8e170bbf6fb09dd1.js.gz} +0 -0
  29. data/public/assets/{manifest-1a9856df207640ec658271db34b30dbb.json → manifest-ebd584fa603a378faf780f013e6a447d.json} +1 -1
  30. data/public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js +1 -0
  31. data/public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js.gz +0 -0
  32. data/public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js +1 -0
  33. data/public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js.gz +0 -0
  34. data/smalruby-editor.gemspec +1 -1
  35. data/spec/acceptance/block_mode/blocks/hardware/{button_down_or_up.feature → button_pressed_or_released.feature} +15 -15
  36. data/spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature +67 -0
  37. data/spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature +67 -0
  38. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature +79 -0
  39. data/spec/acceptance/block_mode/blocks/hardware/{button_not_use_pullup.feature → rgb_led_turn_off.feature} +30 -18
  40. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action.feature +107 -0
  41. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature +151 -0
  42. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_led_turn_on_or_off.feature +73 -0
  43. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_light_sensor_value.feature +92 -0
  44. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_motor_speed.feature +116 -0
  45. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_touch_sensor_pressed_or_released.feature +108 -0
  46. data/spec/models/concerns/ruby_to_block/block/hardware_spec.rb +359 -36
  47. data/spec/models/concerns/ruby_to_block_spec.rb +8 -8
  48. data/spec/steps/block_mode_steps.rb +8 -0
  49. metadata +43 -35
  50. data/app/models/concerns/ruby_to_block/block/hardware_button_not_use_pullup.rb +0 -18
  51. data/app/models/concerns/ruby_to_block/block/hardware_on_button_down_or_up.rb +0 -19
  52. data/app/models/concerns/ruby_to_block/block/hardware_on_sensor_change.rb +0 -17
  53. data/public/assets/msg/en_us-893d970ff8061fbe7459f009582c4df5.js +0 -1
  54. data/public/assets/msg/en_us-893d970ff8061fbe7459f009582c4df5.js.gz +0 -0
  55. data/public/assets/msg/ja-4d22bd0341f464f9d1b9f373121bce6d.js +0 -1
  56. data/public/assets/msg/ja-4d22bd0341f464f9d1b9f373121bce6d.js.gz +0 -0
  57. data/spec/acceptance/block_mode/blocks/hardware/led_off.feature +0 -75
  58. data/spec/acceptance/block_mode/blocks/hardware/led_on.feature +0 -75
  59. data/spec/acceptance/block_mode/blocks/hardware/on_button_down_or_up.feature +0 -87
  60. data/spec/acceptance/block_mode/blocks/hardware/on_sensor_change.feature +0 -81
  61. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_off.feature +0 -81
  62. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_on.feature +0 -87
@@ -8,6 +8,21 @@ goog.require('Blockly.Msg');
8
8
  * to message files.
9
9
  */
10
10
 
11
+ // common
12
+ Blockly.Msg.COMMON_TURN_ON = 'オンにする';
13
+ Blockly.Msg.COMMON_TURN_OFF = 'オフにする';
14
+ Blockly.Msg.COMMON_FORWARD = '進める';
15
+ Blockly.Msg.COMMON_BACKWARD = 'バックさせる';
16
+ Blockly.Msg.COMMON_TURN_LEFT = '左に曲げる';
17
+ Blockly.Msg.COMMON_TURN_RIGHT = '右に曲げる';
18
+ Blockly.Msg.COMMON_STOP = '止める';
19
+
20
+
21
+ // colour name
22
+ Blockly.Msg.COLOUR_RED = '赤色';
23
+ Blockly.Msg.COLOUR_GREEN = '緑色';
24
+
25
+
11
26
  // views/main_menu_view.js.coffee
12
27
  Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LINES = '行';
13
28
  Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LETTERS = '文字';
@@ -74,13 +89,16 @@ Blockly.Msg.BLOCKS_SENSING_K_DOWN = '↓';
74
89
  Blockly.Msg.BLOCKS_SENSING_K_LEFT = '←';
75
90
  Blockly.Msg.BLOCKS_SENSING_K_RIGHT = '→';
76
91
  Blockly.Msg.BLOCKS_SENSING_K_SPACE = 'スペース';
77
- Blockly.Msg.BLOCKS_SENSING_PUSH = '押された';
78
- Blockly.Msg.BLOCKS_SENSING_HOLD_DOWN = '押され続けている';
79
- Blockly.Msg.BLOCKS_SENSING_DOWN = Blockly.Msg.BLOCKS_SENSING_PUSH;
92
+ Blockly.Msg.BLOCKS_SENSING_PRESSED = '押された';
93
+ Blockly.Msg.BLOCKS_SENSING_PUSH = Blockly.Msg.BLOCKS_SENSING_PRESSED;
94
+ Blockly.Msg.BLOCKS_SENSING_UP = Blockly.Msg.BLOCKS_SENSING_PRESSED;
95
+ Blockly.Msg.BLOCKS_SENSING_HOLD_PRESSED = '押され続けている';
96
+ Blockly.Msg.BLOCKS_SENSING_HOLD_DOWN = Blockly.Msg.BLOCKS_SENSING_HOLD_PRESSED;
80
97
  Blockly.Msg.BLOCKS_SENSING_M_LBUTTON = '左ボタン';
81
98
  Blockly.Msg.BLOCKS_SENSING_M_MBUTTON = '中ボタン';
82
99
  Blockly.Msg.BLOCKS_SENSING_M_RBUTTON = '右ボタン';
83
- Blockly.Msg.BLOCKS_SENSING_UP = '離された';
100
+ Blockly.Msg.BLOCKS_SENSING_RELEASED = '離された';
101
+ Blockly.Msg.BLOCKS_SENSING_UP = Blockly.Msg.BLOCKS_SENSING_RELEASED;
84
102
  Blockly.Msg.BLOCKS_SENSING_REACH_WALL = '端に触れた';
85
103
  Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_PREFIX = 'キーボードの';
86
104
  Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_MIDDLE = 'が';
@@ -153,17 +171,15 @@ Blockly.Msg.BLOCKS_LOOKS_HIDE = '隠す';
153
171
  Blockly.Msg.BLOCKS_LOOKS_VANISH = '消滅する';
154
172
 
155
173
  // blocks/hardware.js.coffee.erb
156
- Blockly.Msg.BLOCKS_HARDWARE_LED_ON = 'LED%1をオンにする';
157
- Blockly.Msg.BLOCKS_HARDWARE_LED_OFF = 'LED%1をオフにする';
174
+ Blockly.Msg.BLOCKS_HARDWARE_LED_TURN_ON = 'LED%1をオンにする';
175
+ Blockly.Msg.BLOCKS_HARDWARE_LED_TURN_OFF = 'LED%1をオフにする';
158
176
  Blockly.Msg.BLOCKS_HARDWARE_ANODE = 'アノード';
159
177
  Blockly.Msg.BLOCKS_HARDWARE_CATHODE = 'カソード';
160
178
  Blockly.Msg.BLOCKS_HARDWARE_LEFT = ' 左';
161
179
  Blockly.Msg.BLOCKS_HARDWARE_RIGHT = '右';
162
180
  Blockly.Msg.BLOCKS_HARDWARE_INIT_HARDWARE = 'ハードウェアを準備する';
163
- Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_ON = 'set RGB LED %1 common %2 color to %3';
164
-
165
- Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_ON = 'RGB LED%1コモン%2を%3にする';
166
- Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_OFF = 'RGB LED%1コモン%2をオフにする';
181
+ Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_SET_COLOR = 'RGB LED%1コモン%2を%3にする';
182
+ Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_TURN_OFF = 'RGB LED%1コモン%2をオフにする';
167
183
  Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_SHOW = '7セグディスプレイに%1を表示する';
168
184
  Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_OFF = '7セグディスプレイをオフにする';
169
185
  Blockly.Msg.BLOCKS_HARDWARE_LCD_PUTS = 'LCDに%1を表示する';
@@ -188,11 +204,15 @@ Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_STOP = '止める';
188
204
  Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER = '(モータードライバ%1で)モーターを%2';
189
205
  Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SET_SPEED = '(モータードライバ%1の)モーターの速度を%2にする';
190
206
  Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SPEED = '(モータードライバ%1の)モーターの速度(%)';
191
- Blockly.Msg.BLOCKS_HARDWARE_BUTTON_DOWN_OR_UP = 'ボタン%1が%2';
192
- Blockly.Msg.BLOCKS_HARDWARE_ON_BUTTON_DOWN_OR_UP = 'ボタン%1が%2とき';
193
- Blockly.Msg.BLOCKS_HARDWARE_BUTTON_NOT_USE_PULLUP = 'ボタン%1のプルアップ抵抗を使わない';
194
- Blockly.Msg.BLOCKS_HARDWARE_SENSOR_VALUE = 'センサー%1';
195
- Blockly.Msg.BLOCKS_HARDWARE_ON_SENSOR_CHANGE = 'センサー%1が変化したとき';
207
+ Blockly.Msg.BLOCKS_HARDWARE_BUTTON_PRESSED_OR_RELEASED = 'ボタン %1 が %2';
208
+ Blockly.Msg.BLOCKS_HARDWARE_SENSOR_VALUE = 'センサー %1';
209
+ Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_LED_TURN_ON_OR_OFF = 'スモウルボットV3の %1 LEDを %2';
210
+ Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_MOTOR_SPEED = 'スモウルボットV3の %1 モーターの速度(%)';
211
+ Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_MOTOR_SET_SPEED = 'スモウルボットV3の %1 モーターの速度を %2 (%) にする';
212
+ Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_ACTION = 'スモウルボットV3を %1';
213
+ Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_ACTION_WITH_SEC = 'スモウルボットV3を %2 秒 %1';
214
+ Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_TOUCH_SENSOR_PRESSED_OR_RELEASED = 'スモウルボットV3の %1 のタッチセンサーが %2 ?';
215
+ Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_LIGHT_SENSOR_VALUE = 'スモウルボットV3の光センサー';
196
216
 
197
217
 
198
218
  // blocks/operators.js.coffee.erb
@@ -32,10 +32,11 @@ module EditorHelper
32
32
  # @param [Numeric] value 数値
33
33
  # @return [String] XML
34
34
  def toolbox_number_value(name, value = 0)
35
+ value = value.to_i unless value.is_a?(Numeric)
35
36
  <<-XML.strip_heredoc.html_safe
36
37
  <value name="#{h name}">
37
38
  <block type="math_number">
38
- <field name="NUM">#{h value.to_i}</field>
39
+ <field name="NUM">#{h value}</field>
39
40
  </block>
40
41
  </value>
41
42
  XML
@@ -1,11 +1,11 @@
1
1
  module RubyToBlock
2
2
  module Block
3
- class HardwareButtonDownOrUp < Value
3
+ class HardwareButtonPressedOrReleased < Value
4
4
  include CharacterOperation
5
5
  include HardwareOperation
6
6
 
7
7
  blocknize '^\s*' + CHAR_RE +
8
- 'button\(' + DIO_PIN_RE + '\)\.(down|up)\?\s*$',
8
+ 'button\(' + DIO_PIN_RE + '\)\.(pressed|released)\?\s*$',
9
9
  value: true
10
10
 
11
11
  def self.process_match_data(md, context)
@@ -14,7 +14,7 @@ module RubyToBlock
14
14
  character = get_character(context, md2[1])
15
15
  return false if context.receiver && context.receiver != character
16
16
 
17
- block = new(fields: { PIN: md2[2], DOU: md2[3] })
17
+ block = new(fields: { PIN: md2[2], POR: md2[3] })
18
18
  context.add_value(block)
19
19
  block.character = character
20
20
 
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module RubyToBlock
3
3
  module Block
4
- class HardwareLedOn < CharacterMethodCall
5
- blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).on\s*$',
4
+ class HardwareLedTurnOff < CharacterMethodCall
5
+ blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).turn_off\s*$',
6
6
  statement: true
7
7
 
8
8
  def self.process_match_data(md, context)
@@ -1,8 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module RubyToBlock
3
3
  module Block
4
- class HardwareLedOff < CharacterMethodCall
5
- blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).off\s*$',
4
+ class HardwareLedTurnOn < CharacterMethodCall
5
+ blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).turn_on\s*$',
6
6
  statement: true
7
7
 
8
8
  def self.process_match_data(md, context)
@@ -10,6 +10,8 @@ module RubyToBlock
10
10
  AIO_PIN_RE = '\s*"(A[0-5])"\s*'
11
11
  TWO_WHEEL_DRIVE_CAR_PIN_RE = '\s*"(D[56])"\s*'
12
12
  LOR_RE = '(left|right)'
13
+ POR_RE = '(pressed|released)'
14
+ ACTION_RE = '(forward|backward|turn_left|turn_right|stop)'
13
15
  end
14
16
  end
15
17
  end
@@ -1,9 +1,9 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module RubyToBlock
3
3
  module Block
4
- class HardwareRgbLedOn < CharacterMethodCall
4
+ class HardwareRgbLedSetColor < CharacterMethodCall
5
5
  # rubocop:disable LineLength
6
- blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\).on\(color:\s*\[(\d+),\s*(\d+),\s*(\d+)\]\)\s*$',
6
+ blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\).color\s*=\s*\[(\d+),\s*(\d+),\s*(\d+)\]\s*$',
7
7
  statement: true
8
8
  # rubocop:enable LineLength
9
9
 
@@ -1,9 +1,9 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module RubyToBlock
3
3
  module Block
4
- class HardwareRgbLedOff < CharacterMethodCall
4
+ class HardwareRgbLedTurnOff < CharacterMethodCall
5
5
  # rubocop:disable LineLength
6
- blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\)\.off\s*$',
6
+ blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\)\.turn_off\s*$',
7
7
  statement: true
8
8
  # rubocop:enable LineLength
9
9
 
@@ -0,0 +1,22 @@
1
+ # -*- coding: utf-8 -*-
2
+ module RubyToBlock
3
+ module Block
4
+ class HardwareSmalrubotV3Action < CharacterMethodCall
5
+ include HardwareOperation
6
+
7
+ # rubocop:disable LineLength
8
+ blocknize '^\s*' + CHAR_RE +
9
+ 'smalrubot_v3\.' + ACTION_RE +
10
+ '\s*$',
11
+ statement: true, inline: true
12
+ # rubocop:enable LineLength
13
+
14
+ def self.process_match_data(md, context)
15
+ md2 = regexp.match(md[type])
16
+ add_character_method_call_block(context, md2[1],
17
+ new(fields: { ACTION: md2[2] }))
18
+ true
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,24 @@
1
+ # -*- coding: utf-8 -*-
2
+ module RubyToBlock
3
+ module Block
4
+ class HardwareSmalrubotV3ActionWithSec < CharacterMethodCall
5
+ include HardwareOperation
6
+
7
+ # rubocop:disable LineLength
8
+ blocknize '^\s*' + CHAR_RE +
9
+ 'smalrubot_v3\.' + ACTION_RE +
10
+ '\(\s*sec:\s*(\d+(?:\.\d+)?)\)' +
11
+ '\s*$',
12
+ statement: true, inline: true
13
+ # rubocop:enable LineLength
14
+
15
+ def self.process_match_data(md, context)
16
+ md2 = regexp.match(md[type])
17
+ add_character_method_call_block(context, md2[1],
18
+ new(fields: { ACTION: md2[2] }),
19
+ SEC: md2[3])
20
+ true
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,22 @@
1
+ # -*- coding: utf-8 -*-
2
+ module RubyToBlock
3
+ module Block
4
+ class HardwareSmalrubotV3LedTurnOnOrOff < CharacterMethodCall
5
+ include HardwareOperation
6
+
7
+ # rubocop:disable LineLength
8
+ blocknize '^\s*' + CHAR_RE +
9
+ 'smalrubot_v3\.(red|green)_led.(turn_on|turn_off)' +
10
+ '\s*$',
11
+ statement: true, inline: true
12
+ # rubocop:enable LineLength
13
+
14
+ def self.process_match_data(md, context)
15
+ md2 = regexp.match(md[type])
16
+ block = new(fields: { COLOUR: md2[2], OOO: md2[3] })
17
+ add_character_method_call_block(context, md2[1], block)
18
+ true
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,28 @@
1
+ module RubyToBlock
2
+ module Block
3
+ class HardwareSmalrubotV3LightSensorValue < Value
4
+ include CharacterOperation
5
+
6
+ # rubocop:disable LineLength
7
+ blocknize '^\s*' + CHAR_RE +
8
+ 'smalrubot_v3\.' +
9
+ 'light_sensor\.value' +
10
+ '\s*$',
11
+ value: true
12
+ # rubocop:enable LineLength
13
+
14
+ def self.process_match_data(md, context)
15
+ md2 = regexp.match(md[type])
16
+
17
+ character = get_character(context, md2[1])
18
+ return false if context.receiver && context.receiver != character
19
+
20
+ block = new
21
+ context.add_value(block)
22
+ block.character = character
23
+
24
+ true
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,29 @@
1
+ module RubyToBlock
2
+ module Block
3
+ class HardwareSmalrubotV3TouchSensorPressedOrReleased < Value
4
+ include CharacterOperation
5
+ include HardwareOperation
6
+
7
+ # rubocop:disable LineLength
8
+ blocknize '^\s*' + CHAR_RE +
9
+ 'smalrubot_v3\.' +
10
+ LOR_RE + '_touch_sensor\.' + POR_RE + '\?' +
11
+ '\s*$',
12
+ value: true
13
+ # rubocop:enable LineLength
14
+
15
+ def self.process_match_data(md, context)
16
+ md2 = regexp.match(md[type])
17
+
18
+ character = get_character(context, md2[1])
19
+ return false if context.receiver && context.receiver != character
20
+
21
+ block = new(fields: { LOR: md2[2], POR: md2[3] })
22
+ context.add_value(block)
23
+ block.character = character
24
+
25
+ true
26
+ end
27
+ end
28
+ end
29
+ end
@@ -2,7 +2,9 @@
2
2
  module RubyToBlock
3
3
  module Block
4
4
  class HardwareTwoWheelDriveCarCommands < Value
5
- blocknize '^\s*"(forward|backward|turn_left|turn_right|stop)"\s*$',
5
+ include HardwareOperation
6
+
7
+ blocknize '^\s*"' + ACTION_RE + '"\s*$',
6
8
  value: true, priority: 1
7
9
 
8
10
  def self.process_match_data(md, context)
@@ -140,6 +140,19 @@
140
140
  = toolbox_pin_field('D6')
141
141
  = toolbox_number_value('SPEED', 100)
142
142
 
143
+ - subcategory = 'smalrubot_v3'
144
+ %block{type: "#{category}_#{subcategory}_action"}
145
+ %field{name: 'ACTION'}<
146
+ forward
147
+
148
+ %block{type: "#{category}_#{subcategory}_action_with_sec"}
149
+ %field{name: 'ACTION'}<
150
+ forward
151
+ = toolbox_number_value('SEC', 0.5)
152
+
153
+ %block{type: "#{category}_#{subcategory}_motor_set_speed"}
154
+ = toolbox_number_value('SPEED', 100)
155
+
143
156
  - category = 'looks'
144
157
  %category{:name => t('.looks')}
145
158
  -# [ ]と( )秒言う
@@ -187,17 +200,17 @@
187
200
  - category = 'hardware'
188
201
  - subcategory = 'led'
189
202
  -# LED[▼PIN]をオンにする
190
- %block{:type => "#{category}_#{subcategory}_on"}
203
+ %block{:type => "#{category}_#{subcategory}_turn_on"}
191
204
 
192
205
  -# LED[▼PIN]をオフにする
193
- %block{:type => "#{category}_#{subcategory}_off"}
206
+ %block{:type => "#{category}_#{subcategory}_turn_off"}
194
207
 
195
208
  - subcategory = 'rgb_led'
196
209
  -# RGB LED[▼アノード]コモン[▼PIN]を[カラー]にする
197
- %block{:type => "#{category}_#{subcategory}_on"}
210
+ %block{:type => "#{category}_#{subcategory}_set_color"}
198
211
 
199
212
  -# RGB LED[▼アノード]コモン[▼PIN]をオフにする
200
- %block{:type => "#{category}_#{subcategory}_off"}
213
+ %block{:type => "#{category}_#{subcategory}_turn_off"}
201
214
 
202
215
  - subcategory = 'seven_segment_display'
203
216
  -# 7セグディスプレイに[▼0-9]を表示する
@@ -214,6 +227,13 @@
214
227
  -# LCDをクリアする
215
228
  %block{:type => "#{category}_#{subcategory}_clear"}
216
229
 
230
+ - subcategory = 'smalrubot_v3'
231
+ %block{type: "#{category}_#{subcategory}_led_turn_on_or_off"}
232
+ %field{name: 'COLOUR'}<
233
+ red
234
+ %field{name: 'OOO'}<
235
+ turn_on
236
+
217
237
  - category = 'sound'
218
238
  %category{:name => t('.sound')}
219
239
  -# [▼プリセット音声]の音を鳴らす
@@ -257,14 +277,6 @@
257
277
  -# [▼キャラクター]にぶつかったとき
258
278
  %block{:type => "#{category}_on_hit"}
259
279
 
260
- - if !raspberrypi?
261
- - category = 'hardware'
262
- -# センサー[▼PIN]が変化したとき
263
- %block{:type => "#{category}_on_sensor_change"}
264
-
265
- -# ボタン[▼PIN]が[▼押された]とき
266
- %block{:type => "#{category}_on_button_down_or_up"}
267
-
268
280
  - category = 'control'
269
281
  %category{:name => t('.control')}
270
282
  %category{:name => t('.control_loop')}
@@ -359,7 +371,7 @@
359
371
  = toolbox_pin_field('A0')
360
372
 
361
373
  -# 条件:ボタン[▼PIN]が[▼押された]
362
- %block{:type => "#{category}_button_down_or_up"}
374
+ %block{:type => "#{category}_button_pressed_or_released"}
363
375
  = toolbox_pin_field('D3')
364
376
 
365
377
  -# 2WD車[▼PIN]の[▼LOR]の速度%
@@ -370,6 +382,11 @@
370
382
  %block{:type => "#{category}_motor_driver_speed"}
371
383
  = toolbox_pin_field('D6')
372
384
 
385
+ - subcategory = 'smalrubot_v3'
386
+ %block{type: "#{category}_#{subcategory}_touch_sensor_pressed_or_released"}
387
+ %block{type: "#{category}_#{subcategory}_light_sensor_value"}
388
+ %block{type: "#{category}_#{subcategory}_motor_speed"}
389
+
373
390
  - category = 'operators'
374
391
  %category{:name => t('.operators')}
375
392
  %category{:name => t('.operators_calculate')}
@@ -477,7 +494,3 @@
477
494
  %category{:name => t('.etc_hardware')}
478
495
  -# ハードウェアを準備する
479
496
  %block{:type => "#{category}_init_hardware"}
480
-
481
- -# ボタン[▼PIN]のプルアップ抵抗を使わない
482
- %block{:type => "#{category}_button_not_use_pullup"}
483
- = toolbox_pin_field('D3')
@@ -1,7 +1,9 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
- <title>smalruby-editor</title>
4
+ <title>
5
+ <%= t('common.smalruby_editor', version: SmalrubyEditor::VERSION) %>
6
+ </title>
5
7
  <%= favicon_link_tag %>
6
8
  <link rel="apple-touch-icon" href="apple-touch-icon.png" />
7
9
  <meta name="application-name" content="Smalruby" />
@@ -1,5 +1,6 @@
1
1
  en:
2
2
  common:
3
+ smalruby_editor: "Smalruby v%{version}"
3
4
  "ok": "OK"
4
5
  cancel: "Cancel"
5
6