smalruby-editor 0.1.19 → 0.1.20

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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/application.js +1 -1
  3. data/app/assets/javascripts/blocks/control.js.coffee.erb +14 -4
  4. data/app/assets/javascripts/blocks/events.js.coffee.erb +1 -1
  5. data/app/assets/javascripts/blocks/hardware.js.coffee.erb +24 -18
  6. data/app/assets/javascripts/blocks/looks.js.coffee.erb +1 -1
  7. data/app/assets/javascripts/blocks/motion.js.coffee.erb +1 -1
  8. data/app/assets/javascripts/blocks/operators.js.coffee.erb +1 -1
  9. data/app/assets/javascripts/blocks/sensing.js.coffee.erb +1 -1
  10. data/app/assets/javascripts/blocks/sound.js.coffee.erb +1 -1
  11. data/app/assets/javascripts/fix_blockly.js +12 -0
  12. data/app/assets/javascripts/generators/ruby.js.coffee.erb +1 -1
  13. data/app/assets/javascripts/smalruby.js.coffee +12 -0
  14. data/app/assets/javascripts/views/main_menu_view.js.coffee +5 -1
  15. data/app/assets/javascripts/views/reset_modal_view.js.coffee +11 -0
  16. data/app/assets/stylesheets/toolbox.css.scss.erb +29 -19
  17. data/app/controllers/source_codes_controller.rb +26 -20
  18. data/app/helpers/application_helper.rb +3 -0
  19. data/app/models/concerns/ruby_to_block/block/motion_turn_xy.rb +2 -1
  20. data/app/views/editor/_block_tab.html.haml +0 -1
  21. data/app/views/editor/_character_modal.html.haml +1 -1
  22. data/app/views/editor/_load_modal.html.haml +1 -1
  23. data/app/views/editor/_reset_modal.html.haml +15 -0
  24. data/app/views/editor/_signin_modal.html.haml +1 -1
  25. data/app/views/editor/_toolbox.html.haml +264 -257
  26. data/app/views/editor/index.html.haml +4 -2
  27. data/lib/smalruby_editor/version.rb +3 -3
  28. data/public/assets/{application-acf953339e4b5c31b5d6060375b13a44.js → application-c8991557a0789ac1bc9220f409e7f1c1.js} +175 -110
  29. data/public/assets/{application-acf953339e4b5c31b5d6060375b13a44.js.gz → application-c8991557a0789ac1bc9220f409e7f1c1.js.gz} +0 -0
  30. data/public/assets/{application-e9d089df8f23954c49647ab7af8481dc.css → application-d4fe6c0f970efe8eab9267fd08718d96.css} +182 -104
  31. data/public/assets/application-d4fe6c0f970efe8eab9267fd08718d96.css.gz +0 -0
  32. data/public/assets/manifest-332a5a1668194028b55103e0ea45c054.json +1 -1
  33. data/smalruby-editor.gemspec +1 -1
  34. data/spec/acceptance/base.feature +59 -0
  35. data/spec/acceptance/block_mode/blocks/control/await.feature +49 -2
  36. data/spec/acceptance/block_mode/blocks/control/await_until.feature +67 -6
  37. data/spec/acceptance/block_mode/blocks/control/break.feature +0 -3
  38. data/spec/acceptance/block_mode/blocks/control/next.feature +0 -3
  39. data/spec/acceptance/block_mode/blocks/control/redo.feature +0 -3
  40. data/spec/acceptance/standalone/signin.feature +12 -10
  41. data/spec/steps/base_steps.rb +13 -0
  42. data/spec/steps/global_variable.rb +11 -0
  43. metadata +10 -8
  44. data/public/assets/application-e9d089df8f23954c49647ab7af8481dc.css.gz +0 -0
