smalruby-editor 0.1.22 → 0.1.23

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 (396) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -0
  3. data/.rspec +0 -0
  4. data/.rubocop.yml +0 -0
  5. data/.ruby-version +1 -1
  6. data/.simplecov +0 -0
  7. data/.travis.yml +1 -1
  8. data/LEGAL +0 -0
  9. data/LICENSE +0 -0
  10. data/Procfile +0 -0
  11. data/README.rdoc +1 -0
  12. data/Rakefile +0 -0
  13. data/app/assets/images/.keep +0 -0
  14. data/app/assets/images/favicon.ico +0 -0
  15. data/app/assets/javascripts/application.js +0 -1
  16. data/app/assets/javascripts/blocks/blockly.js.coffee.erb +0 -0
  17. data/app/assets/javascripts/blocks/character.js.coffee.erb +0 -0
  18. data/app/assets/javascripts/blocks/control.js.coffee.erb +16 -19
  19. data/app/assets/javascripts/blocks/data.js.coffee.erb +0 -0
  20. data/app/assets/javascripts/blocks/etc.js.coffee.erb +0 -0
  21. data/app/assets/javascripts/blocks/events.js.coffee.erb +8 -6
  22. data/app/assets/javascripts/blocks/field_character.js.coffee.erb +6 -1
  23. data/app/assets/javascripts/blocks/hardware.js.coffee.erb +117 -167
  24. data/app/assets/javascripts/blocks/looks.js.coffee.erb +14 -16
  25. data/app/assets/javascripts/blocks/motion.js.coffee.erb +46 -47
  26. data/app/assets/javascripts/blocks/operators.js.coffee.erb +54 -57
  27. data/app/assets/javascripts/blocks/pen.js.coffee.erb +5 -9
  28. data/app/assets/javascripts/blocks/ruby.js.coffee.erb +4 -3
  29. data/app/assets/javascripts/blocks/sensing.js.coffee.erb +53 -48
  30. data/app/assets/javascripts/blocks/sound.js.coffee.erb +12 -10
  31. data/app/assets/javascripts/collections/.keep +0 -0
  32. data/app/assets/javascripts/collections/character_set.js.coffee +0 -0
  33. data/app/assets/javascripts/fix_blockly.js +74 -0
  34. data/app/assets/javascripts/generators/ruby.js.coffee.erb +0 -0
  35. data/app/assets/javascripts/models/.keep +0 -0
  36. data/app/assets/javascripts/models/character.js.coffee +0 -0
  37. data/app/assets/javascripts/models/scene.js.coffee +0 -0
  38. data/app/assets/javascripts/models/source_code.js.coffee +0 -0
  39. data/app/assets/javascripts/msg/en_us.js +236 -0
  40. data/app/assets/javascripts/msg/ja.js +237 -0
  41. data/app/assets/javascripts/routers/.keep +0 -0
  42. data/app/assets/javascripts/smalruby.js.coffee +8 -0
  43. data/app/assets/javascripts/views/.keep +0 -0
  44. data/app/assets/javascripts/views/character_modal_view.js.coffee +0 -0
  45. data/app/assets/javascripts/views/character_selector_view.js.coffee +0 -0
  46. data/app/assets/javascripts/views/load_modal_view.js.coffee +0 -0
  47. data/app/assets/javascripts/views/{main_menu_view.js.coffee → main_menu_view.js.coffee.erb} +19 -18
  48. data/app/assets/javascripts/views/reset_modal_view.js.coffee +0 -0
  49. data/app/assets/javascripts/views/signin_modal_view.js.coffee +0 -0
  50. data/app/assets/stylesheets/application.css +0 -0
  51. data/app/assets/stylesheets/editor.css.scss +4 -0
  52. data/app/assets/stylesheets/flatstrap-custom.css.scss +0 -0
  53. data/app/assets/stylesheets/load-modal.css.scss +0 -0
  54. data/app/assets/stylesheets/toolbox.css.scss.erb +0 -0
  55. data/app/assets/templates/.keep +0 -0
  56. data/app/controllers/application_controller.rb +16 -0
  57. data/app/controllers/concerns/.keep +0 -0
  58. data/app/controllers/editor_controller.rb +0 -0
  59. data/app/controllers/sessions_controller.rb +0 -0
  60. data/app/controllers/source_codes_controller.rb +0 -0
  61. data/app/helpers/application_helper.rb +11 -0
  62. data/app/helpers/editor_helper.rb +0 -0
  63. data/app/helpers/sessions_helper.rb +0 -0
  64. data/app/mailers/.keep +0 -0
  65. data/app/models/.keep +0 -0
  66. data/app/models/concerns/.keep +0 -0
  67. data/app/models/concerns/ruby_to_block.rb +0 -0
  68. data/app/models/concerns/ruby_to_block/block.rb +0 -0
  69. data/app/models/concerns/ruby_to_block/block/base.rb +0 -0
  70. data/app/models/concerns/ruby_to_block/block/character.rb +0 -0
  71. data/app/models/concerns/ruby_to_block/block/character_event.rb +0 -0
  72. data/app/models/concerns/ruby_to_block/block/character_method_call.rb +0 -0
  73. data/app/models/concerns/ruby_to_block/block/character_new.rb +0 -0
  74. data/app/models/concerns/ruby_to_block/block/character_operation.rb +0 -0
  75. data/app/models/concerns/ruby_to_block/block/control_beark.rb +0 -0
  76. data/app/models/concerns/ruby_to_block/block/control_if.rb +0 -0
  77. data/app/models/concerns/ruby_to_block/block/control_loop.rb +0 -0
  78. data/app/models/concerns/ruby_to_block/block/control_sleep.rb +0 -0
  79. data/app/models/concerns/ruby_to_block/block/do.rb +0 -0
  80. data/app/models/concerns/ruby_to_block/block/else.rb +0 -0
  81. data/app/models/concerns/ruby_to_block/block/end.rb +0 -0
  82. data/app/models/concerns/ruby_to_block/block/events_on_click.rb +0 -0
  83. data/app/models/concerns/ruby_to_block/block/events_on_key_push_or_down.rb +0 -0
  84. data/app/models/concerns/ruby_to_block/block/events_on_start.rb +0 -0
  85. data/app/models/concerns/ruby_to_block/block/hardware_button_down_or_up.rb +0 -0
  86. data/app/models/concerns/ruby_to_block/block/hardware_button_not_use_pullup.rb +0 -0
  87. data/app/models/concerns/ruby_to_block/block/hardware_init_hardware.rb +0 -0
  88. data/app/models/concerns/ruby_to_block/block/hardware_led_off.rb +0 -0
  89. data/app/models/concerns/ruby_to_block/block/hardware_led_on.rb +0 -0
  90. data/app/models/concerns/ruby_to_block/block/hardware_motor_driver.rb +0 -0
  91. data/app/models/concerns/ruby_to_block/block/hardware_motor_driver_set_speed.rb +0 -0
  92. data/app/models/concerns/ruby_to_block/block/hardware_motor_driver_speed.rb +0 -0
  93. data/app/models/concerns/ruby_to_block/block/hardware_on_button_down_or_up.rb +0 -0
  94. data/app/models/concerns/ruby_to_block/block/hardware_on_sensor_change.rb +0 -0
  95. data/app/models/concerns/ruby_to_block/block/hardware_operation.rb +0 -0
  96. data/app/models/concerns/ruby_to_block/block/hardware_rgb_led_off.rb +0 -0
  97. data/app/models/concerns/ruby_to_block/block/hardware_rgb_led_on.rb +0 -0
  98. data/app/models/concerns/ruby_to_block/block/hardware_sensor_value.rb +0 -0
  99. data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car.rb +0 -0
  100. data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_commands.rb +0 -0
  101. data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_run.rb +0 -0
  102. data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_set_speed.rb +0 -0
  103. data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_speed.rb +0 -0
  104. data/app/models/concerns/ruby_to_block/block/looks_hide.rb +0 -0
  105. data/app/models/concerns/ruby_to_block/block/looks_say.rb +0 -0
  106. data/app/models/concerns/ruby_to_block/block/looks_show.rb +0 -0
  107. data/app/models/concerns/ruby_to_block/block/looks_vanish.rb +0 -0
  108. data/app/models/concerns/ruby_to_block/block/math_number.rb +0 -0
  109. data/app/models/concerns/ruby_to_block/block/motion_change_x_by.rb +0 -0
  110. data/app/models/concerns/ruby_to_block/block/motion_change_y_by.rb +0 -0
  111. data/app/models/concerns/ruby_to_block/block/motion_go_to_character.rb +0 -0
  112. data/app/models/concerns/ruby_to_block/block/motion_go_to_mouse.rb +0 -0
  113. data/app/models/concerns/ruby_to_block/block/motion_move.rb +0 -0
  114. data/app/models/concerns/ruby_to_block/block/motion_point_towards_character.rb +0 -0
  115. data/app/models/concerns/ruby_to_block/block/motion_point_towards_mouse.rb +0 -0
  116. data/app/models/concerns/ruby_to_block/block/motion_rotate_left.rb +0 -0
  117. data/app/models/concerns/ruby_to_block/block/motion_rotate_right.rb +0 -0
  118. data/app/models/concerns/ruby_to_block/block/motion_self_angle.rb +0 -0
  119. data/app/models/concerns/ruby_to_block/block/motion_self_x.rb +0 -0
  120. data/app/models/concerns/ruby_to_block/block/motion_self_y.rb +0 -0
  121. data/app/models/concerns/ruby_to_block/block/motion_set_angle.rb +0 -0
  122. data/app/models/concerns/ruby_to_block/block/motion_set_rotation_style.rb +17 -0
  123. data/app/models/concerns/ruby_to_block/block/motion_set_x.rb +0 -0
  124. data/app/models/concerns/ruby_to_block/block/motion_set_x_y.rb +0 -0
  125. data/app/models/concerns/ruby_to_block/block/motion_set_y.rb +0 -0
  126. data/app/models/concerns/ruby_to_block/block/motion_turn.rb +0 -0
  127. data/app/models/concerns/ruby_to_block/block/motion_turn_if_reach_wall.rb +0 -0
  128. data/app/models/concerns/ruby_to_block/block/motion_turn_xy.rb +0 -0
  129. data/app/models/concerns/ruby_to_block/block/null.rb +0 -0
  130. data/app/models/concerns/ruby_to_block/block/operators_compare.rb +0 -0
  131. data/app/models/concerns/ruby_to_block/block/operators_false.rb +0 -0
  132. data/app/models/concerns/ruby_to_block/block/operators_true.rb +0 -0
  133. data/app/models/concerns/ruby_to_block/block/require_smalruby.rb +0 -0
  134. data/app/models/concerns/ruby_to_block/block/ruby_comment.rb +0 -0
  135. data/app/models/concerns/ruby_to_block/block/ruby_expression.rb +0 -0
  136. data/app/models/concerns/ruby_to_block/block/ruby_p.rb +0 -0
  137. data/app/models/concerns/ruby_to_block/block/ruby_statement.rb +0 -0
  138. data/app/models/concerns/ruby_to_block/block/sensing_hit.rb +0 -0
  139. data/app/models/concerns/ruby_to_block/block/sensing_reach_wall.rb +0 -0
  140. data/app/models/concerns/ruby_to_block/block/sound_play.rb +0 -0
  141. data/app/models/concerns/ruby_to_block/block/sound_preset_sounds.rb +0 -0
  142. data/app/models/concerns/ruby_to_block/block/text.rb +0 -0
  143. data/app/models/concerns/ruby_to_block/block/value.rb +0 -0
  144. data/app/models/concerns/ruby_to_block/context.rb +0 -0
  145. data/app/models/concerns/ruby_to_block/formatter.rb +0 -0
  146. data/app/models/source_code.rb +0 -0
  147. data/app/views/editor/_block_tab.html.haml +4 -4
  148. data/app/views/editor/_character_modal.html.haml +7 -7
  149. data/app/views/editor/_load_modal.html.haml +6 -6
  150. data/app/views/editor/_reset_modal.html.haml +0 -0
  151. data/app/views/editor/_signin_modal.html.haml +0 -0
  152. data/app/views/editor/_toolbox.html.haml +39 -39
  153. data/app/views/editor/demo.html.erb +0 -0
  154. data/app/views/editor/index.html.haml +18 -18
  155. data/app/views/layouts/application.html.erb +2 -0
  156. data/bin/bundle +0 -0
  157. data/bin/rails +0 -0
  158. data/bin/rake +0 -0
  159. data/bin/smalruby-editor +0 -0
  160. data/config.ru +0 -0
  161. data/config/application.rb +1 -1
  162. data/config/boot.rb +0 -0
  163. data/config/database.yml.mysql2 +0 -0
  164. data/config/database.yml.sqlite3 +0 -0
  165. data/config/database.yml.travis +0 -0
  166. data/config/environment.rb +0 -0
  167. data/config/environments/development.rb +0 -0
  168. data/config/environments/production.rb +4 -1
  169. data/config/environments/standalone.rb +0 -0
  170. data/config/environments/test.rb +0 -0
  171. data/config/initializers/backtrace_silencers.rb +0 -0
  172. data/config/initializers/filter_parameter_logging.rb +0 -0
  173. data/config/initializers/inflections.rb +0 -0
  174. data/config/initializers/mime_types.rb +0 -0
  175. data/config/initializers/secret_token.rb +0 -0
  176. data/config/initializers/session_store.rb +0 -0
  177. data/config/initializers/teaspoon.rb +0 -0
  178. data/config/initializers/wrap_parameters.rb +0 -0
  179. data/config/locales/en.yml +64 -22
  180. data/config/locales/ja.yml +65 -0
  181. data/config/routes.rb +3 -1
  182. data/config/unicorn.rb +0 -0
  183. data/db/migrate/20131216121603_create_source_codes.rb +0 -0
  184. data/db/migrate/20131219045113_add_filename_to_source_code.rb +0 -0
  185. data/db/schema.rb +0 -0
  186. data/db/seeds.rb +0 -0
  187. data/demos/adjust_2wd_car.rb.xml +0 -0
  188. data/demos/car_chase.rb.xml +0 -0
  189. data/demos/hardware_led.rb.xml +0 -0
  190. data/demos/pong.rb.xml +0 -0
  191. data/demos/star.rb.xml +0 -0
  192. data/lib/assets/.keep +0 -0
  193. data/lib/smalruby_editor.rb +0 -0
  194. data/lib/smalruby_editor/blockly_message_helper.rb +20 -0
  195. data/lib/smalruby_editor/version.rb +1 -1
  196. data/lib/tasks/.keep +0 -0
  197. data/lib/tasks/gem.rake +1 -3
  198. data/lib/tasks/release.rake +0 -0
  199. data/lib/tasks/rspec.rake +0 -0
  200. data/lib/tasks/rubocop.rake +0 -0
  201. data/log/.keep +0 -0
  202. data/public/404.html +0 -0
  203. data/public/422.html +0 -0
  204. data/public/500.html +0 -0
  205. data/public/apple-touch-icon.png +0 -0
  206. data/public/blockly/media/1x1.gif +0 -0
  207. data/public/blockly/media/click.mp3 +0 -0
  208. data/public/blockly/media/click.ogg +0 -0
  209. data/public/blockly/media/click.wav +0 -0
  210. data/public/blockly/media/delete.mp3 +0 -0
  211. data/public/blockly/media/delete.ogg +0 -0
  212. data/public/blockly/media/delete.wav +0 -0
  213. data/public/blockly/media/handclosed.cur +0 -0
  214. data/public/blockly/media/handopen.cur +0 -0
  215. data/public/blockly/media/quote0.png +0 -0
  216. data/public/blockly/media/quote1.png +0 -0
  217. data/public/blockly/media/trashbody.png +0 -0
  218. data/public/blockly/media/trashlid.png +0 -0
  219. data/public/blockly/media/tree.png +0 -0
  220. data/public/browserconfig.xml +0 -0
  221. data/public/fonts/FontAwesome.otf +0 -0
  222. data/public/fonts/fontawesome-webfont.eot +0 -0
  223. data/public/fonts/fontawesome-webfont.ttf +0 -0
  224. data/public/fonts/fontawesome-webfont.woff +0 -0
  225. data/public/large.png +0 -0
  226. data/public/robots.txt +0 -0
  227. data/public/smalruby/assets/ball1.png +0 -0
  228. data/public/smalruby/assets/ball2.png +0 -0
  229. data/public/smalruby/assets/ball3.png +0 -0
  230. data/public/smalruby/assets/ball4.png +0 -0
  231. data/public/smalruby/assets/ball5.png +0 -0
  232. data/public/smalruby/assets/ball6.png +0 -0
  233. data/public/smalruby/assets/car1.png +0 -0
  234. data/public/smalruby/assets/car2.png +0 -0
  235. data/public/smalruby/assets/car3.png +0 -0
  236. data/public/smalruby/assets/car4.png +0 -0
  237. data/public/smalruby/assets/cat1.png +0 -0
  238. data/public/smalruby/assets/cat2.png +0 -0
  239. data/public/smalruby/assets/cat3.png +0 -0
  240. data/public/smalruby/assets/frog1.png +0 -0
  241. data/public/smalruby/assets/piano_do.wav +0 -0
  242. data/public/smalruby/assets/piano_do_2.wav +0 -0
  243. data/public/smalruby/assets/piano_fa.wav +0 -0
  244. data/public/smalruby/assets/piano_mi.wav +0 -0
  245. data/public/smalruby/assets/piano_ra.wav +0 -0
  246. data/public/smalruby/assets/piano_re.wav +0 -0
  247. data/public/smalruby/assets/piano_si.wav +0 -0
  248. data/public/smalruby/assets/piano_so.wav +0 -0
  249. data/public/smalruby/assets/ryu1.png +0 -0
  250. data/public/smalruby/assets/ryu2.png +0 -0
  251. data/public/smalruby/assets/taichi1.png +0 -0
  252. data/public/smalruby/assets/taichi2.png +0 -0
  253. data/public/square.png +0 -0
  254. data/public/tiny.png +0 -0
  255. data/public/wide.png +0 -0
  256. data/smalruby-editor.gemspec +1 -1
  257. data/spec/acceptance/base.feature +0 -0
  258. data/spec/acceptance/block_mode/blocks/character/new.feature +0 -0
  259. data/spec/acceptance/block_mode/blocks/control/await.feature +0 -0
  260. data/spec/acceptance/block_mode/blocks/control/await_until.feature +0 -0
  261. data/spec/acceptance/block_mode/blocks/control/break.feature +0 -0
  262. data/spec/acceptance/block_mode/blocks/control/if.feature +0 -0
  263. data/spec/acceptance/block_mode/blocks/control/if_else.feature +0 -0
  264. data/spec/acceptance/block_mode/blocks/control/loop.feature +0 -0
  265. data/spec/acceptance/block_mode/blocks/control/next.feature +0 -0
  266. data/spec/acceptance/block_mode/blocks/control/redo.feature +0 -0
  267. data/spec/acceptance/block_mode/blocks/control/sleep.feature +0 -0
  268. data/spec/acceptance/block_mode/blocks/control/times.feature +0 -0
  269. data/spec/acceptance/block_mode/blocks/control/until.feature +0 -0
  270. data/spec/acceptance/block_mode/blocks/events/on_click.feature +0 -0
  271. data/spec/acceptance/block_mode/blocks/events/on_hit.feature +0 -0
  272. data/spec/acceptance/block_mode/blocks/events/on_key_push_or_down.feature +0 -0
  273. data/spec/acceptance/block_mode/blocks/events/on_start.feature +0 -0
  274. data/spec/acceptance/block_mode/blocks/hardware/button_down_or_up.feature +0 -0
  275. data/spec/acceptance/block_mode/blocks/hardware/button_not_use_pullup.feature +0 -0
  276. data/spec/acceptance/block_mode/blocks/hardware/init_hardware.feature +0 -0
  277. data/spec/acceptance/block_mode/blocks/hardware/led_off.feature +0 -0
  278. data/spec/acceptance/block_mode/blocks/hardware/led_on.feature +0 -0
  279. data/spec/acceptance/block_mode/blocks/hardware/motor_driver.feature +0 -0
  280. data/spec/acceptance/block_mode/blocks/hardware/motor_driver_speed.feature +0 -0
  281. data/spec/acceptance/block_mode/blocks/hardware/on_button_down_or_up.feature +0 -0
  282. data/spec/acceptance/block_mode/blocks/hardware/on_sensor_change.feature +0 -0
  283. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_off.feature +0 -0
  284. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_on.feature +0 -0
  285. data/spec/acceptance/block_mode/blocks/hardware/sensor_value.feature +0 -0
  286. data/spec/acceptance/block_mode/blocks/hardware/servo_set_position.feature +0 -0
  287. data/spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car.feature +0 -0
  288. data/spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car_speed.feature +0 -0
  289. data/spec/acceptance/block_mode/blocks/looks/hide.feature +0 -0
  290. data/spec/acceptance/block_mode/blocks/looks/say.feature +0 -0
  291. data/spec/acceptance/block_mode/blocks/looks/show.feature +0 -0
  292. data/spec/acceptance/block_mode/blocks/looks/vanish.feature +0 -0
  293. data/spec/acceptance/block_mode/blocks/motion/change_x_by.feature +0 -0
  294. data/spec/acceptance/block_mode/blocks/motion/change_y_by.feature +0 -0
  295. data/spec/acceptance/block_mode/blocks/motion/move.feature +0 -0
  296. data/spec/acceptance/block_mode/blocks/motion/reach_wall.feature +0 -0
  297. data/spec/acceptance/block_mode/blocks/motion/rotate_left.feature +0 -0
  298. data/spec/acceptance/block_mode/blocks/motion/rotate_right.feature +0 -0
  299. data/spec/acceptance/block_mode/blocks/motion/self_angle.feature +0 -0
  300. data/spec/acceptance/block_mode/blocks/motion/self_x.feature +0 -0
  301. data/spec/acceptance/block_mode/blocks/motion/self_y.feature +0 -0
  302. data/spec/acceptance/block_mode/blocks/motion/set_angle.feature +0 -0
  303. data/spec/acceptance/block_mode/blocks/motion/set_x.feature +0 -0
  304. data/spec/acceptance/block_mode/blocks/motion/set_x_y.feature +0 -0
  305. data/spec/acceptance/block_mode/blocks/motion/set_y.feature +0 -0
  306. data/spec/acceptance/block_mode/blocks/motion/turn.feature +0 -0
  307. data/spec/acceptance/block_mode/blocks/motion/turn_if_reach_wall.feature +0 -0
  308. data/spec/acceptance/block_mode/blocks/operators/and_or.feature +0 -0
  309. data/spec/acceptance/block_mode/blocks/operators/four_arithmetic_and_compares.feature +0 -0
  310. data/spec/acceptance/block_mode/blocks/operators/index_of.feature +0 -0
  311. data/spec/acceptance/block_mode/blocks/operators/length.feature +0 -0
  312. data/spec/acceptance/block_mode/blocks/operators/math_method.feature +0 -0
  313. data/spec/acceptance/block_mode/blocks/operators/negate.feature +0 -0
  314. data/spec/acceptance/block_mode/blocks/operators/rand.feature +0 -0
  315. data/spec/acceptance/block_mode/blocks/operators/round.feature +0 -0
  316. data/spec/acceptance/block_mode/blocks/operators/text.feature +0 -0
  317. data/spec/acceptance/block_mode/blocks/operators/true_false.feature +0 -0
  318. data/spec/acceptance/block_mode/blocks/ruby/expression.feature +0 -0
  319. data/spec/acceptance/block_mode/blocks/ruby/p.feature +0 -0
  320. data/spec/acceptance/block_mode/blocks/ruby/statement_comment.feature +0 -0
  321. data/spec/acceptance/block_mode/blocks/sensing/character_property.feature +0 -0
  322. data/spec/acceptance/block_mode/blocks/sensing/hit.feature +0 -0
  323. data/spec/acceptance/block_mode/blocks/sensing/input_key_push_or_down.feature +0 -0
  324. data/spec/acceptance/block_mode/blocks/sensing/input_mouse_pos_x.feature +0 -0
  325. data/spec/acceptance/block_mode/blocks/sensing/input_mouse_pos_y.feature +0 -0
  326. data/spec/acceptance/block_mode/blocks/sensing/input_mouse_push_or_down.feature +0 -0
  327. data/spec/acceptance/block_mode/blocks/sensing/reach_wall.feature +0 -0
  328. data/spec/acceptance/block_mode/blocks/sensing/time_now.feature +0 -0
  329. data/spec/acceptance/block_mode/blocks/sound/play.feature +0 -0
  330. data/spec/acceptance/block_mode/demo.feature +0 -0
  331. data/spec/acceptance/block_mode/translate.feature +0 -0
  332. data/spec/acceptance/readme.md +0 -0
  333. data/spec/acceptance/ruby_mode/check.feature +0 -0
  334. data/spec/acceptance/ruby_mode/download.feature +0 -0
  335. data/spec/acceptance/ruby_mode/load.feature +0 -0
  336. data/spec/acceptance/ruby_mode/translate.feature +0 -0
  337. data/spec/acceptance/standalone/run.feature +0 -0
  338. data/spec/acceptance/standalone/save.feature +0 -0
  339. data/spec/acceptance/standalone/signin.feature +0 -0
  340. data/spec/controllers/editor_controller_spec.rb +0 -0
  341. data/spec/controllers/sessions_controller_spec.rb +0 -0
  342. data/spec/controllers/source_codes_controller_spec.rb +0 -0
  343. data/spec/fixtures/files/01.rb +0 -0
  344. data/spec/fixtures/files/01.rb.xml +0 -0
  345. data/spec/fixtures/files/01_remix.rb +0 -0
  346. data/spec/fixtures/files/01_remix02.rb +0 -0
  347. data/spec/fixtures/files/01_remix10.rb.xml +0 -0
  348. data/spec/fixtures/files/favicon.ico +0 -0
  349. data/spec/helpers/editor_helper_spec.rb +0 -0
  350. data/spec/helpers/sessions_helper_spec.rb +0 -0
  351. data/spec/javascripts/collections/character_set_spec.coffee +0 -0
  352. data/spec/javascripts/models/character_spec.coffee +0 -0
  353. data/spec/javascripts/models/scene_spec.coffee +0 -0
  354. data/spec/javascripts/models/source_code_spec.coffee +0 -0
  355. data/spec/javascripts/spec_helper.js +0 -0
  356. data/spec/lib/smalruby_editor_spec.rb +0 -0
  357. data/spec/models/concerns/ruby_to_block/block/character_method_call_spec.rb +0 -0
  358. data/spec/models/concerns/ruby_to_block/block/control_if_spec.rb +0 -0
  359. data/spec/models/concerns/ruby_to_block/block/control_loop_spec.rb +0 -0
  360. data/spec/models/concerns/ruby_to_block/block/events_on_start_spec.rb +0 -0
  361. data/spec/models/concerns/ruby_to_block/block/hardware_spec.rb +0 -0
  362. data/spec/models/concerns/ruby_to_block/block/looks_say_spec.rb +0 -0
  363. data/spec/models/concerns/ruby_to_block/block/looks_spec.rb +0 -0
  364. data/spec/models/concerns/ruby_to_block/block/motion_move_spec.rb +0 -0
  365. data/spec/models/concerns/ruby_to_block/block/motion_spec.rb +0 -0
  366. data/spec/models/concerns/ruby_to_block/block/motion_turn_spec.rb +0 -0
  367. data/spec/models/concerns/ruby_to_block/block/motion_turn_xy_spec.rb +0 -0
  368. data/spec/models/concerns/ruby_to_block/block/require_smalruby_spec.rb +0 -0
  369. data/spec/models/concerns/ruby_to_block/block/ruby_comment_spec.rb +0 -0
  370. data/spec/models/concerns/ruby_to_block/block/ruby_statement_spec.rb +0 -0
  371. data/spec/models/concerns/ruby_to_block/block/sensing_reach_wall_spec.rb +0 -0
  372. data/spec/models/concerns/ruby_to_block/block/shared/block_examples.rb +0 -0
  373. data/spec/models/concerns/ruby_to_block/block/sound_spec.rb +0 -0
  374. data/spec/models/concerns/ruby_to_block/block/text_spec.rb +0 -0
  375. data/spec/models/concerns/ruby_to_block/block_spec.rb +0 -0
  376. data/spec/models/concerns/ruby_to_block_spec.rb +0 -0
  377. data/spec/models/source_code_spec.rb +0 -0
  378. data/spec/spec_helper.rb +0 -0
  379. data/spec/steps/base_steps.rb +1 -0
  380. data/spec/steps/block_mode_steps.rb +0 -0
  381. data/spec/steps/fix_turnip.rb +0 -0
  382. data/spec/steps/global_variable.rb +0 -0
  383. data/spec/steps/text_editor_steps.rb +0 -0
  384. data/spec/support/capybara.rb +0 -0
  385. data/spec/support/env.rb +0 -0
  386. data/spec/support/ruby_to_block.rb +0 -0
  387. data/spec/teaspoon_env.rb +0 -0
  388. data/spec/turnip_helper.rb +0 -0
  389. data/vendor/assets/javascripts/.keep +0 -0
  390. data/vendor/assets/javascripts/blockly/blockly_compressed.js +0 -0
  391. data/vendor/assets/javascripts/blockly/blocks_compressed.js +0 -0
  392. data/vendor/assets/javascripts/blockly/msg/js/en_us.js +507 -0
  393. data/vendor/assets/javascripts/blockly/msg/js/ja.js +0 -0
  394. data/vendor/assets/javascripts/jquery.blockUI.js +0 -0
  395. data/vendor/assets/stylesheets/.keep +0 -0
  396. metadata +82 -68
