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.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -0
- data/Guardfile +2 -0
- data/app/assets/javascripts/blocks/hardware.js.coffee.erb +1 -1
- data/app/assets/javascripts/fix_blockly.js.erb +0 -50
- data/app/assets/javascripts/generators/ruby.js.coffee.erb +18 -4
- data/app/assets/javascripts/models/source_code.js +1 -1
- data/app/assets/javascripts/msg/en_us.js +1 -0
- data/app/assets/javascripts/msg/ja.js +4 -0
- data/app/assets/javascripts/smalruby.js.coffee.erb +50 -6
- data/app/assets/javascripts/views/main_menu_view.js.coffee.erb +14 -4
- data/app/assets/javascripts/views/preference_modal_view.js.coffee.erb +71 -0
- data/app/assets/javascripts/views/signin_modal_view.js.coffee.erb +5 -4
- data/app/assets/stylesheets/application.css +1 -0
- data/app/assets/stylesheets/preference-modal.css.scss +22 -0
- data/app/assets/stylesheets/toolbox.css.scss.erb +36 -0
- data/app/controllers/application_controller.rb +20 -4
- data/app/controllers/editor_controller.rb +4 -0
- data/app/controllers/sessions_controller.rb +7 -4
- data/app/controllers/source_codes_controller.rb +2 -2
- data/app/controllers/users_controller.rb +22 -0
- data/app/helpers/application_helper.rb +4 -4
- data/app/helpers/sessions_helper.rb +0 -0
- data/app/helpers/users_helper.rb +10 -0
- data/app/models/concerns/ruby_to_block/block/hardware_init_hardware.rb +0 -6
- data/app/models/concerns/ruby_to_block/block/hardware_operation.rb +0 -0
- data/app/models/preference.rb +71 -0
- data/app/models/source_code.rb +4 -0
- data/app/models/user.rb +26 -0
- data/app/views/editor/_block_tab.html.haml +5 -6
- data/app/views/editor/_load_modal.html.haml +2 -2
- data/app/views/editor/_preference_modal.html.haml +16 -0
- data/app/views/editor/_signin_modal.html.haml +1 -1
- data/app/views/editor/_toolbox_default.html.haml +86 -79
- data/app/views/editor/{_toolbox_raspberrypi.html.haml → _toolbox_smalrubot.html.haml} +72 -105
- data/app/views/editor/_toolbox_smalrubot_s1.html.haml +1 -196
- data/app/views/editor/_toolbox_smalrubot_v3.html.haml +1 -196
- data/app/views/editor/index.html.haml +11 -4
- data/app/views/editor/toolbox.html.haml +1 -0
- data/app/views/layouts/application.html.erb +1 -1
- data/app/views/users/preferences.html.haml +34 -0
- data/config/application.rb +1 -1
- data/config/locales/en.yml +30 -0
- data/config/locales/ja.yml +30 -0
- data/config/routes.rb +4 -57
- data/db/migrate/20150513061200_create_users.rb +10 -0
- data/db/migrate/20150513061250_add_index_name_on_users.rb +9 -0
- data/db/schema.rb +10 -1
- data/lib/smalruby_editor.rb +22 -24
- data/lib/smalruby_editor/version.rb +1 -1
- data/smalruby-editor.gemspec +0 -0
- data/spec/acceptance/block_mode/blocks/hardware/button_pressed_or_released.feature +2 -0
- data/spec/acceptance/block_mode/blocks/hardware/init_hardware.feature +1 -0
- data/spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature +11 -1
- data/spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature +11 -1
- data/spec/acceptance/block_mode/blocks/hardware/motor_driver.feature +7 -1
- data/spec/acceptance/block_mode/blocks/hardware/motor_driver_speed.feature +2 -0
- data/spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature +9 -12
- data/spec/acceptance/block_mode/blocks/hardware/rgb_led_turn_off.feature +9 -12
- data/spec/acceptance/block_mode/blocks/hardware/sensor_value.feature +59 -60
- data/spec/acceptance/block_mode/blocks/hardware/servo_set_position.feature +76 -67
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_action.feature +9 -12
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_action_with_sec.feature +9 -11
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_dc_motor_power_ratio.feature +11 -12
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_led_turn_on_or_off.feature +9 -10
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action.feature +9 -12
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature +9 -11
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_dc_motor_power_ratio.feature +11 -12
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_led_turn_on_or_off.feature +9 -12
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_sensor_value.feature +11 -12
- data/spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car.feature +7 -1
- data/spec/acceptance/block_mode/blocks/hardware/two_wheel_drive_car_speed.feature +2 -0
- data/spec/acceptance/standalone/preference.feature +92 -0
- data/{demos → spec/fixtures/files}/hardware_led.rb.xml +0 -0
- data/spec/javascripts/models/source_code_spec.coffee +0 -0
- data/spec/models/concerns/ruby_to_block/block/hardware__smalrubot_spec.rb +1 -1
- data/spec/models/concerns/ruby_to_block/block/hardware_spec.rb +4 -4
- data/spec/models/concerns/ruby_to_block_spec.rb +1 -1
- data/spec/models/source_code_spec.rb +1 -11
- data/spec/spec_helper.rb +8 -0
- data/spec/steps/base_steps.rb +68 -16
- data/spec/steps/standalone_steps.rb +21 -0
- data/spec/steps/text_editor_steps.rb +8 -8
- data/spec/support/feature_helper.rb +13 -0
- data/vendor/assets/javascripts/blockly/blockly_compressed.js +500 -454
- data/vendor/assets/javascripts/blockly/blocks_compressed.js +29 -28
- data/vendor/assets/javascripts/blockly/msg/js/ja.js +2 -1
- metadata +33 -35
- data/app/assets/stylesheets/toolbox_default.css.scss.erb +0 -34
- data/app/assets/stylesheets/toolbox_raspberrypi.css.scss.erb +0 -32
- data/app/assets/stylesheets/toolbox_smalrubot_s1.css.scss.erb +0 -32
- data/app/assets/stylesheets/toolbox_smalrubot_v3.css.scss.erb +0 -32
- data/demos/adjust_2wd_car.rb.xml +0 -179
- data/lib/smalruby_editor/config.rb +0 -24
- data/spec/controllers/editor_controller_spec.rb +0 -12
- data/spec/controllers/sessions_controller_spec.rb +0 -74
- 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
|
@@ -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
|
-
|
11
|
-
|
12
|
-
|
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
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
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
|
-
|
38
|
+
"""
|
39
|
+
require "smalruby"
|
34
40
|
|
35
|
-
|
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
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
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
|
-
|
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
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
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
|
-
|
93
|
-
|
94
|
-
|
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
|
-
|
15
|
-
|
16
|
-
|
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
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
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
|
-
|
53
|
-
|
54
|
-
"""
|
63
|
+
"""
|
64
|
+
car1.servo("D3").position = 5
|
65
|
+
"""
|
55
66
|
|
56
67
|
シナリオ: キャラクターと値を設定したブロックを配置する
|
57
68
|
もし 次のブロックを配置する:
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
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
|
-
|
76
|
-
|
77
|
-
"""
|
85
|
+
"""
|
86
|
+
car1.servo("D3").position = 5
|
87
|
+
"""
|
78
88
|
|
79
89
|
シナリオ: キャラクターとイベントと値を設定したブロックを配置する
|
80
90
|
もし 次のブロックを配置する:
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
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
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
"""
|
109
|
+
"""
|
110
|
+
car1.on(:start) do
|
111
|
+
servo("D3").position = 5
|
112
|
+
end
|
113
|
+
"""
|