smalruby-editor 0.2.6-x86-mingw32 → 0.2.7-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 (97) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +5 -0
  3. data/Guardfile +2 -0
  4. data/app/assets/javascripts/blocks/hardware.js.coffee.erb +1 -1
  5. data/app/assets/javascripts/fix_blockly.js.erb +0 -50
  6. data/app/assets/javascripts/generators/ruby.js.coffee.erb +18 -4
  7. data/app/assets/javascripts/models/source_code.js +1 -1
  8. data/app/assets/javascripts/msg/en_us.js +1 -0
  9. data/app/assets/javascripts/msg/ja.js +4 -0
  10. data/app/assets/javascripts/smalruby.js.coffee.erb +50 -6
  11. data/app/assets/javascripts/views/main_menu_view.js.coffee.erb +14 -4
  12. data/app/assets/javascripts/views/preference_modal_view.js.coffee.erb +71 -0
  13. data/app/assets/javascripts/views/signin_modal_view.js.coffee.erb +5 -4
  14. data/app/assets/stylesheets/application.css +1 -0
  15. data/app/assets/stylesheets/preference-modal.css.scss +22 -0
  16. data/app/assets/stylesheets/toolbox.css.scss.erb +36 -0
  17. data/app/controllers/application_controller.rb +20 -4
  18. data/app/controllers/editor_controller.rb +4 -0
  19. data/app/controllers/sessions_controller.rb +7 -4
  20. data/app/controllers/source_codes_controller.rb +2 -2
  21. data/app/controllers/users_controller.rb +22 -0
  22. data/app/helpers/application_helper.rb +4 -4
  23. data/app/helpers/sessions_helper.rb +0 -0
  24. data/app/helpers/users_helper.rb +10 -0
  25. data/app/models/concerns/ruby_to_block/block/hardware_init_hardware.rb +0 -6
  26. data/app/models/concerns/ruby_to_block/block/hardware_operation.rb +0 -0
  27. data/app/models/preference.rb +71 -0
  28. data/app/models/source_code.rb +4 -0
  29. data/app/models/user.rb +26 -0
  30. data/app/views/editor/_block_tab.html.haml +5 -6
  31. data/app/views/editor/_load_modal.html.haml +2 -2
  32. data/app/views/editor/_preference_modal.html.haml +16 -0
  33. data/app/views/editor/_signin_modal.html.haml +1 -1
  34. data/app/views/editor/_toolbox_default.html.haml +86 -79
  35. data/app/views/editor/{_toolbox_raspberrypi.html.haml → _toolbox_smalrubot.html.haml} +72 -105
  36. data/app/views/editor/_toolbox_smalrubot_s1.html.haml +1 -196
  37. data/app/views/editor/_toolbox_smalrubot_v3.html.haml +1 -196
  38. data/app/views/editor/index.html.haml +11 -4
  39. data/app/views/editor/toolbox.html.haml +1 -0
  40. data/app/views/layouts/application.html.erb +1 -1
  41. data/app/views/users/preferences.html.haml +34 -0
  42. data/config/application.rb +1 -1
  43. data/config/locales/en.yml +30 -0
  44. data/config/locales/ja.yml +30 -0
  45. data/config/routes.rb +4 -57
  46. data/db/migrate/20150513061200_create_users.rb +10 -0
  47. data/db/migrate/20150513061250_add_index_name_on_users.rb +9 -0
  48. data/db/schema.rb +10 -1
  49. data/lib/smalruby_editor.rb +22 -24
  50. data/lib/smalruby_editor/version.rb +1 -1
  51. data/smalruby-editor.gemspec +0 -0
  52. data/spec/acceptance/block_mode/blocks/hardware/button_pressed_or_released.feature +2 -0
  53. data/spec/acceptance/block_mode/blocks/hardware/init_hardware.feature +1 -0
  54. data/spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature +11 -1
  55. data/spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature +11 -1
  56. data/spec/acceptance/block_mode/blocks/hardware/motor_driver.feature +7 -1
  57. data/spec/acceptance/block_mode/blocks/hardware/motor_driver_speed.feature +2 -0
  58. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature +9 -12
  59. data/spec/acceptance/block_mode/blocks/hardware/rgb_led_turn_off.feature +9 -12
  60. data/spec/acceptance/block_mode/blocks/hardware/sensor_value.feature +59 -60
  61. data/spec/acceptance/block_mode/blocks/hardware/servo_set_position.feature +76 -67
  62. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_action.feature +9 -12
  63. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_action_with_sec.feature +9 -11
  64. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_dc_motor_power_ratio.feature +11 -12
  65. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_led_turn_on_or_off.feature +9 -10
  66. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action.feature +9 -12
  67. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature +9 -11
  68. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_dc_motor_power_ratio.feature +11 -12
  69. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_led_turn_on_or_off.feature +9 -12
  70. data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_sensor_value.feature +11 -12
  71. data/spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car.feature +7 -1
  72. data/spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car_speed.feature +2 -0
  73. data/spec/acceptance/standalone/preference.feature +92 -0
  74. data/{demos → spec/fixtures/files}/hardware_led.rb.xml +0 -0
  75. data/spec/javascripts/models/source_code_spec.coffee +0 -0
  76. data/spec/models/concerns/ruby_to_block/block/hardware__smalrubot_spec.rb +1 -1
  77. data/spec/models/concerns/ruby_to_block/block/hardware_spec.rb +4 -4
  78. data/spec/models/concerns/ruby_to_block_spec.rb +1 -1
  79. data/spec/models/source_code_spec.rb +1 -11
  80. data/spec/spec_helper.rb +8 -0
  81. data/spec/steps/base_steps.rb +68 -16
  82. data/spec/steps/standalone_steps.rb +21 -0
  83. data/spec/steps/text_editor_steps.rb +8 -8
  84. data/spec/support/feature_helper.rb +13 -0
  85. data/vendor/assets/javascripts/blockly/blockly_compressed.js +500 -454
  86. data/vendor/assets/javascripts/blockly/blocks_compressed.js +29 -28
  87. data/vendor/assets/javascripts/blockly/msg/js/ja.js +2 -1
  88. metadata +33 -35
  89. data/app/assets/stylesheets/toolbox_default.css.scss.erb +0 -34
  90. data/app/assets/stylesheets/toolbox_raspberrypi.css.scss.erb +0 -32
  91. data/app/assets/stylesheets/toolbox_smalrubot_s1.css.scss.erb +0 -32
  92. data/app/assets/stylesheets/toolbox_smalrubot_v3.css.scss.erb +0 -32
  93. data/demos/adjust_2wd_car.rb.xml +0 -179
  94. data/lib/smalruby_editor/config.rb +0 -24
  95. data/spec/controllers/editor_controller_spec.rb +0 -12
  96. data/spec/controllers/sessions_controller_spec.rb +0 -74
  97. data/spec/helpers/sessions_helper_spec.rb +0 -15
