smalruby-editor 0.3.5-x86-mingw32 → 0.4.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 (366) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -0
  3. data/.rspec +0 -0
  4. data/.rubocop.yml +1 -0
  5. data/.simplecov +7 -7
  6. data/.travis.yml +0 -0
  7. data/Guardfile +1 -1
  8. data/LICENSE +0 -0
  9. data/Procfile +1 -1
  10. data/Rakefile +0 -0
  11. data/app/assets/images/.keep +0 -0
  12. data/app/assets/images/favicon.ico +0 -0
  13. data/app/assets/javascripts/blocks/blockly.js.coffee.erb +0 -0
  14. data/app/assets/javascripts/blocks/character.js.coffee.erb +3 -0
  15. data/app/assets/javascripts/blocks/data.js.coffee.erb +0 -0
  16. data/app/assets/javascripts/blocks/etc.js.coffee.erb +0 -0
  17. data/app/assets/javascripts/blocks/field_character.js.coffee.erb +13 -1
  18. data/app/assets/javascripts/blocks/field_costume.js.coffee.erb +84 -0
  19. data/app/assets/javascripts/blocks/hardware.js.coffee.erb +26 -0
  20. data/app/assets/javascripts/blocks/looks.js.coffee.erb +32 -0
  21. data/app/assets/javascripts/collections/.keep +0 -0
  22. data/app/assets/javascripts/collections/character_set.js.coffee +0 -0
  23. data/app/assets/javascripts/generators/ruby.js.coffee.erb +10 -1
  24. data/app/assets/javascripts/models/.keep +0 -0
  25. data/app/assets/javascripts/models/character.js.coffee +45 -6
  26. data/app/assets/javascripts/models/scene.js.coffee +0 -0
  27. data/app/assets/javascripts/msg/en_us.js +4 -0
  28. data/app/assets/javascripts/msg/ja.js +4 -0
  29. data/app/assets/javascripts/routers/.keep +0 -0
  30. data/app/assets/javascripts/smalruby.js.coffee.erb +5 -1
  31. data/app/assets/javascripts/views/.keep +0 -0
  32. data/app/assets/javascripts/views/character_modal_view.js.coffee.erb +357 -0
  33. data/app/assets/javascripts/views/character_selector_view.js.coffee +2 -0
  34. data/app/assets/stylesheets/editor.css.scss +201 -16
  35. data/app/assets/stylesheets/flatstrap-custom.css.scss +0 -0
  36. data/app/assets/stylesheets/load-modal.css.scss +0 -0
  37. data/app/assets/templates/.keep +0 -0
  38. data/app/controllers/application_controller.rb +8 -2
  39. data/app/controllers/concerns/.keep +0 -0
  40. data/app/controllers/costumes_controller.rb +58 -0
  41. data/app/controllers/editor_controller.rb +2 -0
  42. data/app/helpers/costumes_helper.rb +2 -0
  43. data/app/helpers/editor_helper.rb +0 -0
  44. data/app/helpers/sessions_helper.rb +0 -4
  45. data/app/mailers/.keep +0 -0
  46. data/app/models/.keep +0 -0
  47. data/app/models/concerns/.keep +0 -0
  48. data/app/models/concerns/ruby_to_block.rb +0 -0
  49. data/app/models/concerns/ruby_to_block/block.rb +0 -0
  50. data/app/models/concerns/ruby_to_block/block/base.rb +2 -0
  51. data/app/models/concerns/ruby_to_block/block/character.rb +32 -11
  52. data/app/models/concerns/ruby_to_block/block/character_event.rb +0 -0
  53. data/app/models/concerns/ruby_to_block/block/character_method_call.rb +0 -0
  54. data/app/models/concerns/ruby_to_block/block/character_new.rb +0 -0
  55. data/app/models/concerns/ruby_to_block/block/character_operation.rb +0 -0
  56. data/app/models/concerns/ruby_to_block/block/control_beark.rb +0 -0
  57. data/app/models/concerns/ruby_to_block/block/control_if.rb +0 -0
  58. data/app/models/concerns/ruby_to_block/block/control_loop.rb +0 -0
  59. data/app/models/concerns/ruby_to_block/block/control_sleep.rb +0 -0
  60. data/app/models/concerns/ruby_to_block/block/do.rb +0 -0
  61. data/app/models/concerns/ruby_to_block/block/else.rb +0 -0
  62. data/app/models/concerns/ruby_to_block/block/end.rb +0 -0
  63. data/app/models/concerns/ruby_to_block/block/events_on_click.rb +0 -0
  64. data/app/models/concerns/ruby_to_block/block/events_on_key_push_or_down.rb +0 -0
  65. data/app/models/concerns/ruby_to_block/block/events_on_start.rb +0 -0
  66. data/app/models/concerns/ruby_to_block/block/hardware_button_pressed_or_released.rb +0 -0
  67. data/app/models/concerns/ruby_to_block/block/hardware_init_hardware.rb +0 -0
  68. data/app/models/concerns/ruby_to_block/block/hardware_led_turn_off.rb +0 -0
  69. data/app/models/concerns/ruby_to_block/block/hardware_led_turn_on.rb +0 -0
  70. data/app/models/concerns/ruby_to_block/block/hardware_motor_driver.rb +0 -0
  71. data/app/models/concerns/ruby_to_block/block/hardware_motor_driver_set_speed.rb +0 -0
  72. data/app/models/concerns/ruby_to_block/block/hardware_motor_driver_speed.rb +0 -0
  73. data/app/models/concerns/ruby_to_block/block/hardware_neo_pixel_set_rgb.rb +31 -0
  74. data/app/models/concerns/ruby_to_block/block/hardware_rgb_led_set_color.rb +0 -0
  75. data/app/models/concerns/ruby_to_block/block/hardware_rgb_led_turn_off.rb +0 -0
  76. data/app/models/concerns/ruby_to_block/block/hardware_sensor_value.rb +0 -0
  77. data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car.rb +0 -0
  78. data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_commands.rb +0 -0
  79. data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_run.rb +0 -0
  80. data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_set_speed.rb +0 -0
  81. data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_speed.rb +0 -0
  82. data/app/models/concerns/ruby_to_block/block/looks_hide.rb +0 -0
  83. data/app/models/concerns/ruby_to_block/block/looks_next_costume.rb +12 -0
  84. data/app/models/concerns/ruby_to_block/block/looks_say.rb +0 -0
  85. data/app/models/concerns/ruby_to_block/block/looks_show.rb +0 -0
  86. data/app/models/concerns/ruby_to_block/block/looks_switch_costume.rb +22 -0
  87. data/app/models/concerns/ruby_to_block/block/looks_vanish.rb +0 -0
  88. data/app/models/concerns/ruby_to_block/block/math_number.rb +0 -0
  89. data/app/models/concerns/ruby_to_block/block/motion_change_x_by.rb +0 -0
  90. data/app/models/concerns/ruby_to_block/block/motion_change_y_by.rb +0 -0
  91. data/app/models/concerns/ruby_to_block/block/motion_go_to_character.rb +0 -0
  92. data/app/models/concerns/ruby_to_block/block/motion_go_to_mouse.rb +0 -0
  93. data/app/models/concerns/ruby_to_block/block/motion_move.rb +0 -0
  94. data/app/models/concerns/ruby_to_block/block/motion_point_towards_character.rb +0 -0
  95. data/app/models/concerns/ruby_to_block/block/motion_point_towards_mouse.rb +0 -0
  96. data/app/models/concerns/ruby_to_block/block/motion_rotate_left.rb +0 -0
  97. data/app/models/concerns/ruby_to_block/block/motion_rotate_right.rb +0 -0
  98. data/app/models/concerns/ruby_to_block/block/motion_self_angle.rb +0 -0
  99. data/app/models/concerns/ruby_to_block/block/motion_self_x.rb +0 -0
  100. data/app/models/concerns/ruby_to_block/block/motion_self_y.rb +0 -0
  101. data/app/models/concerns/ruby_to_block/block/motion_set_angle.rb +0 -0
  102. data/app/models/concerns/ruby_to_block/block/motion_set_x.rb +0 -0
  103. data/app/models/concerns/ruby_to_block/block/motion_set_x_y.rb +0 -0
  104. data/app/models/concerns/ruby_to_block/block/motion_set_y.rb +0 -0
  105. data/app/models/concerns/ruby_to_block/block/motion_turn.rb +0 -0
  106. data/app/models/concerns/ruby_to_block/block/motion_turn_if_reach_wall.rb +0 -0
  107. data/app/models/concerns/ruby_to_block/block/motion_turn_xy.rb +0 -0
  108. data/app/models/concerns/ruby_to_block/block/null.rb +0 -0
  109. data/app/models/concerns/ruby_to_block/block/operators_compare.rb +0 -0
  110. data/app/models/concerns/ruby_to_block/block/operators_false.rb +0 -0
  111. data/app/models/concerns/ruby_to_block/block/operators_true.rb +0 -0
  112. data/app/models/concerns/ruby_to_block/block/require_smalruby.rb +0 -0
  113. data/app/models/concerns/ruby_to_block/block/ruby_comment.rb +0 -0
  114. data/app/models/concerns/ruby_to_block/block/ruby_expression.rb +0 -0
  115. data/app/models/concerns/ruby_to_block/block/ruby_p.rb +0 -0
  116. data/app/models/concerns/ruby_to_block/block/ruby_statement.rb +0 -0
  117. data/app/models/concerns/ruby_to_block/block/sensing_hit.rb +0 -0
  118. data/app/models/concerns/ruby_to_block/block/sensing_reach_wall.rb +0 -0
  119. data/app/models/concerns/ruby_to_block/block/sound_play.rb +0 -0
  120. data/app/models/concerns/ruby_to_block/block/sound_preset_sounds.rb +0 -0
  121. data/app/models/concerns/ruby_to_block/block/text.rb +0 -0
  122. data/app/models/concerns/ruby_to_block/block/value.rb +0 -0
  123. data/app/models/concerns/ruby_to_block/context.rb +0 -0
  124. data/app/models/concerns/ruby_to_block/formatter.rb +0 -0
  125. data/app/models/costume.rb +67 -0
  126. data/app/models/source_code.rb +9 -1
  127. data/app/models/user.rb +7 -0
  128. data/app/views/costumes/index.html.haml +19 -0
  129. data/app/views/editor/_character_modal.html.haml +35 -7
  130. data/app/views/editor/_toolbox_default.html.haml +9 -0
  131. data/app/views/editor/demo.html.erb +0 -0
  132. data/app/views/editor/index.html.haml +1 -0
  133. data/bin/smalruby-editor +1 -0
  134. data/bin/spring +7 -9
  135. data/config.ru +0 -0
  136. data/config/boot.rb +0 -0
  137. data/config/database.yml.mysql2 +0 -0
  138. data/config/database.yml.sqlite3 +0 -0
  139. data/config/database.yml.travis +0 -0
  140. data/config/environment.rb +0 -0
  141. data/config/environments/development.rb +0 -0
  142. data/config/environments/production.rb +0 -0
  143. data/config/environments/standalone.rb +0 -0
  144. data/config/environments/test.rb +0 -0
  145. data/config/initializers/backtrace_silencers.rb +0 -0
  146. data/config/initializers/filter_parameter_logging.rb +0 -0
  147. data/config/initializers/inflections.rb +0 -0
  148. data/config/initializers/mime_types.rb +0 -0
  149. data/config/initializers/secret_token.rb +0 -0
  150. data/config/initializers/session_store.rb +0 -0
  151. data/config/initializers/teaspoon.rb +0 -0
  152. data/config/initializers/wrap_parameters.rb +0 -0
  153. data/config/locales/en.yml +10 -1
  154. data/config/locales/ja.yml +10 -0
  155. data/config/routes.rb +2 -0
  156. data/config/unicorn.rb +23 -23
  157. data/db/migrate/20131216121603_create_source_codes.rb +0 -0
  158. data/db/migrate/20131219045113_add_filename_to_source_code.rb +0 -0
  159. data/db/migrate/20150513061250_add_index_name_on_users.rb +1 -1
  160. data/db/migrate/20150607012053_create_costumes.rb +12 -0
  161. data/db/migrate/20150607012707_add_indexes_on_costumes.rb +13 -0
  162. data/db/migrate/20150607034013_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb +31 -0
  163. data/db/migrate/20150607034014_add_missing_unique_indices.acts_as_taggable_on_engine.rb +21 -0
  164. data/db/migrate/20150607034015_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
  165. data/db/migrate/20150607034016_add_missing_taggable_index.acts_as_taggable_on_engine.rb +10 -0
  166. data/db/migrate/20150607034017_change_collation_for_tag_names.acts_as_taggable_on_engine.rb +12 -0
  167. data/db/migrate/20150607034018_insert_preset_costumes.rb +9 -0
  168. data/db/schema.rb +35 -2
  169. data/db/seeds.rb +2 -0
  170. data/demos/car_chase.rb.xml +128 -128
  171. data/demos/pong.rb.xml +379 -379
  172. data/demos/star.rb.xml +115 -115
  173. data/lib/assets/.keep +0 -0
  174. data/lib/smalruby_editor/version.rb +1 -1
  175. data/lib/tasks/.keep +0 -0
  176. data/lib/tasks/gem.rake +0 -0
  177. data/lib/tasks/rspec.rake +0 -0
  178. data/lib/tasks/rubocop.rake +0 -0
  179. data/log/.keep +0 -0
  180. data/public/404.html +0 -0
  181. data/public/422.html +0 -0
  182. data/public/500.html +0 -0
  183. data/public/apple-touch-icon.png +0 -0
  184. data/public/blockly/media/1x1.gif +0 -0
  185. data/public/blockly/media/click.mp3 +0 -0
  186. data/public/blockly/media/click.ogg +0 -0
  187. data/public/blockly/media/click.wav +0 -0
  188. data/public/blockly/media/delete.mp3 +0 -0
  189. data/public/blockly/media/delete.ogg +0 -0
  190. data/public/blockly/media/delete.wav +0 -0
  191. data/public/blockly/media/handopen.cur +0 -0
  192. data/public/blockly/media/quote0.png +0 -0
  193. data/public/blockly/media/quote1.png +0 -0
  194. data/public/browserconfig.xml +0 -0
  195. data/public/fonts/FontAwesome.otf +0 -0
  196. data/public/fonts/fontawesome-webfont.eot +0 -0
  197. data/public/fonts/fontawesome-webfont.ttf +0 -0
  198. data/public/fonts/fontawesome-webfont.woff +0 -0
  199. data/public/large.png +0 -0
  200. data/public/robots.txt +0 -0
  201. data/public/smalruby/assets/ball1.png +0 -0
  202. data/public/smalruby/assets/ball2.png +0 -0
  203. data/public/smalruby/assets/ball3.png +0 -0
  204. data/public/smalruby/assets/ball4.png +0 -0
  205. data/public/smalruby/assets/ball5.png +0 -0
  206. data/public/smalruby/assets/ball6.png +0 -0
  207. data/public/smalruby/assets/car1.png +0 -0
  208. data/public/smalruby/assets/car2.png +0 -0
  209. data/public/smalruby/assets/car3.png +0 -0
  210. data/public/smalruby/assets/car4.png +0 -0
  211. data/public/smalruby/assets/cat1.png +0 -0
  212. data/public/smalruby/assets/cat2.png +0 -0
  213. data/public/smalruby/assets/cat3.png +0 -0
  214. data/public/smalruby/assets/frog1.png +0 -0
  215. data/public/smalruby/assets/piano_do.wav +0 -0
  216. data/public/smalruby/assets/piano_do_2.wav +0 -0
  217. data/public/smalruby/assets/piano_fa.wav +0 -0
  218. data/public/smalruby/assets/piano_mi.wav +0 -0
  219. data/public/smalruby/assets/piano_ra.wav +0 -0
  220. data/public/smalruby/assets/piano_re.wav +0 -0
  221. data/public/smalruby/assets/piano_si.wav +0 -0
  222. data/public/smalruby/assets/piano_so.wav +0 -0
  223. data/public/smalruby/assets/ryu1.png +0 -0
  224. data/public/smalruby/assets/ryu2.png +0 -0
  225. data/public/smalruby/assets/taichi1.png +0 -0
  226. data/public/smalruby/assets/taichi2.png +0 -0
  227. data/public/square.png +0 -0
  228. data/public/tiny.png +0 -0
  229. data/public/wide.png +0 -0
  230. data/smalruby-editor.gemspec +2 -1
  231. data/spec/acceptance/block_mode/blocks/character/new.feature +5 -5
  232. data/spec/acceptance/block_mode/blocks/control/await.feature +2 -2
  233. data/spec/acceptance/block_mode/blocks/control/await_until.feature +3 -3
  234. data/spec/acceptance/block_mode/blocks/control/break.feature +0 -0
  235. data/spec/acceptance/block_mode/blocks/control/if.feature +0 -0
  236. data/spec/acceptance/block_mode/blocks/control/if_else.feature +0 -0
  237. data/spec/acceptance/block_mode/blocks/control/loop.feature +0 -0
  238. data/spec/acceptance/block_mode/blocks/control/next.feature +0 -0
  239. data/spec/acceptance/block_mode/blocks/control/redo.feature +0 -0
  240. data/spec/acceptance/block_mode/blocks/control/sleep.feature +0 -0
  241. data/spec/acceptance/block_mode/blocks/control/times.feature +0 -0
  242. data/spec/acceptance/block_mode/blocks/control/until.feature +0 -0
  243. data/spec/acceptance/block_mode/blocks/events/on_click.feature +2 -2
  244. data/spec/acceptance/block_mode/blocks/events/on_hit.feature +4 -4
  245. data/spec/acceptance/block_mode/blocks/events/on_key_push_or_down.feature +4 -4
  246. data/spec/acceptance/block_mode/blocks/events/on_start.feature +2 -2
  247. data/spec/acceptance/block_mode/blocks/hardware/init_hardware.feature +1 -1
  248. data/spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature +2 -2
  249. data/spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature +2 -2
  250. data/spec/acceptance/block_mode/blocks/hardware/motor_driver.feature +0 -0
  251. data/spec/acceptance/block_mode/blocks/hardware/motor_driver_speed.feature +0 -0
  252. data/spec/acceptance/block_mode/blocks/hardware/neo_pixel_set_rgb.feature +100 -0
  253. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature +0 -0
  254. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_turn_off.feature +0 -0
  255. data/spec/acceptance/block_mode/blocks/hardware/sensor_value.feature +0 -0
  256. data/spec/acceptance/block_mode/blocks/hardware/servo_set_position.feature +0 -0
  257. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_action_with_sec.feature +1 -1
  258. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_led_turn_on_or_off.feature +1 -1
  259. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature +1 -1
  260. data/spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car.feature +0 -0
  261. data/spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car_speed.feature +0 -0
  262. data/spec/acceptance/block_mode/blocks/looks/hide.feature +2 -2
  263. data/spec/acceptance/block_mode/blocks/looks/next_costume.feature +56 -0
  264. data/spec/acceptance/block_mode/blocks/looks/say.feature +3 -3
  265. data/spec/acceptance/block_mode/blocks/looks/show.feature +2 -2
  266. data/spec/acceptance/block_mode/blocks/looks/vanish.feature +2 -2
  267. data/spec/acceptance/block_mode/blocks/motion/change_x_by.feature +2 -2
  268. data/spec/acceptance/block_mode/blocks/motion/change_y_by.feature +2 -2
  269. data/spec/acceptance/block_mode/blocks/motion/move.feature +2 -2
  270. data/spec/acceptance/block_mode/blocks/motion/reach_wall.feature +2 -2
  271. data/spec/acceptance/block_mode/blocks/motion/rotate_left.feature +2 -2
  272. data/spec/acceptance/block_mode/blocks/motion/rotate_right.feature +2 -2
  273. data/spec/acceptance/block_mode/blocks/motion/self_angle.feature +2 -2
  274. data/spec/acceptance/block_mode/blocks/motion/self_x.feature +2 -2
  275. data/spec/acceptance/block_mode/blocks/motion/self_y.feature +2 -2
  276. data/spec/acceptance/block_mode/blocks/motion/set_angle.feature +2 -2
  277. data/spec/acceptance/block_mode/blocks/motion/set_x.feature +2 -2
  278. data/spec/acceptance/block_mode/blocks/motion/set_x_y.feature +2 -2
  279. data/spec/acceptance/block_mode/blocks/motion/set_y.feature +2 -2
  280. data/spec/acceptance/block_mode/blocks/motion/turn.feature +2 -2
  281. data/spec/acceptance/block_mode/blocks/motion/turn_if_reach_wall.feature +2 -2
  282. data/spec/acceptance/block_mode/blocks/operators/and_or.feature +0 -0
  283. data/spec/acceptance/block_mode/blocks/operators/four_arithmetic_and_compares.feature +0 -0
  284. data/spec/acceptance/block_mode/blocks/operators/index_of.feature +0 -0
  285. data/spec/acceptance/block_mode/blocks/operators/length.feature +0 -0
  286. data/spec/acceptance/block_mode/blocks/operators/math_method.feature +0 -0
  287. data/spec/acceptance/block_mode/blocks/operators/negate.feature +0 -0
  288. data/spec/acceptance/block_mode/blocks/operators/rand.feature +0 -0
  289. data/spec/acceptance/block_mode/blocks/operators/round.feature +0 -0
  290. data/spec/acceptance/block_mode/blocks/operators/text.feature +0 -0
  291. data/spec/acceptance/block_mode/blocks/operators/true_false.feature +0 -0
  292. data/spec/acceptance/block_mode/blocks/ruby/expression.feature +0 -0
  293. data/spec/acceptance/block_mode/blocks/ruby/p.feature +0 -0
  294. data/spec/acceptance/block_mode/blocks/ruby/statement_comment.feature +0 -0
  295. data/spec/acceptance/block_mode/blocks/sensing/character_property.feature +2 -2
  296. data/spec/acceptance/block_mode/blocks/sensing/hit.feature +6 -6
  297. data/spec/acceptance/block_mode/blocks/sensing/input_key_push_or_down.feature +0 -0
  298. data/spec/acceptance/block_mode/blocks/sensing/input_mouse_pos_x.feature +0 -0
  299. data/spec/acceptance/block_mode/blocks/sensing/input_mouse_pos_y.feature +0 -0
  300. data/spec/acceptance/block_mode/blocks/sensing/input_mouse_push_or_down.feature +0 -0
  301. data/spec/acceptance/block_mode/blocks/sensing/reach_wall.feature +2 -2
  302. data/spec/acceptance/block_mode/blocks/sensing/time_now.feature +0 -0
  303. data/spec/acceptance/block_mode/blocks/sound/play.feature +2 -2
  304. data/spec/acceptance/block_mode/character_modal_view.feature +164 -0
  305. data/spec/acceptance/block_mode/demo.feature +2 -2
  306. data/spec/acceptance/block_mode/translate.feature +0 -0
  307. data/spec/acceptance/readme.md +0 -0
  308. data/spec/acceptance/ruby_mode/check.feature +0 -0
  309. data/spec/acceptance/ruby_mode/load.feature +0 -0
  310. data/spec/acceptance/ruby_mode/translate.feature +2 -2
  311. data/spec/acceptance/standalone/preference.feature +8 -8
  312. data/spec/acceptance/standalone/run.feature +0 -0
  313. data/spec/acceptance/standalone/save.feature +1 -1
  314. data/spec/acceptance/standalone/signin.feature +1 -1
  315. data/spec/controllers/source_codes_controller_spec.rb +0 -0
  316. data/spec/fixtures/files/01.rb +0 -0
  317. data/spec/fixtures/files/01.rb.xml +0 -0
  318. data/spec/fixtures/files/01_remix.rb +0 -0
  319. data/spec/fixtures/files/01_remix02.rb +0 -0
  320. data/spec/fixtures/files/01_remix10.rb.xml +0 -0
  321. data/spec/fixtures/files/extra_car.png +0 -0
  322. data/spec/fixtures/files/favicon.ico +0 -0
  323. data/spec/helpers/editor_helper_spec.rb +0 -0
  324. data/spec/javascripts/collections/character_set_spec.coffee +0 -0
  325. data/spec/javascripts/models/character_spec.coffee +2 -14
  326. data/spec/javascripts/models/scene_spec.coffee +0 -0
  327. data/spec/javascripts/spec_helper.js +0 -0
  328. data/spec/lib/smalruby_editor_spec.rb +0 -0
  329. data/spec/models/concerns/ruby_to_block/block/character_method_call_spec.rb +0 -0
  330. data/spec/models/concerns/ruby_to_block/block/character_spec.rb +71 -0
  331. data/spec/models/concerns/ruby_to_block/block/control_if_spec.rb +0 -0
  332. data/spec/models/concerns/ruby_to_block/block/control_loop_spec.rb +0 -0
  333. data/spec/models/concerns/ruby_to_block/block/events_on_start_spec.rb +6 -6
  334. data/spec/models/concerns/ruby_to_block/block/hardware__neo_pixel_spec.rb +77 -0
  335. data/spec/models/concerns/ruby_to_block/block/looks_say_spec.rb +0 -0
  336. data/spec/models/concerns/ruby_to_block/block/looks_spec.rb +26 -2
  337. data/spec/models/concerns/ruby_to_block/block/motion_move_spec.rb +0 -0
  338. data/spec/models/concerns/ruby_to_block/block/motion_spec.rb +0 -0
  339. data/spec/models/concerns/ruby_to_block/block/motion_turn_spec.rb +0 -0
  340. data/spec/models/concerns/ruby_to_block/block/motion_turn_xy_spec.rb +0 -0
  341. data/spec/models/concerns/ruby_to_block/block/require_smalruby_spec.rb +0 -0
  342. data/spec/models/concerns/ruby_to_block/block/ruby_comment_spec.rb +0 -0
  343. data/spec/models/concerns/ruby_to_block/block/ruby_statement_spec.rb +0 -0
  344. data/spec/models/concerns/ruby_to_block/block/sensing_reach_wall_spec.rb +0 -0
  345. data/spec/models/concerns/ruby_to_block/block/shared/block_examples.rb +2 -2
  346. data/spec/models/concerns/ruby_to_block/block/sound_spec.rb +0 -0
  347. data/spec/models/concerns/ruby_to_block/block/text_spec.rb +0 -0
  348. data/spec/models/concerns/ruby_to_block/block_spec.rb +0 -0
  349. data/spec/models/concerns/ruby_to_block_spec.rb +0 -0
  350. data/spec/spec_helper.rb +21 -10
  351. data/spec/steps/block_mode_steps.rb +0 -0
  352. data/spec/steps/fix_turnip.rb +0 -0
  353. data/spec/steps/global_variable.rb +0 -0
  354. data/spec/steps/standalone_steps.rb +3 -3
  355. data/spec/steps/then_steps.rb +28 -0
  356. data/spec/steps/when_steps.rb +15 -18
  357. data/spec/support/capybara.rb +0 -0
  358. data/spec/support/env.rb +0 -0
  359. data/spec/support/ruby_to_block.rb +0 -0
  360. data/spec/teaspoon_env.rb +0 -0
  361. data/spec/turnip_helper.rb +0 -0
  362. data/vendor/assets/javascripts/.keep +0 -0
  363. data/vendor/assets/javascripts/jquery.blockUI.js +0 -0
  364. data/vendor/assets/stylesheets/.keep +0 -0
  365. metadata +56 -14
  366. data/app/assets/javascripts/views/character_modal_view.js.coffee +0 -194