@@ -9,10 +9,7 @@
9
9
  # ペンを下ろす
10
10
  # ペンを上げる
11
11
  # <%
12
- [
13
- ['down_pen', 'ペンを下ろす'],
14
- ['up_pen', 'ペンを上げる'],
15
- ].each do |suffix, label|
12
+ %w(down_pen up_pen).each do |suffix|
16
13
  n = "#{category}_#{suffix}"
17
14
  %>
18
15
 
@@ -21,7 +18,7 @@ Blockly.Blocks['<%= n %>'] =
21
18
  @setHelpUrl('')
22
19
  @setColour(<%= color %>)
23
20
  @appendDummyInput()
24
- .appendField('<%= label %>')
21
+ .appendField(<%= bm(".#{suffix}") %>)
25
22
  @setPreviousStatement(true)
26
23
  @setNextStatement(true)
27
24
  @setTooltip('')
@@ -36,10 +33,9 @@ Blockly.Blocks['<%= n %>'] =
36
33
  init: ()->
37
34
  @setHelpUrl('')
38
35
  @setColour(<%= color %>)
39
- @appendDummyInput()
40
- .appendField('ペンの色を')
41
- .appendField(new Blockly.FieldColour('#ff0000'), 'COLOUR')
42
- .appendField('にする')
36
+ @interpolateMsg(<%= bm('.set_pen_color') %>,
37
+ ['COLOUR', ['Colour', '#ff0000'], Blockly.ALIGN_RIGHT],
38
+ Blockly.ALIGN_RIGHT)
43
39
  @setPreviousStatement(true)