@@ -11,22 +11,47 @@
11
11
  """
12
12
  かつ ブロックからソースコードを生成する
13
13
 
14
+ ならば テキストエディタのプログラムは "" であること
15
+
16
+ シナリオ: キャラクターとブロックを配置する
17
+ 前提 "ブロック" タブを表示する
18
+ かつ 次のキャラクターを追加する:
19
+ | name | costumes | x | y | angle |
20
+ | car1 | car1.png | 0 | 0 | 0 |
21
+
22
+ もし 次のブロックを配置する:
23
+ """
24
+ %block{:type => "character_new", :x => "21", :y => "15"}
25
+ %field{:name => "NAME"}<
26
+ car1
27
+ %statement{:name => "DO"}
28
+ %block{:type => "control_await_until", :x => "0", :y => "0"}
29
+ """
30
+ かつ ブロックからソースコードを生成する
31
+
14
32
  ならば テキストエディタのプログラムは以下であること:
15
33
  """
16
34
  require "smalruby"
17
35
 
18
- await until true
36
+ car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
19
37
 
20
38
  """
21
39
 
22
- シナリオ: 値を設定したブロックを配置する
40
+ シナリオ: キャラクターとイベントとブロックを配置する
23
41
  前提 "ブロック" タブを表示する
42
+ かつ 次のキャラクターを追加する:
43
+ | name | costumes | x | y | angle |
44
+ | car1 | car1.png | 0 | 0 | 0 |
24
45
 
25
46
  もし 次のブロックを配置する:
26
47
  """
27
- %block{:type => "control_await_until", :x => "0", :y => "0"}
28
- %value{:name => "COND"}
29
- %block{:type => "operators_false"}
48
+ %block{:type => "character_new", :x => "21", :y => "15"}
49
+ %field{:name => "NAME"}<
50
+ car1
51
+ %statement{:name => "DO"}
52
+ %block{:type => "events_on_start"}
53
+ %statement{:name => "DO"}
54
+ %block{:type => "control_await_until", :x => "0", :y => "0"}
30
55
  """
31
56
  かつ ブロックからソースコードを生成する
32
57
 
@@ -34,6 +59,42 @@
34
59
  """
35
60
  require "smalruby"
36
61
 
37
- await until false
62
+ car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
63
+
64
+ car1.on(:start) do
65
+ await until true
66
+ end
67
+
68
+ """
69
+
70
+ シナリオ: キャラクターとイベントと値を設定したブロックを配置する
71
+ 前提 "ブロック" タブを表示する
72
+ かつ 次のキャラクターを追加する:
73
+ | name | costumes | x | y | angle |
74
+ | car1 | car1.png | 0 | 0 | 0 |
75
+
76
+ もし 次のブロックを配置する:
77
+ """
78
+ %block{:type => "character_new", :x => "21", :y => "15"}
79
+ %field{:name => "NAME"}<
80
+ car1
81
+ %statement{:name => "DO"}
82
+ %block{:type => "events_on_start"}
83
+ %statement{:name => "DO"}
84
+ %block{:type => "control_await_until", :x => "0", :y => "0"}
85
+ %value{:name => "COND"}
86
+ %block{:type => "operators_false"}
87
+ """
88
+ かつ ブロックからソースコードを生成する
89
+
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
+ await until false
98
+ end
38
99
 
39
100
  """
@@ -13,8 +13,5 @@
13
13
 
14
14
  ならば テキストエディタのプログラムは以下であること:
15
15
  """
16
- require "smalruby"
17
-
18
- break
19
16
 
20
17
  """
@@ -13,8 +13,5 @@
13
13
 
14
14
  ならば テキストエディタのプログラムは以下であること:
15
15
  """
16
- require "smalruby"
17
-
18
- next
19
16
 
20
17
  """
@@ -13,8 +13,5 @@
13
13
 
14
14
  ならば テキストエディタのプログラムは以下であること:
15
15
  """
16
- require "smalruby"
17
-
18
- redo
19
16
 
20
17
  """
@@ -16,6 +16,7 @@
16
16
  ならば "サブメニュー" に "ログアウト" を含まないこと
17
17
 
18
18
  もし "ログインボタン" をクリックする
19
+ かつ JavaScriptによるアニメーションが終わるまで待つ
19
20
 
20
21
  ならば "ログインダイアログ" が表示されていること
21
22
 
@@ -23,8 +24,7 @@
23
24
  かつ "ログインダイアログのログインボタン" をクリックする
24
25
  かつ JavaScriptによるリクエストが終わるまで待つ
25
26
 