data/config.ru CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -37,6 +37,7 @@ en:
37
37
  index:
38
38
  block: "Block"
39
39
  msg_input_program_name: "Input your program name(ex:01.rb)"
40
+ menu: "Menu"
40
41
  run: "Run"
41
42
  download: "Download"
42
43
  load: "Load"
@@ -49,7 +50,7 @@ en:
49
50
 
50
51
  block_tab:
51
52
  character: "Character"
52
- new_character: "New Character"
53
+ new_character: "New character"
53
54
  direction_parameter: "Dir:"
54
55
  stage: "Stage"
55
56
 
@@ -74,6 +75,10 @@ en:
74
75
  y_position: "Y"
75
76
  msg_input_name: "car1 and ball1 etc..."
76
77
  direction: "Dir"
78
+ costumes: "Costumes:"
79
+ new_costume: "New costume"
80
+ costume_name: "Costume name"
81
+ msg_input_costume_name: "costume1 etc..."
77
82
 
78
83
  load_modal:
79
84
  preset_programs: "Preset programs"
@@ -92,6 +97,10 @@ en:
92
97
  message: "Input your name<br>not to mix with other people's program."
93
98
  username_placeholder: "username, ID, nickname, etc..."
94
99
 
100
+ costumes:
101
+ index:
102
+ upload_costume: "Upload costume..."
103
+
95
104
  users:
96
105
  preferences:
97
106
  toolbox: "Toolbox"
@@ -38,6 +38,7 @@ ja:
38
38
  index:
39
39
  block: "ブロック"
40
40
  msg_input_program_name: "プログラムの名前を入れてね(例:01.rb)"
41
+ menu: "メニュー"
41
42
  run: "実行"
42
43
  download: "ダウンロード"
43
44
  load: "ロード"
@@ -75,6 +76,10 @@ ja:
75
76
  y_position: "Y座標"
76
77
  msg_input_name: "car1やball1など"
77
78
  direction: "向き"
79
+ costumes: "コスチューム:"
80
+ new_costume: "新しいコスチューム"
81
+ costume_name: "コスチュームの名前"
82
+ msg_input_costume_name: "costume1など"
78
83
 
79
84
  load_modal:
80
85
  preset_programs: "いろいろなプログラム"
@@ -93,6 +98,11 @@ ja:
93
98
  message: "あなたの名前をいれて、<br />ほかの人のプログラムとまざらないようにしよう♪"
94
99
  username_placeholder: "名前、生徒番号、ニックネームなど"
95
100
 
101
+ costumes:
102
+ index:
103
+ upload_costume: "新しい画像"
104
+ confirm_to_delete_costume: "登録した画像を削除します。本当にいいですか?"
105
+
96
106
  users:
97
107
  preferences:
98
108
  toolbox: "ツールボックス"
@@ -11,6 +11,8 @@ SmalrubyEditor::Application.routes.draw do
11
11
  match '/signout', to: 'sessions#destroy', via: 'delete'
12
12
 
13
13
  resources :users, only: [:update]
14
+ resources :costumes, only: [:index, :create, :destroy]
15
+ get "/smalruby/assets/:basename", to: "costumes#show"
14
16
 
15
17
  resources :source_codes, only: [:create, :index]
16
18
  post 'source_codes/check'
@@ -1,23 +1,23 @@
1
- worker_processes Integer(ENV['WEB_CONCURRENCY'] || 3)
2
- timeout 15
3
- preload_app true
4
-
5
- # rubocop:disable Output
6
- before_fork do |server, worker|
7
- Signal.trap 'TERM' do
8
- puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
9
- Process.kill 'QUIT', Process.pid
10
- end
11
-
12
- defined?(ActiveRecord::Base) && ActiveRecord::Base.connection.disconnect!
13
- end
14
-
15
- after_fork do |server, worker|
16
- Signal.trap 'TERM' do
17
- puts 'Unicorn worker intercepting TERM and doing nothing.' \
18
- ' Wait for master to send QUIT'
19
- end
20
-
21
- defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection
22
- end
23
- # rubocop:enable Output
1
+ worker_processes Integer(ENV['WEB_CONCURRENCY'] || 3)
2
+ timeout 15
3
+ preload_app true
4
+
5
+ # rubocop:disable Output
6
+ before_fork do |server, worker|
7
+ Signal.trap 'TERM' do
8
+ puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
9
+ Process.kill 'QUIT', Process.pid
10
+ end
11
+
12
+ defined?(ActiveRecord::Base) && ActiveRecord::Base.connection.disconnect!
13
+ end
14
+
15
+ after_fork do |server, worker|
16
+ Signal.trap 'TERM' do
17
+ puts 'Unicorn worker intercepting TERM and doing nothing.' \
18
+ ' Wait for master to send QUIT'
19
+ end
20
+
21
+ defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection
22
+ end
23
+ # rubocop:enable Output
@@ -1,6 +1,6 @@
1
1
  class AddIndexNameOnUsers < ActiveRecord::Migration