44
40
  @setNextStatement(true)
45
41
  @setTooltip('')
@@ -3,6 +3,7 @@
3
3
  <%
4
4
  category = 'ruby'
5
5
  require 'smalruby_editor'
6
+ require 'smalruby_editor/blockly_message_helper'
6
7
  color = SmalrubyEditor::COLORS[category.to_sym]
7
8
  %>
8
9
 
@@ -13,7 +14,7 @@ Blockly.Blocks['<%= n %>'] =
13
14
  @setHelpUrl('')
14
15
  @setColour(<%= color %>)
15
16
  @appendDummyInput()
16
- .appendField('')
17
+ .appendField(<%= bm('.statement') %>)
17
18
  .appendField(new Blockly.FieldTextInput(''), 'STATEMENT')
18
19
  @setPreviousStatement(true)
19
20
  @setNextStatement(true)
@@ -30,7 +31,7 @@ Blockly.Blocks['<%= n %>'] =
30
31
  @setHelpUrl('')
31
32
  @setColour(<%= color %>)
32
33
  @appendDummyInput()
33
- .appendField('')
34
+ .appendField(<%= bm('.expression') %>)
34
35
  .appendField(new Blockly.FieldTextInput(''), 'EXP')
35
36
  @setOutput(true, null)
36
37
  @setTooltip('')