@@ -15,7 +15,13 @@
15
15
  """
16
16
  かつ ブロックからソースコードを生成する
17
17
 
18
- ならば テキストエディタのプログラムは "" であること
18
+ ならば テキストエディタのプログラムは以下であること:
19
+ """
20
+ require "smalruby"
21
+
22
+ init_hardware
23
+
24
+ """
19
25
 
20
26
  シナリオ: キャラクターとブロックを配置する
21
27
  もし 次のブロックを配置する:
@@ -34,6 +40,8 @@
34
40
  """
35
41
  require "smalruby"
36
42
 
43
+ init_hardware
44
+
37
45
  car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
38
46
  car1.led("D13").turn_on
39
47
 
@@ -58,6 +66,8 @@
58
66
  """
59
67
  require "smalruby"
60
68
 
69
+ init_hardware
70
+
61
71
  car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
62
72
 
63
73
  car1.on(:start) do
@@ -20,7 +20,13 @@
20
20
  """
21
21
  かつ ブロックからソースコードを生成する
22
22
 
23
- ならば テキストエディタのプログラムは "" であること
23
+ ならば テキストエディタのプログラムは以下であること:
24
+ """
25
+ require "smalruby"
26
+
27
+ init_hardware
28
+
29
+ """
24
30
 
25
31
  # キャラクターとブロックを配置する