2
2
  def up
3
- add_index :users, :name, :unique
3
+ add_index :users, :name, unique: true
4
4
  end
5
5
 
6
6
  def down
@@ -0,0 +1,12 @@
1
+ class CreateCostumes < ActiveRecord::Migration
2
+ def change
3
+ create_table :costumes do |t|
4
+ t.string :name, null: false, unique: true
5
+ t.boolean :preset, null: false, default: false
6
+ t.integer :position, null: false
7
+ t.references :user
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ class AddIndexesOnCostumes < ActiveRecord::Migration
2
+ def up
3
+ add_index :costumes, :name
4
+ add_index :costumes, :position
5
+ add_index :costumes, :user_id
6
+ end
7
+
8
+ def down
9
+ remove_index :costumes, :name
10
+ remove_index :costumes, :position
11
+ remove_index :costumes, :user_id
12
+ end
13
+ end
@@ -0,0 +1,31 @@
1
+ # This migration comes from acts_as_taggable_on_engine (originally 1)
2
+ class ActsAsTaggableOnMigration < ActiveRecord::Migration
3
+ def self.up
4
+ create_table :tags do |t|
5
+ t.string :name
6
+ end
7
+
8
+ create_table :taggings do |t|
9
+ t.references :tag
10
+
11
+ # You should make sure that the column created is
12
+ # long enough to store the required class names.
13
+ t.references :taggable, polymorphic: true
14
+ t.references :tagger, polymorphic: true
15
+
16
+ # Limit is created to prevent MySQL error on index
17
+ # length for MyISAM table type: http://bit.ly/vgW2Ql
18
+ t.string :context, limit: 128
19
+
20
+ t.datetime :created_at
21
+ end
22
+
23
+ add_index :taggings, :tag_id
24
+ add_index :taggings, [:taggable_id, :taggable_type, :context]
25
+ end
26
+
27
+ def self.down
28
+ drop_table :taggings
29
+ drop_table :tags
30
+ end
31
+ end
@@ -0,0 +1,21 @@
1
+ # This migration comes from acts_as_taggable_on_engine (originally 2)
2
+ class AddMissingUniqueIndices < ActiveRecord::Migration
3
+ def self.up
4
+ add_index :tags, :name, unique: true
5
+
6
+ remove_index :taggings, :tag_id
7
+ remove_index :taggings, [:taggable_id, :taggable_type, :context]
8
+ add_index :taggings,
9
+ [:tag_id, :taggable_id, :taggable_type, :context,
10
+ :tagger_id, :tagger_type],
11
+ unique: true, name: 'taggings_idx'
12
+ end
13
+
14
+ def self.down
15
+ remove_index :tags, :name
16
+
17
+ remove_index :taggings, name: 'taggings_idx'
18
+ add_index :taggings, :tag_id
19
+ add_index :taggings, [:taggable_id, :taggable_type, :context]
20
+ end
21
+ end
@@ -0,0 +1,15 @@
1
+ # This migration comes from acts_as_taggable_on_engine (originally 3)
2
+ class AddTaggingsCounterCacheToTags < ActiveRecord::Migration
3
+ def self.up
4
+ add_column :tags, :taggings_count, :integer, default: 0
5
+
6
+ ActsAsTaggableOn::Tag.reset_column_information
7
+ ActsAsTaggableOn::Tag.find_each do |tag|
8
+ ActsAsTaggableOn::Tag.reset_counters(tag.id, :taggings)
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ remove_column :tags, :taggings_count
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ # This migration comes from acts_as_taggable_on_engine (originally 4)
2
+ class AddMissingTaggableIndex < ActiveRecord::Migration
3
+ def self.up
4
+ add_index :taggings, [:taggable_id, :taggable_type, :context]
5
+ end
6
+
7
+ def self.down
8
+ remove_index :taggings, [:taggable_id, :taggable_type, :context]
9
+ end
10
+ end
@@ -0,0 +1,12 @@
1
+ # This migration comes from acts_as_taggable_on_engine (originally 5)
2
+ # This migration is added to circumvent issue #623 and have special characters
3
+ # work properly
4
+ class ChangeCollationForTagNames < ActiveRecord::Migration
5
+ # rubocop:disable LineLength
6
+ def up
7
+ if ActsAsTaggableOn::Utils.using_mysql?
8
+ execute("ALTER TABLE tags MODIFY name varchar(255) CHARACTER SET utf8 COLLATE utf8_bin;")
9
+ end
10
+ end
11
+ # rubocop:enable LineLength
12
+ end
@@ -0,0 +1,9 @@
1
+ class InsertPresetCostumes < ActiveRecord::Migration
2
+ def up
3
+ Costume.create_presets
4
+ end
5
+
6
+ def down
7
+ Costume.destroy_presets
8
+ end
9
+ end
@@ -11,7 +11,20 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20150513061250) do
14
+ ActiveRecord::Schema.define(version: 20150607034018) do
15
+
16
+ create_table "costumes", force: true do |t|
17
+ t.string "name", null: false
18
+ t.boolean "preset", default: false, null: false
19
+ t.integer "position", null: false
20
+ t.integer "user_id"
21
+ t.datetime "created_at"
22
+ t.datetime "updated_at"
23
+ end
24
+
25
+ add_index "costumes", ["name"], name: "index_costumes_on_name"
26
+ add_index "costumes", ["position"], name: "index_costumes_on_position"
27
+ add_index "costumes", ["user_id"], name: "index_costumes_on_user_id"
15
28
 