@@ -46,7 +47,7 @@ Blockly.Blocks['<%= n %>'] =
46
47
  @setHelpUrl('')
47
48
  @setColour(<%= color %>)
48
49
  @appendDummyInput()
49
- .appendField('コメント')
50
+ .appendField(<%= bm('.comment') %>)
50
51
  .appendField(new Blockly.FieldTextInput(''), 'COMMENT')
51
52
  @setPreviousStatement(true)
52
53
  @setNextStatement(true)
@@ -3,34 +3,36 @@
3
3
  <%
4
4
  category = 'sensing'
5
5
  require 'smalruby_editor'
6
+ require 'smalruby_editor/blockly_message_helper'
6
7
  color = SmalrubyEditor::COLORS[category.to_sym]
7
8
  %>
8
9
 
9
- # 調べるの環境設定
10
- window.SmalrubyEditor.Sensing =
11
- KeyDropdown: [
12
- ['↑', 'K_UP'],
13
- ['', 'K_DOWN'],
14
- ['', 'K_LEFT'],
15
- ['', 'K_RIGHT'],
16
- ['スペース', 'K_SPACE'],
17
- <% (('a'..'z').to_a + ('0'..'9').to_a).each do |k| %>
18
- ['<%= k %>', 'K_<%= k.upcase %>'],
19
- <% end %>
20
- ]
21
- PushOrDownDropdown: [
22
- ['押された', 'push'],
23
- ['押され続けている', 'down'],
24
- ]
25
- MouseButtonDropdown: [
26
- ['左ボタン', 'M_LBUTTON'],
27
- ['中ボタン', 'M_MBUTTON'],
28
- ['右ボタン', 'M_RBUTTON'],
29
- ]
30
- DownOrUpDropdown: [
31
- ['押された', 'down'],
32
- ['離された', 'up'],
33
- ]
10
+ $(document).ready ->
11
+ # 調べるの環境設定
12
+ window.SmalrubyEditor.Sensing =
13
+ KeyDropdown: [
14
+ [<%= bm('.k_up') %>, 'K_UP'],
15
+ [<%= bm('.k_down') %>, 'K_DOWN'],
16
+ [<%= bm('.k_left') %>, 'K_LEFT'],
17
+ [<%= bm('.k_right') %>, 'K_RIGHT'],
18
+ [<%= bm('.k_space') %>, 'K_SPACE'],
19
+ <% (('a'..'z').to_a + ('0'..'9').to_a).each do |k| %>
20
+ ['<%= k %>', 'K_<%= k.upcase %>'],
21
+ <% end %>
22
+ ]
23
+ PushOrDownDropdown: [
24
+ [<%= bm('.push') %>, 'push'],
25
+ [<%= bm('.hold_down') %>, 'down'],
26
+ ]
27
+ MouseButtonDropdown: [
28
+ [<%= bm('.m_lbutton') %>, 'M_LBUTTON'],
29
+ [<%= bm('.m_mbutton') %>, 'M_MBUTTON'],
30
+ [<%= bm('.m_rbutton') %>, 'M_RBUTTON'],
31
+ ]
32
+ DownOrUpDropdown: [
33
+ [<%= bm('.down') %>, 'down'],
34
+ [<%= bm('.up') %>, 'up'],
35
+ ]
34
36
 