26
32
  もし 次のブロック("motor_driver(<メソッド>)")を配置する:
@@ -30,6 +30,8 @@
30
30
  """
31
31
  require "smalruby"
32
32
 
33
+ init_hardware
34
+
33
35
  p("")
34
36
 
35
37
  """
@@ -19,7 +19,13 @@
19
19
  """
20
20
  かつ ブロックからソースコードを生成する
21
21
 
22
- ならば テキストエディタのプログラムは "" であること
22
+ ならば テキストエディタのプログラムは以下であること:
23
+ """
24
+ require "smalruby"
25
+
26
+ init_hardware
27
+
28
+ """
23
29
 
24
30
  シナリオ: キャラクターとブロックを配置する
25
31
  もし 次のブロックを配置する:
@@ -38,13 +44,9 @@
38
44
  """
39
45
  かつ ブロックからソースコードを生成する
40
46
 
41
- ならば テキストエディタのプログラムは以下であること:
47
+ ならば テキストエディタのプログラムは以下を含むこと:
42
48
  """
43
- require "smalruby"
44
-
45
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
46
49
  car1.rgb_led_anode("D3").color = [128, 128, 128]
47
-
48
50
  """
49
51
 
50
52
  シナリオ: キャラクターとイベントとブロックを配置する
@@ -66,14 +68,9 @@
66
68
  """
67
69
  かつ ブロックからソースコードを生成する
68
70
 
69
- ならば テキストエディタのプログラムは以下であること:
71
+ ならば テキストエディタのプログラムは以下を含むこと:
70
72
  """
71
- require "smalruby"
72
-
73
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
74
-
75
73
  car1.on(:start) do
76
74
  self.rgb_led_anode("D3").color = [128, 128, 128]
77
75
  end
78
-
79
76
  """
@@ -17,7 +17,13 @@
17
17
  """
18
18
  かつ ブロックからソースコードを生成する
19
19
 
20
- ならば テキストエディタのプログラムは "" であること
20
+ ならば テキストエディタのプログラムは以下であること:
21
+ """
22
+ require "smalruby"
23
+
24
+ init_hardware
25
+
26
+ """
21
27
 
22
28
  シナリオ: キャラクターとブロックを配置する
23
29
  もし 次のブロックを配置する:
@@ -34,13 +40,9 @@
34
40
  """
35
41
  かつ ブロックからソースコードを生成する
36
42
 
37
- ならば テキストエディタのプログラムは以下であること:
43
+ ならば テキストエディタのプログラムは以下を含むこと:
38
44
  """
39
- require "smalruby"
40
-
41
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
42
45
  car1.rgb_led_anode("D3").turn_off
43
-
44
46
  """
45
47
 
46
48
  シナリオ: キャラクターとイベントとブロックを配置する
@@ -60,14 +62,9 @@
60
62
  """
61
63
  かつ ブロックからソースコードを生成する
62
64
 
63
- ならば テキストエディタのプログラムは以下であること:
65
+ ならば テキストエディタのプログラムは以下を含むこと:
64
66
  """
65
- require "smalruby"
66
-
67
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
68
-
69
67
  car1.on(:start) do
70
68
  rgb_led_anode("D3").turn_off
71
69
  end
72
-
73
70
  """
@@ -6,35 +6,43 @@
6
6
  前提 "ブロック" タブを表示する