26
- ならば "メッセージ" に "ログインしました" を含むこと
27
- かつ "メニュー" に "1102" を含むこと
27
+ ならば "メニュー" に "1102" を含むこと
28
28
 
29
29
  もし "サブメニューボタン" をクリックする
30
30
 
@@ -33,8 +33,7 @@
33
33
  もし サブメニューの "ログアウトボタン" をクリックする
34
34
  かつ JavaScriptによるリクエストが終わるまで待つ
35
35
 
36
- ならば "メッセージ" に "ログアウトしました" を含むこと
37
- かつ "メニュー" に "ログイン" を含むこと
36
+ ならば "メニュー" に "ログイン" を含むこと
38
37
  かつ "メニュー" に "1102" を含まないこと
39
38
 
40
39
  もし "サブメニューボタン" をクリックする
@@ -44,27 +43,29 @@
44
43
  シナリオ: 名前を指定せずにログインボタンを押す
45
44
  前提 "トップページ" にアクセスする
46
45
  かつ "ログインボタン" をクリックする
46
+ かつ JavaScriptによるアニメーションが終わるまで待つ
47
47
 
48
48
  もし "ログインダイアログの名前" に "" を指定する
49
49
  かつ "ログインダイアログのログインボタン" をクリックする
50
50
  かつ JavaScriptによるリクエストが終わるまで待つ
51
51
 
52
- ならば "メッセージ" に "ログインに失敗しました" を含むこと
53
- かつ "メニュー" に "ログイン" を含むこと
52
+ ならば "メニュー" に "ログイン" を含むこと
53
+ かつ "メッセージ" に "ログインに失敗しました" を含むこと
54
54
 
55
55
  シナリオ: ログインをやめる
56
56
  前提 "トップページ" にアクセスする
57
57
  かつ "ログインボタン" をクリックする
58
+ かつ JavaScriptによるアニメーションが終わるまで待つ
58
59
  かつ "ログインダイアログの名前" に "1102" を指定する
59
60
 
60
61
  もし "ログインダイアログのやめるボタン" をクリックする
61
62
 
62
- ならば "メッセージ" に "ログインしました" を含まないこと
63
- かつ "メニュー" に "ログイン" を含むこと
63
+ ならば "メニュー" に "ログイン" を含むこと
64
64
 
65
65
  シナリオ: ログイン後にプログラムを実行する
66
66
  前提 "トップページ" にアクセスする
67
67
  かつ "ログインボタン" をクリックする
68
+ かつ JavaScriptによるアニメーションが終わるまで待つ
68
69
  かつ "ログインダイアログの名前" に "1102" を指定する
69
70
  かつ "ログインダイアログのログインボタン" をクリックする
70
71
  かつ JavaScriptによるリクエストが終わるまで待つ
@@ -78,14 +79,15 @@
78
79
  ならば "~/1102" ディレクトリに "01.rb" が存在すること
79
80
  かつ "~/1102" ディレクトリの "01.rb" の内容が "puts 'Hello, World!'" であること
80
81
 
81
- シナリオ: ログイン後、リセットする
82
+ シナリオ: ログイン後、再度トップページを表示する
82
83
  前提 "トップページ" にアクセスする
83
84
  かつ "ログインボタン" をクリックする
85
+ かつ JavaScriptによるアニメーションが終わるまで待つ
84
86
  かつ "ログインダイアログの名前" に "1102" を指定する
85
87
  かつ "ログインダイアログのログインボタン" をクリックする
86
88
  かつ JavaScriptによるリクエストが終わるまで待つ
87
89
 
88
- もし サブメニューの "リセットボタン" をクリックする
90
+ もし "トップページ" にアクセスする
89
91
 
90
92
  ならば "メニュー" に "ログイン" を含まないこと
91
93
  かつ "メニュー" に "1102" を含むこと
@@ -129,6 +129,19 @@ step 'JavaScriptによるリクエストが終わるまで待つ' do
129
129
  end
130
130
  end
131
131
 
132
+ step 'JavaScriptによるアニメーションが終わるまで待つ' do
133
+ start_time = Time.now
134
+ until page.evaluate_script('jQuery(":animated").length == 0') ||
135
+ (start_time + 5.seconds) < Time.now
136
+ sleep 1
137
+ end
138
+ sleep 1
139
+ end
140
+
141
+ step 'JavaScriptによる処理が終わるまで待つ' do
142
+ step 'JavaScriptによるアニメーションが終わるまで待つ'
143
+ end
144
+
132
145
  step ':name は :value であること' do |name, value|