35
37
  # 条件:端に触れた
36
38
  <% n = "#{category}_reach_wall" %>
@@ -38,7 +40,7 @@ Blockly.Blocks['<%= n %>'] =
38
40
  init: ()->
39
41
  @setHelpUrl('')
40
42
  @setColour(<%= color %>)
41
- @appendDummyInput().appendField('端に触れた')
43
+ @appendDummyInput().appendField(<%= bm('.reach_wall') %>)
42
44
  @setOutput(true, 'Boolean')
43
45
  @setTooltip('')
44
46
 
@@ -59,10 +61,11 @@ Blockly.Blocks['<%= n %>'] =
59
61
  @setHelpUrl('')
60
62
  @setColour(<%= color %>)
61
63
  @appendDummyInput()
62
- .appendField('キーボードの')
64
+ .appendField(<%= bm('.input_key_push_or_down_prefix') %>)
63
65
  .appendField(new Blockly.FieldDropdown(keyDropdown), 'KEY')
64
- .appendField('')
66
+ .appendField(<%= bm('.input_key_push_or_down_middle') %>)
65
67
  .appendField(new Blockly.FieldDropdown(podDropdown), 'POD')
68
+ .appendField(<%= bm('.input_key_push_or_down_suffix') %>)
66
69
  @setOutput(true, 'Boolean')
67
70
  @setTooltip('')
68
71
 
@@ -81,10 +84,11 @@ Blockly.Blocks['<%= n %>'] =
81
84
  @setHelpUrl('')
82
85
  @setColour(<%= color %>)
83
86
  @appendDummyInput()
84
- .appendField('マウスの')
87
+ .appendField(<%= bm('.input_mouse_push_or_down_prefix') %>)
85
88
  .appendField(new Blockly.FieldDropdown(mbDropdown), 'MOUSE_BUTTON')
86
- .appendField('')
89
+ .appendField(<%= bm('.input_mouse_push_or_down_middle') %>)
87
90
  .appendField(new Blockly.FieldDropdown(podDropdown), 'POD')
91
+ .appendField(<%= bm('.input_mouse_push_or_down_suffix') %>)
88
92
  @setOutput(true, 'Boolean')
89
93
  @setTooltip('')
90
94
 
@@ -105,7 +109,7 @@ Blockly.Blocks['<%= n %>'] =
105
109
  @setHelpUrl('')
106
110
  @setColour(<%= color %>)
107
111
  @appendDummyInput()
108
- .appendField('マウスの<%= suffix %>座標')
112
+ .appendField(<%= bm(".input_mouse_pos_#{suffix}") %>)
109
113
  @setOutput(true, 'Number')
110
114
  @setTooltip('')
111
115
 
@@ -120,8 +124,9 @@ Blockly.Blocks['<%= n %>'] =
120
124
  @setHelpUrl('')
121
125
  @setColour(<%= color %>)
122
126
  @appendDummyInput()
127
+ .appendField(<%= bm('.hit_prefix') %>)
123
128
  .appendField(new Smalruby.FieldCharacter(), 'CHAR')
124
- .appendField('に触れた')
129
+ .appendField(<%= bm('.hit_suffix') %>)
125
130
  @setOutput(true, 'Boolean')
126
131
  @setTooltip('')
127
132
 
@@ -195,20 +200,20 @@ Blockly.Ruby['<%= n %>'] = (block) ->
195
200
  Blockly.Blocks['<%= n %>'] =
196
201
  init: ()->
197
202
  dropdown = [
198
- ['x座標', 'x'],
199
- ['y座標', 'y'],
200
- ['向き', 'angle'],
201
- ['コスチューム番号', 'costume_index'],
202
- ['コスチューム名', 'costume'],
203
- ['大きさ', 'scale'],
204
- ['ボリューム', 'volume'],
203
+ [<%= bm('.character_property_x') %>, 'x'],
204
+ [<%= bm('.character_property_y') %>, 'y'],
205
+ [<%= bm('.character_property_angle') %>, 'angle'],
206
+ [<%= bm('.character_property_costume_index') %>, 'costume_index'],
207
+ [<%= bm('.character_property_costume') %>, 'costume'],
208
+ [<%= bm('.character_property_scale') %>, 'scale'],
209
+ [<%= bm('.character_property_volume') %>, 'volume'],
205
210
  ]
206
211
 
207
212
  @setHelpUrl('')
208
213
  @setColour(<%= color %>)
209
214
  @appendDummyInput()
210
215
  .appendField(new Smalruby.FieldCharacter(), 'CHAR')
211
- .appendField('')
216
+ .appendField(<%= bm('.character_property_middle') %>)
212
217
  .appendField(new Blockly.FieldDropdown(dropdown), 'PROPERTY')
213
218
  @setOutput(true, ['Number', 'String'])
214
219
  @setTooltip('')
@@ -224,19 +229,19 @@ Blockly.Ruby['<%= n %>'] = (block) ->
224
229
  Blockly.Blocks['<%= n %>'] =
225
230
  init: ()->
226
231
  dropdown = [
227
- ['', 'year'],
228
- ['', 'month'],
229
- ['日付', 'day'],
230
- ['曜日', 'wday'],
231
- ['', 'hour'],
232
- ['', 'min'],
233
- ['', 'sec'],
232
+ [<%= bm('.time_now_year') %>, 'year'],
233
+ [<%= bm('.time_now_month') %>, 'month'],
234
+ [<%= bm('.time_now_day') %>, 'day'],
235
+ [<%= bm('.time_now_wday') %>, 'wday'],
236
+ [<%= bm('.time_now_hour') %>, 'hour'],
237
+ [<%= bm('.time_now_min') %>, 'min'],
238
+ [<%= bm('.time_now_sec') %>, 'sec'],
234
239
  ]