16
29
  create_table "source_codes", force: true do |t|
17
30
  t.text "data"
@@ -20,6 +33,26 @@ ActiveRecord::Schema.define(version: 20150513061250) do
20
33
  t.string "filename"
21
34
  end
22
35
 
36
+ create_table "taggings", force: true do |t|
37
+ t.integer "tag_id"
38
+ t.integer "taggable_id"
39
+ t.string "taggable_type"
40
+ t.integer "tagger_id"
41
+ t.string "tagger_type"
42
+ t.string "context", limit: 128
43
+ t.datetime "created_at"
44
+ end
45
+
46
+ add_index "taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
47
+ add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
48
+
49
+ create_table "tags", force: true do |t|
50
+ t.string "name"
51
+ t.integer "taggings_count", default: 0
52
+ end
53
+
54
+ add_index "tags", ["name"], name: "index_tags_on_name", unique: true
55
+
23
56
  create_table "users", force: true do |t|
24
57
  t.string "name"
25
58
  t.text "preferences"
@@ -27,6 +60,6 @@ ActiveRecord::Schema.define(version: 20150513061250) do
27
60
  t.datetime "updated_at"
28
61
  end
29
62
 
30
- add_index "users", ["name"], name: "index_users_on_name", unique: true, using: :btree
63
+ add_index "users", ["name"], name: "index_users_on_name", unique: true
31
64
 