133
146
  expect(page.evaluate_script(<<-JS)).to eq(value)
134
147
  $('#{NAME_INFO[name][:selector]}').val()
@@ -70,6 +70,9 @@
70
70
  'ログインダイアログ' => {
71
71
  selector: '#signin-modal',
72
72
  },
73
+ 'リセット確認ダイアログ' => {
74
+ id: 'reset-modal',
75
+ },
73
76
 
74
77
  # ログインダイアログ
75
78
  'ログインダイアログの名前' => {
@@ -81,6 +84,14 @@
81
84
  'ログインダイアログのやめるボタン' => {
82
85
  id: 'signin-modal-cancel-button',
83
86
  },
87
+
88
+ # リセット確認ダイアログ
89
+ 'リセット確認ダイアログのリセットボタン' => {
90
+ id: 'reset-modal-ok-button',
91
+ },
92
+ 'リセット確認ダイアログのやめるボタン' => {
93
+ id: 'reset-modal-cancel-button',
94
+ },
84
95
  }
85
96
 
86
97
  ::NAME_INFO.values.each do |value|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smalruby-editor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.19
4
+ version: 0.1.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouji Takao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-13 00:00:00.000000000 Z
11
+ date: 2014-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - ~>
186
186
  - !ruby/object:Gem::Version
187
- version: 0.0.27
187
+ version: 0.0.28
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - ~>
193
193
  - !ruby/object:Gem::Version
194
- version: 0.0.27
194
+ version: 0.0.28
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: therubyracer
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -290,6 +290,7 @@ files:
290
290
  - app/assets/javascripts/views/character_selector_view.js.coffee
291
291
  - app/assets/javascripts/views/load_modal_view.js.coffee
292
292
  - app/assets/javascripts/views/main_menu_view.js.coffee
293
+ - app/assets/javascripts/views/reset_modal_view.js.coffee
293
294
  - app/assets/javascripts/views/signin_modal_view.js.coffee
294
295
  - app/assets/stylesheets/application.css
295
296
  - app/assets/stylesheets/editor.css.scss
@@ -380,6 +381,7 @@ files:
380
381
  - app/views/editor/_block_tab.html.haml
381
382
  - app/views/editor/_character_modal.html.haml
382
383
  - app/views/editor/_load_modal.html.haml
384
+ - app/views/editor/_reset_modal.html.haml
383
385
  - app/views/editor/_signin_modal.html.haml
384
386
  - app/views/editor/_toolbox.html.haml
385
387
  - app/views/editor/demo.html.erb
@@ -612,10 +614,10 @@ files:
612
614
  - vendor/assets/javascripts/blockly/msg/js/ja.js
613
615
  - vendor/assets/javascripts/jquery.blockUI.js
614
616
  - vendor/assets/stylesheets/.keep
615
- - public/assets/application-acf953339e4b5c31b5d6060375b13a44.js
616
- - public/assets/application-acf953339e4b5c31b5d6060375b13a44.js.gz
617
- - public/assets/application-e9d089df8f23954c49647ab7af8481dc.css
618
- - public/assets/application-e9d089df8f23954c49647ab7af8481dc.css.gz
617
+ - public/assets/application-c8991557a0789ac1bc9220f409e7f1c1.js
618
+ - public/assets/application-c8991557a0789ac1bc9220f409e7f1c1.js.gz
619
+ - public/assets/application-d4fe6c0f970efe8eab9267fd08718d96.css
620
+ - public/assets/application-d4fe6c0f970efe8eab9267fd08718d96.css.gz
619
621
  - public/assets/favicon-a37c90b368fd8ed436cb8f9e9396465c.ico
620
622
  - public/assets/jquery-ui/animated-overlay-c48c87b7a95316f4698484e3b85ee4aa.gif
621
623
  - public/assets/jquery-ui/ui-bg_flat_0_aaaaaa_40x100-58b63faadd031ca3db096dfdffd90224.png