7
7
 
8
8
  もし 次のブロックを配置する:
9
- """
10
- %block{:type => "hardware_sensor_value", :x => "0", :y => "0"}
11
- %field{:name => "PIN"}<
12
- A0
13
- """
9
+ """
10
+ %block{:type => "hardware_sensor_value", :x => "0", :y => "0"}
11
+ %field{:name => "PIN"}<
12
+ A0
13
+ """
14
14
  かつ ブロックからソースコードを生成する
15
15
 
16
- ならば テキストエディタのプログラムは "" であること
16
+ ならば テキストエディタのプログラムは以下であること:
17
+ """
18
+ require "smalruby"
19
+
20
+ init_hardware
21
+
22
+ """
17
23
 
18
24
  シナリオ: 文とブロックを配置する
19
25
  前提 "ブロック" タブを表示する
20
26
 
21
27
  もし 次のブロックを配置する:
22
- """
23
- %block{:type => "ruby_p", :x => "0", :y => "0", :inline => "true" }
24
- %value{:name => "ARG"}
25
- %block{:type => "hardware_sensor_value", :x => "0", :y => "0"}
26
- %field{:name => "PIN"}<
27
- A0
28
- """
28
+ """
29
+ %block{:type => "ruby_p", :x => "0", :y => "0", :inline => "true" }
30
+ %value{:name => "ARG"}
31
+ %block{:type => "hardware_sensor_value", :x => "0", :y => "0"}
32
+ %field{:name => "PIN"}<
33
+ A0
34
+ """
29
35
  かつ ブロックからソースコードを生成する
30
36
 
31
37
  ならば テキストエディタのプログラムは以下であること:
32
- """
33
- require "smalruby"
38
+ """
39
+ require "smalruby"
34
40
 
35
- p("")
41
+ init_hardware
36
42
 
37
- """
43
+ p("")
44
+
45
+ """
38
46
 
39
47
  シナリオ: キャラクターとブロックを配置する
40
48
  前提 "ブロック" タブを表示する
@@ -43,27 +51,23 @@
43
51
  | car1 | car1.png | 0 | 0 | 0 |
44
52
 
45
53
  もし 次のブロックを配置する:
46
- """
47
- %block{:type => "character_new", :x => "21", :y => "15"}
48
- %field{:name => "NAME"}<
49
- car1
50
- %statement{:name => "DO"}
51
- %block{:type => "ruby_p", :x => "0", :y => "0", :inline => "true" }
52
- %value{:name => "ARG"}
53
- %block{:type => "hardware_sensor_value", :x => "0", :y => "0"}
54
- %field{:name => "PIN"}<
55
- A0
56
- """
54
+ """
55
+ %block{:type => "character_new", :x => "21", :y => "15"}
56
+ %field{:name => "NAME"}<
57
+ car1
58
+ %statement{:name => "DO"}
59
+ %block{:type => "ruby_p", :x => "0", :y => "0", :inline => "true" }
60
+ %value{:name => "ARG"}
61
+ %block{:type => "hardware_sensor_value", :x => "0", :y => "0"}
62
+ %field{:name => "PIN"}<
63
+ A0
64
+ """
57
65
  かつ ブロックからソースコードを生成する
58
66
 
59
- ならば テキストエディタのプログラムは以下であること:
60
- """
61
- require "smalruby"
62
-
63
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
64
- p(car1.sensor("A0").value)
65
-
66
- """
67
+ ならば テキストエディタのプログラムは以下を含むこと:
68
+ """
69
+ p(car1.sensor("A0").value)
70
+ """
67
71
 
68
72
  シナリオ: キャラクターとイベントとブロックを配置する
69
73
  前提 "ブロック" タブを表示する
@@ -72,29 +76,24 @@
72
76
  | car1 | car1.png | 0 | 0 | 0 |
73
77
 
74
78
  もし 次のブロックを配置する:
75
- """
76
- %block{:type => "character_new", :x => "21", :y => "15"}
77
- %field{:name => "NAME"}<
78
- car1
79
- %statement{:name => "DO"}
80
- %block{:type => "events_on_start"}
81
- %statement{:name => "DO"}
82
- %block{:type => "ruby_p", :x => "0", :y => "0", :inline => "true" }
83
- %value{:name => "ARG"}
84
- %block{:type => "hardware_sensor_value", :x => "0", :y => "0"}
85
- %field{:name => "PIN"}<
86
- A0
87
- """
79
+ """
80
+ %block{:type => "character_new", :x => "21", :y => "15"}
81
+ %field{:name => "NAME"}<
82
+ car1
83
+ %statement{:name => "DO"}
84
+ %block{:type => "events_on_start"}
85
+ %statement{:name => "DO"}
86
+ %block{:type => "ruby_p", :x => "0", :y => "0", :inline => "true" }
87
+ %value{:name => "ARG"}
88
+ %block{:type => "hardware_sensor_value", :x => "0", :y => "0"}
89
+ %field{:name => "PIN"}<
90
+ A0
91
+ """
88
92
  かつ ブロックからソースコードを生成する
89
93
 
90
- ならば テキストエディタのプログラムは以下であること:
91
- """
92
- require "smalruby"
93
-
94
- car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
95
-
96
- car1.on(:start) do
97
- p(sensor("A0").value)
98
- end
99
-
100
- """
94
+ ならば テキストエディタのプログラムは以下を含むこと:
95
+ """
96
+ car1.on(:start) do
97
+ p(sensor("A0").value)
98
+ end
99
+ """
@@ -10,95 +10,104 @@
10
10
 
11
11
  シナリオ: ブロックのみ配置する
12
12
  もし 次のブロックを配置する:
13
- """
14
- %block{:type => "hardware_servo_set_position", :x => "0", :y => "0"}
15
- %field{:name => "PIN"}<
16
- D3
17
- """
13
+ """
14
+ %block{:type => "hardware_servo_set_position", :x => "0", :y => "0"}
15
+ %field{:name => "PIN"}<
16
+ D3
17
+ """
18
18
  かつ ブロックからソースコードを生成する
19
19
 
20
- ならば テキストエディタのプログラムは "" であること
20
+ ならば テキストエディタのプログラムは以下であること:
21
+ """
22
+ require "smalruby"
23
+
24
+ init_hardware
25
+
26
+ """
21
27
 
22
28
  シナリオ: 値を設定したブロックを配置する
23
29
  もし 次のブロックを配置する:
24
- """
25
- %block{:type => "hardware_servo_set_position", :x => "0", :y => "0"}
26
- %field{:name => "PIN"}<
27
- D3
28
- %value{:name => "POS"}
29
- %block{:type => "math_number"}
30
- %field{:name => "NUM"}<
31
- 5
32
- """
30
+ """
31
+ %block{:type => "hardware_servo_set_position", :x => "0", :y => "0"}
32
+ %field{:name => "PIN"}<
33
+ D3
34
+ %value{:name => "POS"}
35
+ %block{:type => "math_number"}
36
+ %field{:name => "NUM"}<
37
+ 5
38
+ """
33
39
  かつ ブロックからソースコードを生成する
34
40
 
35
- ならば テキストエディタのプログラムは "" であること
41
+ ならば テキストエディタのプログラムは以下であること:
42
+ """
43
+ require "smalruby"
44
+
45
+ init_hardware
46
+
47
+ """
36
48
 
37
49
  シナリオ: キャラクターとブロックを配置する
38
50
  もし 次のブロックを配置する:
39
- """
40
- %block{:type => "character_new", :x => "21", :y => "15"}
41
- %field{:name => "NAME"}<
42
- car1
43
- %statement{:name => "DO"}
44
- %block{:type => "hardware_servo_set_position", :x => "0", :y => "0"}
45
- %field{:name => "PIN"}<
46
- D3
47
- """
51
+ """
52
+ %block{:type => "character_new", :x => "21", :y => "15"}
53
+ %field{:name => "NAME"}<
54
+ car1
55
+ %statement{:name => "DO"}
56
+ %block{:type => "hardware_servo_set_position", :x => "0", :y => "0"}
57
+ %field{:name => "PIN"}<
58
+ D3
59
+ """
48
60
  かつ ブロックからソースコードを生成する
49
61
 
50
62
  ならば テキストエディタのプログラムは以下を含むこと:
51
- """
52
- car1.servo("D3").position = 5
53
-
54
- """
63
+ """
64
+ car1.servo("D3").position = 5
65
+ """
55
66
 
56
67
  シナリオ: キャラクターと値を設定したブロックを配置する
57
68
  もし 次のブロックを配置する:
58
- """
59
- %block{:type => "character_new", :x => "21", :y => "15"}
60
- %field{:name => "NAME"}<
61
- car1
62
- %statement{:name => "DO"}
63
- %block{:type => "hardware_servo_set_position", :x => "0", :y => "0"}
64
- %field{:name => "PIN"}<
65
- D3
66
- %value{:name => "POS"}
67
- %block{:type => "math_number"}
68
- %field{:name => "NUM"}<
69
- 5
70
- """
69
+ """
70
+ %block{:type => "character_new", :x => "21", :y => "15"}
71
+ %field{:name => "NAME"}<
72
+ car1
73
+ %statement{:name => "DO"}
74
+ %block{:type => "hardware_servo_set_position", :x => "0", :y => "0"}
75
+ %field{:name => "PIN"}<
76
+ D3
77
+ %value{:name => "POS"}
78
+ %block{:type => "math_number"}
79
+ %field{:name => "NUM"}<
80
+ 5
81
+ """
71
82
  かつ ブロックからソースコードを生成する
72
83
 
73
84
  ならば テキストエディタのプログラムは以下を含むこと:
74
- """
75
- car1.servo("D3").position = 5
76
-
77
- """
85
+ """
86
+ car1.servo("D3").position = 5
87
+ """
78
88
 
79
89
  シナリオ: キャラクターとイベントと値を設定したブロックを配置する
80
90
  もし 次のブロックを配置する:
81
- """
82
- %block{:type => "character_new", :x => "21", :y => "15"}
83
- %field{:name => "NAME"}<
84
- car1
85
- %statement{:name => "DO"}
86
- %block{:type => "events_on_start"}
87
- %statement{:name => "DO"}
88
- %block{:type => "hardware_servo_set_position", :x => "0", :y => "0"}
89
- %field{:name => "PIN"}<
90
- D3
91
- %value{:name => "POS"}
92
- %block{:type => "math_number"}
93
- %field{:name => "NUM"}<
94
- 5
95
- """
91
+ """
92
+ %block{:type => "character_new", :x => "21", :y => "15"}
93
+ %field{:name => "NAME"}<
94
+ car1
95
+ %statement{:name => "DO"}
96
+ %block{:type => "events_on_start"}
97
+ %statement{:name => "DO"}
98
+ %block{:type => "hardware_servo_set_position", :x => "0", :y => "0"}
99
+ %field{:name => "PIN"}<
100
+ D3
101
+ %value{:name => "POS"}
102
+ %block{:type => "math_number"}
103
+ %field{:name => "NUM"}<
104
+ 5
105
+ """
96
106
  かつ ブロックからソースコードを生成する
97
107
 
98
108
  ならば テキストエディタのプログラムは以下を含むこと:
99
- """
100
- car1.on(:start) do
101
- servo("D3").position = 5
102
- end
103
-
104
- """
109
+ """
110
+ car1.on(:start) do
111
+ servo("D3").position = 5
112
+ end
113
+ """