235
240
 
236
241
  @setHelpUrl('')
237
242
  @setColour(<%= color %>)
238
243
  @appendDummyInput()
239
- .appendField('現在の')
244
+ .appendField(<%= bm('.time_now') %>)
240
245
  .appendField(new Blockly.FieldDropdown(dropdown), 'METHOD')
241
246
  @setOutput(true, 'Number')
242
247
  @setTooltip('')
@@ -3,6 +3,7 @@
3
3
  <%
4
4
  category = 'sound'
5
5
  require 'smalruby_editor'
6
+ require 'smalruby_editor/blockly_message_helper'
6
7
  color = SmalrubyEditor::COLORS[category.to_sym]
7
8
  %>
8
9
 
@@ -11,14 +12,14 @@
11
12
  Blockly.Blocks['<%= n %>'] =
12
13
  init: ()->
13
14
  sounds = [
14
- ['ピアノのド', 'piano_do.wav'],
15
- ['ピアノのレ', 'piano_re.wav'],
16
- ['ピアノのミ', 'piano_mi.wav'],
17
- ['ピアノのファ', 'piano_fa.wav'],
18
- ['ピアノのソ', 'piano_so.wav'],
19
- ['ピアノのラ', 'piano_ra.wav'],
20
- ['ピアノのシ', 'piano_si.wav'],
21
- ['ピアノの高いド', 'piano_do_2.wav'],
15
+ [<%= bm('.preset_sounds_piano_do') %>, 'piano_do.wav'],
16
+ [<%= bm('.preset_sounds_piano_re') %>, 'piano_re.wav'],
17
+ [<%= bm('.preset_sounds_piano_mi') %>, 'piano_mi.wav'],
18
+ [<%= bm('.preset_sounds_piano_fa') %>, 'piano_fa.wav'],
19
+ [<%= bm('.preset_sounds_piano_so') %>, 'piano_so.wav'],
20
+ [<%= bm('.preset_sounds_piano_ra') %>, 'piano_ra.wav'],
21
+ [<%= bm('.preset_sounds_piano_si') %>, 'piano_si.wav'],
22
+ [<%= bm('.preset_sounds_piano_do_2') %>, 'piano_do_2.wav'],
22
23
  ]
23
24
  @setHelpUrl('')
24
25
  @setColour(<%= color %>)
@@ -36,8 +37,9 @@ Blockly.Blocks['<%= n %>'] =
36
37
  init: ()->
37
38
  @setHelpUrl('')
38
39
  @setColour(<%= color %>)
39
- @appendValueInput('NAME').setCheck('String')
40
- @appendDummyInput().appendField('の音を鳴らす')
40
+ @interpolateMsg(<%= bm('.play') %>,
41
+ ['NAME', ['String'], Blockly.ALIGN_RIGHT],
42
+ Blockly.ALIGN_RIGHT)
41
43
  @setInputsInline(true)
42
44
  @setPreviousStatement(true)
43
45
  @setNextStatement(true)
