smalruby-editor 0.2.6-x86-mingw32 → 0.2.7-x86-mingw32

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

Potentially problematic release.


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

Files changed (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
+ """