32
65
  end
@@ -5,3 +5,5 @@
5
5
  #
6
6
  # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
7
7
  # Mayor.create(name: 'Emanuel', city: cities.first)
8
+
9
+ Costume.create_presets
@@ -1,129 +1,129 @@
1
- <xml xmlns="http://www.w3.org/1999/xhtml">
2
- <character name="car1" x="0" y="0" costumes="car2.png" angle="0" />
3
- <character name="car2" x="0" y="415" costumes="car4.png" angle="0" />
4
- <block type="ruby_comment" x="53" y="45">
5
- <field name="COMMENT">車のおいかけっこ</field>
6
- </block>
7
- <block type="ruby_comment" x="55" y="100">
8
- <field name="COMMENT">逃げる車</field>
9
- <next>
10
- <block type="character_new">
11
- <field name="NAME">car1</field>
12
- <statement name="DO">
13
- <block type="events_on_start">
14
- <statement name="DO">
15
- <block type="control_loop">
16
- <statement name="DO">
17
- <block type="motion_move" inline="true">
18
- <value name="STEP">
19
- <block type="math_number">
20
- <field name="NUM">6</field>
21
- </block>
22
- </value>
23
- <next>
24
- <block type="control_if" inline="true">
25
- <value name="COND">
26
- <block type="motion_reach_wall" />
27
- </value>
28
- <statement name="THEN">
29
- <block type="motion_turn" />
30
- </statement>
31
- </block>
32
- </next>
33
- </block>
34
- </statement>
35
- </block>
36
- </statement>
37
- <next>
38
- <block type="events_on_key_push_or_down">
39
- <field name="KEY">K_LEFT</field>
40
- <field name="POD">down</field>
41
- <statement name="DO">
42
- <block type="motion_rotate_left" inline="true">
43
- <value name="ANGLE">
44
- <block type="math_number">
45
- <field name="NUM">15</field>
46
- </block>
47
- </value>
48
- </block>
49
- </statement>
50
- <next>
51
- <block type="events_on_key_push_or_down">
52
- <field name="KEY">K_RIGHT</field>
53
- <field name="POD">down</field>
54
- <statement name="DO">
55
- <block type="motion_rotate_right" inline="true">
56
- <value name="ANGLE">
57
- <block type="math_number">
58
- <field name="NUM">15</field>
59
- </block>
60
- </value>
61
- </block>
62
- </statement>
63
- </block>
64
- </next>
65
- </block>
66
- </next>
67
- </block>
68
- </statement>
69
- </block>
70
- </next>
71
- </block>
72
- <block type="ruby_comment" x="454" y="99">
73
- <field name="COMMENT">追いかける車</field>
74
- <next>
75
- <block type="character_new">
76
- <field name="NAME">car2</field>
77
- <statement name="DO">
78
- <block type="events_on_start">
79
- <statement name="DO">
80
- <block type="control_loop">
81
- <statement name="DO">
82
- <block type="motion_point_towards_character">
83
- <field name="CHAR">car1</field>
84
- <next>
85
- <block type="motion_move" inline="true">
86
- <value name="STEP">
87
- <block type="math_number">
88
- <field name="NUM">3</field>
89
- </block>
90
- </value>
91
- <next>
92
- <block type="control_if_else" inline="true">
93
- <value name="COND">
94
- <block type="sensing_hit">
95
- <field name="CHAR">car1</field>
96
- </block>
97
- </value>
98
- <statement name="THEN">
99
- <block type="looks_say" inline="true">
100
- <value name="TEXT">
101
- <block type="text">
102
- <field name="TEXT">追いつきました!</field>
103
- </block>
104
- </value>
105
- </block>
106
- </statement>
107
- <statement name="ELSE">
108
- <block type="looks_say" inline="true">
109
- <value name="TEXT">
110
- <block type="text">
111
- <field name="TEXT" />
112
- </block>
113
- </value>
114
- </block>
115
- </statement>
116
- </block>
117
- </next>
118
- </block>
119
- </next>
120
- </block>
121
- </statement>
122
- </block>
123
- </statement>
124
- </block>
125
- </statement>
126
- </block>
127
- </next>
128
- </block>
1
+ <xml xmlns="http://www.w3.org/1999/xhtml">
2
+ <character name="car1" x="0" y="0" costumes="car2.png" angle="0" />
3
+ <character name="car2" x="0" y="415" costumes="car4.png" angle="0" />
4
+ <block type="ruby_comment" x="53" y="45">
5
+ <field name="COMMENT">車のおいかけっこ</field>
6
+ </block>
7
+ <block type="ruby_comment" x="55" y="100">
8
+ <field name="COMMENT">逃げる車</field>
9
+ <next>
10
+ <block type="character_new">
11
+ <field name="NAME">car1</field>
12
+ <statement name="DO">
13
+ <block type="events_on_start">
14
+ <statement name="DO">
15
+ <block type="control_loop">
16
+ <statement name="DO">
17
+ <block type="motion_move" inline="true">
18
+ <value name="STEP">
19
+ <block type="math_number">
20
+ <field name="NUM">6</field>
21
+ </block>
22
+ </value>
23
+ <next>
24
+ <block type="control_if" inline="true">
25
+ <value name="COND">
26
+ <block type="motion_reach_wall" />
27
+ </value>
28
+ <statement name="THEN">
29
+ <block type="motion_turn" />
30
+ </statement>
31
+ </block>
32
+ </next>
33
+ </block>
34
+ </statement>
35
+ </block>
36
+ </statement>
37
+ <next>
38
+ <block type="events_on_key_push_or_down">
39
+ <field name="KEY">K_LEFT</field>
40
+ <field name="POD">down</field>
41
+ <statement name="DO">
42
+ <block type="motion_rotate_left" inline="true">
43
+ <value name="ANGLE">
44
+ <block type="math_number">
45
+ <field name="NUM">15</field>
46
+ </block>
47
+ </value>
48
+ </block>
49
+ </statement>
50
+ <next>
51
+ <block type="events_on_key_push_or_down">
52
+ <field name="KEY">K_RIGHT</field>
53
+ <field name="POD">down</field>
54
+ <statement name="DO">
55
+ <block type="motion_rotate_right" inline="true">
56
+ <value name="ANGLE">
57
+ <block type="math_number">
58
+ <field name="NUM">15</field>
59
+ </block>
60
+ </value>
61
+ </block>
62
+ </statement>
63
+ </block>
64
+ </next>
65
+ </block>
66
+ </next>
67
+ </block>
68
+ </statement>
69
+ </block>
70
+ </next>
71
+ </block>
72
+ <block type="ruby_comment" x="454" y="99">
73
+ <field name="COMMENT">追いかける車</field>
74
+ <next>
75
+ <block type="character_new">
76
+ <field name="NAME">car2</field>
77
+ <statement name="DO">
78
+ <block type="events_on_start">
79
+ <statement name="DO">
80
+ <block type="control_loop">
81
+ <statement name="DO">
82
+ <block type="motion_point_towards_character">
83
+ <field name="CHAR">car1</field>
84
+ <next>
85
+ <block type="motion_move" inline="true">
86
+ <value name="STEP">
87
+ <block type="math_number">
88
+ <field name="NUM">3</field>
89
+ </block>
90
+ </value>
91
+ <next>
92
+ <block type="control_if_else" inline="true">
93
+ <value name="COND">
94
+ <block type="sensing_hit">
95
+ <field name="CHAR">car1</field>
96
+ </block>
97
+ </value>
98
+ <statement name="THEN">
99
+ <block type="looks_say" inline="true">
100
+ <value name="TEXT">
101
+ <block type="text">
102
+ <field name="TEXT">追いつきました!</field>
103
+ </block>
104
+ </value>
105
+ </block>
106
+ </statement>
107
+ <statement name="ELSE">
108
+ <block type="looks_say" inline="true">
109
+ <value name="TEXT">
110
+ <block type="text">
111
+ <field name="TEXT" />
112
+ </block>
113
+ </value>
114
+ </block>
115
+ </statement>
116
+ </block>
117
+ </next>
118
+ </block>
119
+ </next>
120
+ </block>
121
+ </statement>
122
+ </block>
123
+ </statement>
124
+ </block>
125
+ </statement>
126
+ </block>
127
+ </next>
128
+ </block>
129
129
  </xml>