File without changes
@@ -1,3 +1,19 @@
1
+ /**
2
+ * this program copied from Blockly and modified
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
1
17
  Blockly.Names.prototype.safeName_ = function(name) {
2
18
  if (!name) {
3
19
  name = 'unnamed';
@@ -52,3 +68,61 @@ Blockly.loadAudio_ = function(filenames, name) {
52
68
  Blockly.SOUNDS_[name] = sound;
53
69
  }
54
70
  };
71
+
72
+ // blockly/core/block.js
73
+ Blockly.Block.prototype.interpolateMsg = function(msg, var_args) {
74
+ // Validate the msg at the start and the dummy alignment at the end,
75
+ // and remove the latter.
76
+ goog.asserts.assertString(msg);
77
+ var dummyAlign = arguments[arguments.length - 1];
78
+ goog.asserts.assert(
79
+ dummyAlign === Blockly.ALIGN_LEFT ||
80
+ dummyAlign === Blockly.ALIGN_CENTRE ||
81
+ dummyAlign === Blockly.ALIGN_RIGHT,
82
+ 'Illegal final argument "%d" is not an alignment.', dummyAlign);
83
+ arguments.length = arguments.length - 1;
84
+
85
+ var tokens = msg.split(/(%\d)/);
86
+ for (var i = 0; i < tokens.length; i += 2) {
87
+ var text = goog.string.trim(tokens[i]);
88
+ var symbol = tokens[i + 1];
89
+ if (symbol) {
90
+ // Value input.
91
+ var digit = parseInt(symbol.charAt(1), 10);
92
+ var tuple = arguments[digit];
93
+ goog.asserts.assertArray(tuple,
94
+ 'Message symbol "%s" is out of range.', symbol);
95
+ if (goog.typeOf(tuple[1]) == 'array' && tuple[1][0] == 'Dropdown') {
96
+ this.appendDummyInput()
97
+ .appendField(text)
98
+ .setAlign(tuple[2])
99
+ .appendField(new Blockly.FieldDropdown(tuple[1][1]), tuple[0]);
100
+ }
101
+ else if (goog.typeOf(tuple[1]) == 'array' && tuple[1][0] == 'Colour') {
102
+ this.appendDummyInput()
103
+ .appendField(text)
104
+ .setAlign(tuple[2])
105
+ .appendField(new Blockly.FieldColour(tuple[1][1]), tuple[0]);
106
+ }
107
+ else {
108
+ this.appendValueInput(tuple[0])
109
+ .setCheck(tuple[1])
110
+ .setAlign(tuple[2])
111
+ .appendField(text);
112
+ }
113
+ arguments[digit] = null; // Inputs may not be reused.
114
+ } else if (text) {
115
+ this.appendDummyInput()
116
+ .setAlign(dummyAlign)
117
+ .appendField(text);
118
+ }
119
+ }
120
+ // Verify that all inputs were used.
121
+ for (var i = 1; i < arguments.length - 1; i++) {
122
+ goog.asserts.assert(arguments[i] === null,
123
+ 'Input "%%s" not used in message: "%s"', i, msg);
124
+ }
125
+ // Make the inputs inline unless there is only one input and
126
+ // no text follows it.
127
+ this.setInputsInline(!msg.match(/%1\s*$/))
128
+ };
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,236 @@
1
+ goog.provide('Blockly.Msg.en_us.smalruby');
2
+
3
+ goog.require('Blockly.Msg');
4
+
5
+
6
+ /**
7
+ * Due to the frequency of long strings, the 80-column wrap rule need not apply
8
+ * to message files.
9
+ */
10
+
11
+ // views/main_menu_view.js.coffee
12
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LINES = ' Lines';
13
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LETTERS = ' Letters';
14
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_COMMA = ', ';
15
+
16
+
17
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_BLOCK_MODE_BLOCKUI_TITLE = 'Converting Program';
18
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_BLOCK_MODE_BLOCKUI_MESSAGE = 'Converting your program to instruction blocks.';
19
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_BLOCK_MODE_ERROR = "Can't convert your program to instruction blocks.";
20
+
21
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_BLOCKUI_TITLE = 'Running';
22
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_BLOCKUI_MESSAGE = "Please switch your program's window.";
23
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_BLOCKUI_NOTICE = 'Running your program after save & check it.<br>Press ESC key to quit.';
24
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_ERROR_CANT_RUN = "Can't run your program.";
25
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_RUN_ERROR_CANCEL_TO_RUN = "Cancel to run your program.";
26
+
27
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_DOWNLOAD_BLOCKUI_TITLE = 'Downloading';
28
+ Blockly.Msg.VIEWS_MAIN_MENU_VIEW_DOWNLOAD_BLOCKUI_MESSAGE = "Downloading your program.";
29
+
30
+
31
+ // blocks/motion.js.coffee.erb
32
+ Blockly.Msg.BLOCKS_MOTION_MOVE = 'move %1 steps';
33
+ Blockly.Msg.BLOCKS_MOTION_TURN_RIGHT_DEGREES = 'turn right %1 degrees';
34
+ Blockly.Msg.BLOCKS_MOTION_TURN_LEFT_DEGREES = 'turn left %1 degrees';
35
+ Blockly.Msg.BLOCKS_MOTION_POINT_IN_DIRECTION = 'point in direction %1';
36
+ Blockly.Msg.BLOCKS_MOTION_POINT_TOWARDS_MOUSE = 'point towards mouse-pointer';
37
+ Blockly.Msg.BLOCKS_MOTION_POINT_TOWARDS_CHARACTER = 'point towards';
38
+ Blockly.Msg.BLOCKS_MOTION_SET_X_Y_X = 'go to x:';
39
+ Blockly.Msg.BLOCKS_MOTION_SET_X_Y_Y = 'y:';
40
+ Blockly.Msg.BLOCKS_MOTION_SET_X_Y_SUFFIX = '';
41
+ Blockly.Msg.BLOCKS_MOTION_GO_TO_MOUSE = 'go to mouse-pointer';
42
+ Blockly.Msg.BLOCKS_MOTION_GO_TO_CHARACTER_PREFIX = 'go to ';
43
+ Blockly.Msg.BLOCKS_MOTION_GO_TO_CHARACTER_SUFFIX = '';
44
+ Blockly.Msg.BLOCKS_MOTION_CHANGE_X_BY = 'change x by %1';
45
+ Blockly.Msg.BLOCKS_MOTION_SET_X = 'set x to %1';
46
+ Blockly.Msg.BLOCKS_MOTION_CHANGE_Y_BY = 'change y by %1';
47
+ Blockly.Msg.BLOCKS_MOTION_SET_Y = 'set y to %1';
48
+ Blockly.Msg.BLOCKS_MOTION_TURN_IF_REACH_WALL = 'if reach wall, turn';
49
+ Blockly.Msg.BLOCKS_MOTION_TURN = 'turn';
50
+ Blockly.Msg.BLOCKS_MOTION_TURN_XY_X = '(x) horizontal';
51
+ Blockly.Msg.BLOCKS_MOTION_TURN_XY_Y = '(y) vertical';
52
+ Blockly.Msg.BLOCKS_MOTION_TURN_XY_PREFIX = 'turn to ';
53
+ Blockly.Msg.BLOCKS_MOTION_TURN_XY_SUFFIX = '';
54
+ Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_LEFT_RIGHT = 'left-right';
55
+ Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_NONE = "don't rorate";
56
+ Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_FREE = 'all around';
57
+ Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_PREFIX = 'set rotation style ';
58
+ Blockly.Msg.BLOCKS_MOTION_SET_ROTATION_STYLE_SUFFIX = '';
59
+ Blockly.Msg.BLOCKS_MOTION_SELF_X = 'x position';
60
+ Blockly.Msg.BLOCKS_MOTION_SELF_Y = 'y position';
61
+ Blockly.Msg.BLOCKS_MOTION_SELF_ANGLE = 'direction';
62
+
63
+ // blocks/events.js.coffee.erb
64
+ Blockly.Msg.BLOCKS_EVENTS_ON_START = 'when Run clicked';
65
+ Blockly.Msg.BLOCKS_EVENTS_ON_KEY_PUSH_OR_DOWN_PREFIX = 'when ';
66
+ Blockly.Msg.BLOCKS_EVENTS_ON_KEY_PUSH_OR_DOWN_MIDDLE = ' key ';
67
+ Blockly.Msg.BLOCKS_EVENTS_ON_KEY_PUSH_OR_DOWN_SUFFIX = '';
68
+ Blockly.Msg.BLOCKS_EVENTS_ON_CLICK = 'when this sprite clicked';
69
+ Blockly.Msg.BLOCKS_EVENTS_ON_HIT_PREFIX = 'when ';
70
+ Blockly.Msg.BLOCKS_EVENTS_ON_HIT_SUFFIX = ' hit';
71
+
72
+ // blocks/sensing.js.coffee.erb
73
+ Blockly.Msg.BLOCKS_SENSING_K_UP = 'up arrow';
74
+ Blockly.Msg.BLOCKS_SENSING_K_DOWN = 'down arrow';
75
+ Blockly.Msg.BLOCKS_SENSING_K_LEFT = 'left arrow';
76
+ Blockly.Msg.BLOCKS_SENSING_K_RIGHT = 'right arrow';
77
+ Blockly.Msg.BLOCKS_SENSING_K_SPACE = 'space';
78
+ Blockly.Msg.BLOCKS_SENSING_PUSH = 'pressed?';
79
+ Blockly.Msg.BLOCKS_SENSING_HOLD_DOWN = 'hold pressed?';
80
+ Blockly.Msg.BLOCKS_SENSING_DOWN = Blockly.Msg.BLOCKS_SENSING_PUSH;
81
+ Blockly.Msg.BLOCKS_SENSING_M_LBUTTON = 'left-button';
82
+ Blockly.Msg.BLOCKS_SENSING_M_MBUTTON = 'middle-button';
83
+ Blockly.Msg.BLOCKS_SENSING_M_RBUTTON = 'right-button';
84
+ Blockly.Msg.BLOCKS_SENSING_UP = 'released?';
85
+ Blockly.Msg.BLOCKS_SENSING_REACH_WALL = 'reach wall?';
86
+ Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_PREFIX = 'key ';
87
+ Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_MIDDLE = ' ';
88
+ Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_SUFFIX = '';
89
+ Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_PUSH_OR_DOWN_PREFIX = 'mouse ';
90
+ Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_PUSH_OR_DOWN_MIDDLE = ' ';
91
+ Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_PUSH_OR_DOWN_SUFFIX = '';
92
+ Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_POS_X = 'mouse x';
93
+ Blockly.Msg.BLOCKS_SENSING_INPUT_MOUSE_POS_Y = 'mouse y';
94
+ Blockly.Msg.BLOCKS_SENSING_HIT_PREFIX = 'reach ';
95
+ Blockly.Msg.BLOCKS_SENSING_HIT_SUFFIX = '?';
96
+ Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_X = 'x position';
97
+ Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_Y = 'y position';
98
+ Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_ANGLE = 'direction';
99
+ Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_COSTUME_INDEX = 'costume #';
100
+ Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_COSTUME = 'contume name';
101
+ Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_SCALE = 'size';
102
+ Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_VOLUME = 'volume';
103
+ Blockly.Msg.BLOCKS_SENSING_CHARACTER_PROPERTY_MIDDLE = ' of ';
104
+ Blockly.Msg.BLOCKS_SENSING_TIME_NOW_YEAR = 'year';
105
+ Blockly.Msg.BLOCKS_SENSING_TIME_NOW_MONTH = 'month';
106
+ Blockly.Msg.BLOCKS_SENSING_TIME_NOW_DAY = 'day';
107
+ Blockly.Msg.BLOCKS_SENSING_TIME_NOW_WDAY = 'day of week';
108
+ Blockly.Msg.BLOCKS_SENSING_TIME_NOW_HOUR = 'hour';
109
+ Blockly.Msg.BLOCKS_SENSING_TIME_NOW_MIN = 'min';
110
+ Blockly.Msg.BLOCKS_SENSING_TIME_NOW_SEC = 'sec';
111
+ Blockly.Msg.BLOCKS_SENSING_TIME_NOW = 'current ';
112
+
113
+ // blocks/control.js.coffee.erb
114
+ Blockly.Msg.BLOCKS_CONTROL_SLEEP = 'wait %1 secs';
115
+ Blockly.Msg.BLOCKS_CONTROL_LOOP = 'loop';
116
+ Blockly.Msg.BLOCKS_CONTROL_LOOP_END = 'end of loop';
117
+ Blockly.Msg.BLOCKS_CONTROL_BREAK = 'stop this loop';
118
+ Blockly.Msg.BLOCKS_CONTROL_NEXT = 'next iteration of this loop';
119
+ Blockly.Msg.BLOCKS_CONTROL_REDO = 'redo iteration of this loop';
120
+ Blockly.Msg.BLOCKS_CONTROL_IF = 'if ';
121
+ Blockly.Msg.BLOCKS_CONTROL_THEN = ' then';
122
+ Blockly.Msg.BLOCKS_CONTROL_ELSE = 'else';
123
+ Blockly.Msg.BLOCKS_CONTROL_TIMES = 'repeat %1';
124
+ Blockly.Msg.BLOCKS_CONTROL_AWAIT_UNTIL = 'wait until %1';
125
+ Blockly.Msg.BLOCKS_CONTROL_UNTIL = 'repeat until %1';
126
+ Blockly.Msg.BLOCKS_CONTROL_AWAIT = 'just wait a little';
127
+
128
+ // blocks/ruby.js.coffee.erb
129
+ Blockly.Msg.BLOCKS_RUBY_STATEMENT = 'statement ';
130
+ Blockly.Msg.BLOCKS_RUBY_EXPRESSION = 'expression ';
131
+ Blockly.Msg.BLOCKS_RUBY_COMMENT = 'comment ';
132
+
133
+ // blocks/field_character.js.coffee.erb
134
+ Blockly.Msg.BLOCKS_FIELD_CHARACTER_NO_CHARACTER = 'no character';
135
+
136
+ // blocks/sound.js.coffee.erb
137
+ Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_DO = 'Middle C of piano';
138
+ Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_RE = 'D of piano';
139
+ Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_MI = 'E of piano';
140
+ Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_FA = 'F of piano';
141
+ Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_SO = 'G of piano';
142
+ Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_RA = 'A of piano';
143
+ Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_SI = 'B of piano';
144
+ Blockly.Msg.BLOCKS_SOUND_PRESET_SOUNDS_PIANO_DO_2 = 'High C of piano';
145
+ Blockly.Msg.BLOCKS_SOUND_PLAY = 'play sound %1';
146
+
147
+ // blocks/looks.js.coffee.erb
148
+ Blockly.Msg.BLOCKS_LOOKS_SAY = 'say %1';
149
+ Blockly.Msg.BLOCKS_LOOKS_THINK = 'think %1';
150
+ Blockly.Msg.BLOCKS_LOOKS_SAY_WITH_SECOND = 'say %1 for %2 secs';
151
+ Blockly.Msg.BLOCKS_LOOKS_THINK_WITH_SECOND = 'think %1 for %2 secs';
152
+ Blockly.Msg.BLOCKS_LOOKS_SHOW = 'show';
153
+ Blockly.Msg.BLOCKS_LOOKS_HIDE = 'hide';
154
+ Blockly.Msg.BLOCKS_LOOKS_VANISH = 'vanish';
155
+
156
+ // blocks/hardware.js.coffee.erb
157
+ Blockly.Msg.BLOCKS_HARDWARE_LED_ON = 'turn on LED %1';
158
+ Blockly.Msg.BLOCKS_HARDWARE_LED_OFF = 'turn off LED %1';
159
+ Blockly.Msg.BLOCKS_HARDWARE_ANODE = 'anode';
160
+ Blockly.Msg.BLOCKS_HARDWARE_CATHODE = 'cathode';
161
+ Blockly.Msg.BLOCKS_HARDWARE_LEFT = 'left';
162
+ Blockly.Msg.BLOCKS_HARDWARE_RIGHT = 'right';
163
+ Blockly.Msg.BLOCKS_HARDWARE_INIT_HARDWARE = 'setup hardware';
164
+ Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_ON = 'set RGB LED %1 common %2 color to %3';
165
+ Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_OFF = 'turn off RGB LED %1 common %2';
166
+ Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_SHOW = 'show 7 segment display %1';
167
+ Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_OFF = 'turn off 7 segment display';
168
+ Blockly.Msg.BLOCKS_HARDWARE_LCD_PUTS = 'display %1 on the LCD';
169
+ Blockly.Msg.BLOCKS_HARDWARE_LCD_CLEAR = 'clear LCD';
170
+ Blockly.Msg.BLOCKS_HARDWARE_SERVO_SET_POSITION = 'servo motor %1 set %2 degree (5-180)';
171
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_FORWARD = 'forward 2WD car %1';
172
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_BACKWARD = 'backward 2WD car %1';
173
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_TURN_LEFT = 'turn left 2WD car %1';
174
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_TURN_RIGHT = 'turn right 2WD car %1';
175
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_STOP = 'stop 2WD car %1';
176
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_RUN = '%1 2WD car %2 %3 secs';
177
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_FORWARD = 'forward';
178
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_BACKWARD = 'backward';
179
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_TURN_LEFT = 'turn left';
180
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_TURN_RIGHT = 'turn right';
181
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_COMMANDS_STOP = 'stop';
182
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_SET_SPEED = "set 2WD car %1 's %2 motor speed to %3 %";
183
+ Blockly.Msg.BLOCKS_HARDWARE_TWO_WHEEL_DRIVE_CAR_SPEED = "2WD car %1 's %2 motor speed (%)";
184
+ Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_FORWARD = 'forward';
185
+ Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_BACKWARD = 'backward';
186
+ Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_STOP = 'stop';
187
+ Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER = "%2 (motor driver %1's) motor";
188
+ Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SET_SPEED = "set (motor driver %1's) motor speed to %2 %";
189
+ Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SPEED = "(motor driver %1's) motor speed (%)";
190
+ Blockly.Msg.BLOCKS_HARDWARE_BUTTON_DOWN_OR_UP = 'button %1 %2';
191
+ Blockly.Msg.BLOCKS_HARDWARE_ON_BUTTON_DOWN_OR_UP = 'when button %1 %2';
192
+ Blockly.Msg.BLOCKS_HARDWARE_BUTTON_NOT_USE_PULLUP = "don't use button %1's pull-up resistor";
193
+ Blockly.Msg.BLOCKS_HARDWARE_SENSOR_VALUE = 'sensor %1 value';
194
+ Blockly.Msg.BLOCKS_HARDWARE_ON_SENSOR_CHANGE = 'when sensor %1 value changed';
195
+
196
+
197
+ // blocks/operators.js.coffee.erb
198
+ Blockly.Msg.BLOCKS_OPERATORS_ADD = '%1 + %2';
199
+ Blockly.Msg.BLOCKS_OPERATORS_MINUS = '%1 - %2';
200
+ Blockly.Msg.BLOCKS_OPERATORS_MULTIPLY = '%1 * %2';
201
+ Blockly.Msg.BLOCKS_OPERATORS_DIVIDE = '%1 / %2';
202
+ Blockly.Msg.BLOCKS_OPERATORS_COMPARE_LT = '%1 < %2';
203
+ Blockly.Msg.BLOCKS_OPERATORS_COMPARE_LTE = '%1 <= %2';
204
+ Blockly.Msg.BLOCKS_OPERATORS_COMPARE_EQ = '%1 = %2';
205
+ Blockly.Msg.BLOCKS_OPERATORS_COMPARE_GTE = '%1 >= %2';
206
+ Blockly.Msg.BLOCKS_OPERATORS_COMPARE_GT = '%1 > %2';
207
+ Blockly.Msg.BLOCKS_OPERATORS_RAND = 'pick random %1 to %2';
208
+ Blockly.Msg.BLOCKS_OPERATORS_AND = '%1 and %2';
209
+ Blockly.Msg.BLOCKS_OPERATORS_OR = '%1 or %2';
210
+ Blockly.Msg.BLOCKS_OPERATORS_NOT = 'not %1';
211
+ Blockly.Msg.BLOCKS_OPERATORS_INDEX_OF = 'letter %1 of %2';
212
+ Blockly.Msg.BLOCKS_OPERATORS_LENGTH = 'length of %1';
213
+ Blockly.Msg.BLOCKS_OPERATORS_MODULO = '%1 mod %2';
214
+ Blockly.Msg.BLOCKS_OPERATORS_ROUND = 'round %1';
215
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD = '%1 of %2';
216
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ABS = 'abs';
217
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_FLOOR = 'floor';
218
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_CEIL = 'ceiling';
219
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_SQRT = 'sqrt';
220
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_SIN = 'sin';
221
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_COS = 'cos';
222
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_TAN = 'tan';
223
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ASIN = 'asin';
224
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ACOS = 'acos';
225
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_ATAN = 'atan';
226
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_LN = 'ln';
227
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_LOG = 'log';
228
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_E_SQUARE = 'e ^';
229
+ Blockly.Msg.BLOCKS_OPERATORS_MATH_METHOD_10_SQUARE = '10 ^';
230
+ Blockly.Msg.BLOCKS_OPERATORS_TRUE = 'true';
231
+ Blockly.Msg.BLOCKS_OPERATORS_FALSE = 'false';
232
+
233
+ // blocks/pen.js.coffee.erb
234
+ Blockly.Msg.BLOCKS_PEN_DOWN_PEN = 'pen down';
235
+ Blockly.Msg.BLOCKS_PEN_UP_PEN = 'pen up';
236
+ Blockly.Msg.BLOCKS_PEN_SET_PEN_COLOR = 'set pen color to %1';