smalruby-editor 0.3.0-x86-mingw32 → 0.3.1-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.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b3d49b266764299b645fbd09f0379907ed22f6a
4
- data.tar.gz: 30a4d87cb3c4b3a43f3d85db04c6b38b0583ede9
3
+ metadata.gz: 44c1af21464e2386c904952a79eb44e577d39159
4
+ data.tar.gz: 9e3ce5840d75650e4b0fa2563846c33b7419cb6e
5
5
  SHA512:
6
- metadata.gz: c5f5cd552ad4390276e127144706e60710794f82bff77a5a84645f3a03bb3e047f6c1d5964a14978fc23a40bb4bcb70a3d89e56d7a7ed9eb33460edd76a7e401
7
- data.tar.gz: 82cf267ea245c7f6543c64ce4f87b0c322b3f928e975192cb09c9608f955ee1034e0765fe3221da200d9b0db573b2fdd0340c3b9757d65dde0fe3abf5ac98af4
6
+ metadata.gz: a21ec1768b17b6b4a14842be4af5de28c900ec4103328bc5e5deb80b427275ff874265be94fc84b457cf1212a52f8d7503a96419c7d9a8dca7b98f3c2ce21bfe
7
+ data.tar.gz: 4d9ca92f49b939704d4310b1105a44a0aa46edf00258f4a67d913857dc5753ee5c6bb506d8daeb1ae8ae3e9fbd6ba10b1b11da16d60eeef1e87988ff6e892064
@@ -121,6 +121,8 @@ window.Smalruby =
121
121
  session.setTabSize(2)
122
122
  session.setUseSoftTabs(true)
123
123
 
124
+ @applyPreferences()
125
+
124
126
  @addCharacterFromBeginning()
125
127
 
126
128
  loadXml: (data, workspace = Blockly.mainWorkspace) ->
@@ -188,10 +190,10 @@ window.Smalruby =
188
190
 
189
191
  addCharacterFromBeginning: ->
190
192
  if !@isEnabled('disabled_add_character_from_beginning')
191
- constume = 'cat1.png'
193
+ costume = 'cat1.png'
192
194
  c = new Smalruby.Character
193
- name: @Collections.CharacterSet.uniqueName(constume)
194
- costumes: [constume]
195
+ name: @Collections.CharacterSet.uniqueName(costume)
196
+ costumes: [costume]
195
197
  x: 200
196
198
  y: 200
197
199
  @Collections.CharacterSet.add(c)
@@ -199,13 +201,16 @@ window.Smalruby =
199
201
  @Views.CharacterSelectorView.addBlock_(c)
200
202
  window.changed = false
201
203
 
202
- setPreferences: (preferences) ->
203
- @Preferences = preferences
204
+ applyPreferences: ->
204
205
  window.textEditor.setReadOnly(@isEnabled('enabled_readonly_ruby_mode'))
205
206
  if @isEnabled('disabled_new_character')
206
207
  $('#add-character-item').hide()
207
208
  else
208
209
  $('#add-character-item').show()
210
+
211
+ setPreferences: (preferences) ->
212
+ @Preferences = preferences
213
+ @applyPreferences()
209
214
  @changedAfterTranslating = true
210
215
  @reloadToolbox()
211
216
 
@@ -227,7 +232,7 @@ window.Smalruby =
227
232
  error: dfr.reject
228
233
  dfr.promise()
229
234
  .then (data) =>
230
- Blockly.updateToolbox(data)
235
+ Blockly.getMainWorkspace().updateToolbox(data)
231
236
  @hideEmptyCategory()
232
237
  .then(unblock, unblock)
233
238
  .fail =>
@@ -24,8 +24,9 @@ class ApplicationController < ActionController::Base
24
24
 
25
25
  # ロケールの設定
26
26
  def set_locale
27
- I18n.locale = params[:locale] ||
27
+ I18n.locale = params[:locale] || session[:locale] ||
28
28
  extract_locale_from_accept_language_header || I18n.default_locale
29
+ session[:locale] = I18n.locale
29
30
  Rails.application.routes.default_url_options[:locale] = I18n.locale
30
31
  end
31
32
 
@@ -99,7 +99,11 @@ class SourceCodesController < ApplicationController
99
99
  s = "~/#{source_code.filename}"
100
100
  end
101
101
  path = Pathname(s).expand_path
102
- render json: source_code.run(path)
102
+ env = {}
103
+ if current_preferences["hardware_port"].present?
104
+ env["SMALRUBOT_DEVICE"] = current_preferences["hardware_port"]
105
+ end
106
+ render json: source_code.run(path, env)
103
107
  end
104
108
 
105
109
  def to_blocks
@@ -1,10 +1,20 @@
1
1
  module UsersHelper
2
2
  def preferences_field(form, name)
3
+ html = ""
3
4
  case name
4
5
  when Preference::BOOLEAN_FIELD_REGEXP
5
- form.check_box(name)
6
+ html += content_tag(:div, class: "controls") do
7
+ form.label(name, class: "checkbox") do
8
+ form.check_box(name) +
9
+ t(name, scope: "helpers.label.user[preferences]")
10
+ end
11
+ end
6
12
  else
7
- form.text_field(name)
13
+ html += form.label(name, class: "control-label")
14
+ html += content_tag(:div, class: "controls") do
15
+ form.text_field(name)
16
+ end
8
17
  end
18
+ raw(html)
9
19
  end
10
20
  end
@@ -24,6 +24,7 @@ class Preference < Settingslogic
24
24
  disabled_add_character_from_beginning
25
25
  disabled_new_character
26
26
  enabled_readonly_ruby_mode
27
+ hardware_port
27
28
  )
28
29
  end
29
30
 
@@ -41,7 +42,12 @@ class Preference < Settingslogic
41
42
  def self.defaults
42
43
  (toolbox_preference_names +
43
44
  general_preference_names).map { |n|
44
- [n, false]
45
+ case n
46
+ when BOOLEAN_FIELD_REGEXP
47
+ [n, false]
48
+ else
49
+ [n, ""]
50
+ end
45
51
  }.to_h.merge("toolbox_name" => "default")
46
52
  end
47
53
 
@@ -53,8 +53,8 @@ class SourceCode < ActiveRecord::Base
53
53
  end
54
54
 
55
55
  # プログラムを実行する
56
- def run(path)
57
- _, stderr_str, status = *open3_capture3_run_program(path)
56
+ def run(path, env = {})
57
+ _, stderr_str, status = *open3_capture3_run_program(path, env)
58
58
  return [] if status.success?
59
59
 
60
60
  parse_ruby_error_messages(stderr_str)
@@ -146,9 +146,9 @@ class SourceCode < ActiveRecord::Base
146
146
  end
147
147
  end
148
148
 
149
- def open3_capture3_run_program(path)
149
+ def open3_capture3_run_program(path, env)
150
150
  Bundler.with_clean_env do
151
- Open3.capture3("#{ruby_cmd} #{path}")
151
+ Open3.capture3(env, "#{ruby_cmd} #{path}")
152
152
  end
153
153
  end
154
154
 
@@ -15,10 +15,7 @@
15
15
  - Preference.make_toolbox_name_to_preference_names_hash.each do |toolbox_name, preference_names|
16
16
  - preference_names.each do |n|
17
17
  .control-group{class: "toolbox_preferences #{toolbox_name}"}
18
- .controls
19
- = f2.label(n, class: "checkbox") do
20
- = preferences_field(f2, n)
21
- = t(n, scope: "helpers.label.user[preferences]")
18
+ = preferences_field(f2, n)
22
19
 
23
20
  - if Preference.general_preference_names.length > 0
24
21
  .page-header
@@ -28,7 +25,4 @@
28
25
 
29
26
  - Preference.general_preference_names.each do |n|
30
27
  .control-group
31
- .controls
32
- = f2.label(n, class: "checkbox") do
33
- = preferences_field(f2, n)
34
- = t(n, scope: "helpers.label.user[preferences]")
28
+ = preferences_field(f2, n)
@@ -32,6 +32,7 @@ ja:
32
32
  disabled_new_character: "キャラクターの追加を禁止する"
33
33
  enabled_readonly_ruby_mode: "プログラムを直接入力できないようにする"
34
34
  enabled_must_signin: "ログインしないと使えないようにする"
35
+ hardware_port: "ハードウェアの接続先"
35
36
 
36
37
  editor:
37
38
  index:
@@ -134,10 +134,9 @@ standalone:
134
134
  Preference.make_toolbox_name_to_preference_names_hash
135
135
  Preference.toolbox_names.each do |toolbox_name|
136
136
  f.puts("#toolbox_name: #{toolbox_name}")
137
- toolbox_name__preference_names.delete(toolbox_name).try(:each) do
138
- |preference_name|
139
- f.puts("##{preference_name}: true")
140
- end
137
+ preference_names =
138
+ toolbox_name__preference_names.delete(toolbox_name)
139
+ puts_preference_names(f, preference_names)
141
140
  f.puts
142
141
  end
143
142
  preference_names_list =
@@ -145,13 +144,22 @@ standalone:
145
144
  [Preference.general_preference_names,
146
145
  Preference.admin_preference_names]
147
146
  preference_names_list.each do |preference_names|
148
- preference_names.each do |preference_name|
149
- f.puts("##{preference_name}: true")
150
- end
147
+ puts_preference_names(f, preference_names)
151
148
  f.puts
152
149
  end
153
150
  end
154
151
  end
155
152
  end
153
+
154
+ def puts_preference_names(io, preference_names)
155
+ preference_names.try(:each) do |preference_name|
156
+ case preference_name
157
+ when Preference::BOOLEAN_FIELD_REGEXP
158
+ io.puts("##{preference_name}: true")
159
+ else
160
+ io.puts(%{##{preference_name}: ""})
161
+ end
162
+ end
163
+ end
156
164
  end
157
165
  end
@@ -1,3 +1,3 @@
1
1
  module SmalrubyEditor
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
@@ -69,7 +69,7 @@ Gem::Specification.new do |spec|
69
69
  ['haml-rails'],
70
70
  ['nokogiri'],
71
71
  ['settingslogic'],
72
- ['smalruby', '~> 0.1.6'],
72
+ ['smalruby', '~> 0.1.8'],
73
73
  ]
74
74
  runtime_dependencies << ['therubyracer'] unless is_windows
75
75
  runtime_dependencies.each do |args|
@@ -72,10 +72,12 @@ Feature: Preference - 設定
72
72
  And "user[preferences][disabled_add_character_from_beginning]" がチェックされていること
73
73
  And "user[preferences][disabled_new_character]" がチェックされていないこと
74
74
  And "user[preferences][enabled_readonly_ruby_mode]" がチェックされていないこと
75
+ And "user[preferences][hardware_port]" フィールドの値が "" であること
75
76
 
76
77
  When "user[preferences][disabled_add_character_from_beginning]" のチェックを外す
77
78
  And "user[preferences][disabled_new_character]" をチェックする
78
79
  And "user[preferences][enabled_readonly_ruby_mode]" をチェックする
80
+ And "user[preferences][hardware_port]" フィールドに "COM3" を指定する
79
81
  And "preference-modal-ok-button" をクリックする
80
82
  And JavaScriptによるリクエストが終わるまで待つ
81
83
 
@@ -87,3 +89,32 @@ Feature: Preference - 設定
87
89
  And "user[preferences][disabled_add_character_from_beginning]" がチェックされていないこと
88
90
  And "user[preferences][disabled_new_character]" がチェックされていること
89
91
  And "user[preferences][enabled_readonly_ruby_mode]" がチェックされていること
92
+ And "user[preferences][hardware_port]" フィールドの値が "COM3" であること
93
+
94
+ Scenario: 「キャラクターの追加を禁止する」を設定後、ログアウトせずにリロードしてもキャラクターの追加ボタンを表示しないこと
95
+ When ログインする
96
+ And サブメニューの "#preference-button" をクリックする
97
+ And "user[preferences][disabled_new_character]" をチェックする
98
+ And "preference-modal-ok-button" をクリックする
99
+ And JavaScriptによるリクエストが終わるまで待つ
100
+
101
+ Then "#preference-modal" が表示されていないこと
102
+ And "#add-character-item" が表示されていないこと
103
+
104
+ When ページをリロードする
105
+
106
+ And "#add-character-item" が表示されていないこと
107
+
108
+ Scenario: 「プログラムを直接入力できないようにする」を設定後、ログアウトせずにリロードしてもRubyモードでプログラムを直接入力できないこと
109
+ When ログインする
110
+ And サブメニューの "#preference-button" をクリックする
111
+ And "user[preferences][enabled_readonly_ruby_mode]" をチェックする
112
+ And "preference-modal-ok-button" をクリックする
113
+ And JavaScriptによるリクエストが終わるまで待つ
114
+
115
+ Then "#preference-modal" が表示されていないこと
116
+ And テキストエディタが編集できない状態であること
117
+
118
+ When ページをリロードする
119
+
120
+ Then テキストエディタが編集できない状態であること
@@ -75,3 +75,10 @@ step 'テキストエディタのプログラムは :program であること' do
75
75
  .getValue()
76
76
  JS
77
77
  end
78
+
79
+ step 'テキストエディタが編集できない状態であること' do
80
+ expect(page.evaluate_script(<<-JS)).to be_true
81
+ ace.edit('#{name_to(text_editor, :id)}')
82
+ .getReadOnly()
83
+ JS
84
+ end
@@ -0,0 +1,138 @@
1
+ # encoding: utf-8
2
+
3
+ step ':name が表示されていること' do |name|
4
+ expect(page).to have_selector(name_to(name))
5
+ end
6
+
7
+ step ':name が表示されていないこと' do |name|
8
+ expect(page).not_to have_selector(name_to(name))
9
+ end
10
+
11
+ step ':parent に :name が表示されていること' do |parent, name|
12
+ within(name_to(parent)) do
13
+ expect(page.all(name_to(name), visible: true)).not_to be_empty
14
+ end
15
+ end
16
+
17
+ step ':parent に :name が表示されていないこと' do |parent, name|
18
+ within(name_to(parent)) do
19
+ expect(page.all(name_to(name), visible: true)).to be_empty
20
+ end
21
+ end
22
+
23
+ step 'コンボボックス :name の :option_label を選択していること' do
24
+ |name, option_label|
25
+ expect(find(%{select[name="#{name}"] option[selected]}).text)
26
+ .to eq(option_label)
27
+ end
28
+
29
+ step 'コンボボックス :name の :option_label を選択していないこと' do
30
+ |name, option_label|
31
+ expect(find(%{select[name="#{name}"] option[selected]}).text)
32
+ .not_to eq(option_label)
33
+ end
34
+
35
+ step ':name がチェックされていること' do |name|
36
+ expect(find(%{input[type="checkbox"][name="#{name}"]})).to be_checked
37
+ end
38
+
39
+ step ':name がチェックされていないこと' do |name|
40
+ expect(find(%{input[type="checkbox"][name="#{name}"]})).not_to be_checked
41
+ end
42
+
43
+ step ':name にフォーカスがあること' do |name|
44
+ # HACK: 現在のPhantomJSでは$(':focus')は動作しない
45
+ # https://github.com/netzpirat/guard-jasmine/issues/48
46
+ expect(page.evaluate_script(<<-JS)).to be_true
47
+ $('#{name_to(name)}').get(0) == document.activeElement
48
+ JS
49
+ end
50
+
51
+ step ':name は :value であること' do |name, value|
52
+ expect(page.evaluate_script(<<-JS)).to eq(value)
53
+ $('#{name_to(name)}').val()
54
+ JS
55
+ end
56
+
57
+ step ':name フィールドの値が :value であること' do |name, value|
58
+ expect(page).to have_field(name, with: value)
59
+ end
60
+
61
+ step ':name に :message を含むこと' do |name, message|
62
+ expect(page.find(name_to(name))).to have_content(message)
63
+ end
64
+
65
+ step ':name に :message を含まないこと' do |name, message|
66
+ expect(page.find(name_to(name))).not_to have_content(message)
67
+ end
68
+
69
+ step ':filename をダウンロードすること' do |filename|
70
+ step 'ダウンロードが完了するまで待つ'
71
+ if poltergeist?
72
+ expect(page.response_headers['Content-Disposition'])
73
+ .to match(/\Aattachment; filename="#{filename}"\z/)
74
+ expect(page.response_headers['Content-Type'])
75
+ .to eq('text/plain; charset=utf-8')
76
+ elsif selenium?
77
+ expect(downloads_dir.join(filename)).to be_exist
78
+ end
79
+ end
80
+
81
+ step 'ダウンロードしないこと' do
82
+ if poltergeist?
83
+ expect(page.response_headers['Content-Disposition']).to be_nil
84
+ elsif selenium?
85
+ expect(downloads_dir).not_to be_exist
86
+ end
87
+ end
88
+
89
+ step '確認メッセージ :message を表示すること' do |message|
90
+ message.gsub!('\n', "\n")
91
+ if poltergeist?
92
+ actual = page.evaluate_script('window.confirmMsg')
93
+ page.execute_script('window.confirmMsg = null')
94
+ expect(actual).to eq(message)
95
+ elsif selenium?
96
+ expect(page.driver.browser.switch_to.alert.text).to eq(message)
97
+ page.driver.browser.switch_to.alert.dismiss
98
+ end
99
+ end
100
+
101
+ step '確認メッセージを表示しないこと' do
102
+ if poltergeist?
103
+ actual = page.evaluate_script('window.confirmMsg')
104
+ page.execute_script('window.confirmMsg = null')
105
+ expect(actual).to be_nil
106
+ elsif selenium?
107
+ expect {
108
+ page.driver.browser.switch_to.alert
109
+ }.to raise_exception(Selenium::WebDriver::Error::NoAlertPresentError)
110
+ end
111
+ end
112
+
113
+ step 'ホームディレクトリに :filename が存在すること' do |filename|
114
+ path = Pathname("~/#{filename}").expand_path
115
+ expect(path).to be_exist
116
+ end
117
+
118
+ step 'ホームディレクトリの :filename の内容が :program であること' do |filename, program|
119
+ path = Pathname("~/#{filename}").expand_path
120
+ expect(path.read).to eq(program)
121
+ end
122
+
123
+ step 'ホームディレクトリの :filename が次の内容であること:' do |filename, program|
124
+ path = Pathname("~/#{filename}").expand_path
125
+ expect(path.read).to eq(program)
126
+ end
127
+
128
+ step ':directory ディレクトリに :filename が存在すること' do
129
+ |directory, filename|
130
+ path = Pathname("#{directory}/#{filename}").expand_path
131
+ expect(path).to be_exist
132
+ end
133
+
134
+ step ':directory ディレクトリの :filename の内容が :program であること' do
135
+ |directory, filename, program|
136
+ path = Pathname("#{directory}/#{filename}").expand_path
137
+ expect(path.read).to eq(program)
138
+ end
@@ -26,39 +26,11 @@ step ':name 画面を表示する' do |name|
26
26
  send ':name にアクセスする', name
27
27
  end
28
28
 
29
- step ':name が表示されていること' do |name|
30
- expect(page).to have_selector(name_to(name))
31
- end
32
-
33
- step ':name が表示されていないこと' do |name|
34
- expect(page).not_to have_selector(name_to(name))
35
- end
36
-
37
- step ':parent に :name が表示されていること' do |parent, name|
38
- within(name_to(parent)) do
39
- expect(page.all(name_to(name), visible: true)).not_to be_empty
40
- end
41
- end
42
-
43
- step ':parent に :name が表示されていないこと' do |parent, name|
44
- within(name_to(parent)) do
45
- expect(page.all(name_to(name), visible: true)).to be_empty
46
- end
47
- end
48
-
49
- step 'コンボボックス :name の :option_label を選択していること' do
50
- |name, option_label|
51
- expect(find(%{select[name="#{name}"] option[selected]}).text)
52
- .to eq(option_label)
53
- end
54
-
55
- step 'コンボボックス :name の :option_label を選択していないこと' do
56
- |name, option_label|
57
- expect(find(%{select[name="#{name}"] option[selected]}).text)
58
- .not_to eq(option_label)
29
+ step ':name に :value を指定する' do |name, value|
30
+ send(':name フィールドに :value を指定する', name, value)
59
31
  end
60
32
 
61
- step ':name :value を指定する' do |name, value|
33
+ step ':name フィールドに :value を指定する' do |name, value|
62
34
  fill_in(name_to(name, :id), with: value)
63
35
  end
64
36
 
@@ -70,14 +42,6 @@ step ':name のチェックを外す' do |name|
70
42
  uncheck(name)
71
43
  end
72
44
 
73
- step ':name がチェックされていること' do |name|
74
- expect(find(%{input[type="checkbox"][name="#{name}"]})).to be_checked
75
- end
76
-
77
- step ':name がチェックされていないこと' do |name|
78
- expect(find(%{input[type="checkbox"][name="#{name}"]})).not_to be_checked
79
- end
80
-
81
45
  step ':name にタブを切り替える' do |name|
82
46
  page.execute_script(<<-JS)
83
47
  $('#tabs a[href=\"#{name_to(name)}\"]').click()
@@ -118,40 +82,12 @@ step 'ダウンロードが完了するまで待つ' do
118
82
  end
119
83
  end
120
84
 
121
- step ':filename をダウンロードすること' do |filename|
122
- step 'ダウンロードが完了するまで待つ'
123
- if poltergeist?
124
- expect(page.response_headers['Content-Disposition'])
125
- .to match(/\Aattachment; filename="#{filename}"\z/)
126
- expect(page.response_headers['Content-Type'])
127
- .to eq('text/plain; charset=utf-8')
128
- elsif selenium?
129
- expect(downloads_dir.join(filename)).to be_exist
130
- end
131
- end
132
-
133
- step 'ダウンロードしないこと' do
134
- if poltergeist?
135
- expect(page.response_headers['Content-Disposition']).to be_nil
136
- elsif selenium?
137
- expect(downloads_dir).not_to be_exist
138
- end
139
- end
140
-
141
85
  step ':name にフォーカスを移す' do |name|
142
86
  page.execute_script(<<-JS)
143
87
  $('#{name_to(name)}').focus()
144
88
  JS
145
89
  end
146
90
 
147
- step ':name にフォーカスがあること' do |name|
148
- # HACK: 現在のPhantomJSでは$(':focus')は動作しない
149
- # https://github.com/netzpirat/guard-jasmine/issues/48
150
- expect(page.evaluate_script(<<-JS)).to be_true
151
- $('#{name_to(name)}').get(0) == document.activeElement
152
- JS
153
- end
154
-
155
91
  step ':filename をロードする' do |filename|
156
92
  step '"ロードボタン" にフォーカスを移す'
157
93
 
@@ -164,6 +100,26 @@ step ':filename をロードする' do |filename|
164
100
  attach_file('load-file', path)
165
101
  end
166
102
 
103
+ step 'ページをリロードする' do
104
+ begin
105
+ if poltergeist?
106
+ # HACK: Poltergeistではwindow.onbeforeunload によって表示されたダ
107
+ # イアログを消せないためタイムアウト時間を1秒にすることで回避し
108
+ # ている。
109
+ page.driver.timeout = 2
110
+ begin
111
+ step '"エディタ" 画面を表示する'
112
+ ensure
113
+ page.driver.timeout = 120
114
+ end
115
+ else
116
+ step '"エディタ" 画面を表示する'
117
+ end
118
+ rescue Capybara::Poltergeist::TimeoutError => e
119
+ Rails.logger.debug("#{e.class.name}: #{e.message}")
120
+ end
121
+ end
122
+
167
123
  step 'JavaScriptによるリクエストが終わるまで待つ' do
168
124
  start_time = Time.now
169
125
  until page.evaluate_script('jQuery.isReady && jQuery.active == 0') ||
@@ -185,40 +141,6 @@ step 'JavaScriptによる処理が終わるまで待つ' do
185
141
  step 'JavaScriptによるアニメーションが終わるまで待つ'
186
142
  end
187
143
 
188
- step ':name は :value であること' do |name, value|
189
- expect(page.evaluate_script(<<-JS)).to eq(value)
190
- $('#{name_to(name)}').val()
191
- JS
192
- end
193
-
194
- step ':name に :message を含むこと' do |name, message|
195
- expect(page.find(name_to(name))).to have_content(message)
196
- end
197
-
198
- step ':name に :message を含まないこと' do |name, message|
199
- expect(page.find(name_to(name))).not_to have_content(message)
200
- end
201
-
202
- step 'ページをリロードする' do
203
- begin
204
- if poltergeist?
205
- # HACK: Poltergeistではwindow.onbeforeunload によって表示されたダ
206
- # イアログを消せないためタイムアウト時間を1秒にすることで回避し
207
- # ている。
208
- page.driver.timeout = 2
209
- begin
210
- step '"エディタ" 画面を表示する'
211
- ensure
212
- page.driver.timeout = 120
213
- end
214
- else
215
- step '"エディタ" 画面を表示する'
216
- end
217
- rescue Capybara::Poltergeist::TimeoutError => e
218
- Rails.logger.debug("#{e.class.name}: #{e.message}")
219
- end
220
- end
221
-
222
144
  step '警告ダイアログの :name ボタンをクリックする' do |name|
223
145
  case name
224
146
  when 'dismiss'
@@ -232,30 +154,6 @@ step '確認ダイアログをキャンセルするようにしておく' do
232
154
  page.execute_script('window.confirmResult = false') if poltergeist?
233
155
  end
234
156
 
235
- step '確認メッセージ :message を表示すること' do |message|
236
- message.gsub!('\n', "\n")
237
- if poltergeist?
238
- actual = page.evaluate_script('window.confirmMsg')
239
- page.execute_script('window.confirmMsg = null')
240
- expect(actual).to eq(message)
241
- elsif selenium?
242
- expect(page.driver.browser.switch_to.alert.text).to eq(message)
243
- page.driver.browser.switch_to.alert.dismiss
244
- end
245
- end
246
-
247
- step '確認メッセージを表示しないこと' do
248
- if poltergeist?
249
- actual = page.evaluate_script('window.confirmMsg')
250
- page.execute_script('window.confirmMsg = null')
251
- expect(actual).to be_nil
252
- elsif selenium?
253
- expect {
254
- page.driver.browser.switch_to.alert
255
- }.to raise_exception(Selenium::WebDriver::Error::NoAlertPresentError)
256
- end
257
- end
258
-
259
157
  step '実際にはファイルをロードしないようにしておく' do
260
158
  if selenium?
261
159
  page.execute_script("$('#load-button').off('click')")
@@ -287,21 +185,6 @@ step 'ホームディレクトリに :program という内容の :filename が
287
185
  end
288
186
  end
289
187
 
290
- step 'ホームディレクトリに :filename が存在すること' do |filename|
291
- path = Pathname("~/#{filename}").expand_path
292
- expect(path).to be_exist
293
- end
294
-
295
- step 'ホームディレクトリの :filename の内容が :program であること' do |filename, program|
296
- path = Pathname("~/#{filename}").expand_path
297
- expect(path.read).to eq(program)
298
- end
299
-
300
- step 'ホームディレクトリの :filename が次の内容であること:' do |filename, program|
301
- path = Pathname("~/#{filename}").expand_path
302
- expect(path.read).to eq(program)
303
- end
304
-
305
188
  step ':directory ディレクトリに :program という内容の :filename が存在する' do
306
189
  |directory, program, filename|
307
190
  File.open(Pathname("#{directory}/#{filename}").expand_path, 'w') do |f|
@@ -309,18 +192,6 @@ step ':directory ディレクトリに :program という内容の :filename が
309
192
  end
310
193
  end
311
194
 
312
- step ':directory ディレクトリに :filename が存在すること' do
313
- |directory, filename|
314
- path = Pathname("#{directory}/#{filename}").expand_path
315
- expect(path).to be_exist
316
- end
317
-
318
- step ':directory ディレクトリの :filename の内容が :program であること' do
319
- |directory, filename, program|
320
- path = Pathname("#{directory}/#{filename}").expand_path
321
- expect(path.read).to eq(program)
322
- end
323
-
324
195
  step 'ページを表示する' do
325
196
  # no-op
326
197
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smalruby-editor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Kouji Takao
@@ -198,14 +198,14 @@ dependencies:
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: 0.1.6
201
+ version: 0.1.8
202
202
  type: :runtime
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: 0.1.6
208
+ version: 0.1.8
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: bundler
211
211
  requirement: !ruby/object:Gem::Requirement
@@ -469,8 +469,8 @@ files:
469
469
  - public/422.html
470
470
  - public/500.html
471
471
  - public/apple-touch-icon.png
472
- - public/assets/application-5253d287046c0356ed5bdf79ed312e9d.js
473
- - public/assets/application-5253d287046c0356ed5bdf79ed312e9d.js.gz
472
+ - public/assets/application-277da50b978f4a4292b83a0f2ff521e6.js
473
+ - public/assets/application-277da50b978f4a4292b83a0f2ff521e6.js.gz
474
474
  - public/assets/application-f879948b97a781e3d996535a2a0585fa.css
475
475
  - public/assets/application-f879948b97a781e3d996535a2a0585fa.css.gz
476
476
  - public/assets/blockly/msg/js/en_us-d5e1938b2d57c1df954f4411b9165d10.js
@@ -493,7 +493,7 @@ files:
493
493
  - public/assets/jquery-ui/ui-icons_888888_256x240-ce584ffa171c3ea9a018cf0d7bec65c8.png
494
494
  - public/assets/jquery-ui/ui-icons_cd0a0a_256x240-747e96029e8dedcabc224e5f7d1f2ede.png
495
495
  - public/assets/loading-e77296be32d066d3e29d3bf9803fa417.gif
496
- - public/assets/manifest-005ad49acadb6769ff8289e7543e777d.json
496
+ - public/assets/manifest-c9964fd12336c02e9a368ae822cc6cbe.json
497
497
  - public/assets/msg/en_us-a98cc83805d44f5f675fe6eac2c955ec.js
498
498
  - public/assets/msg/en_us-a98cc83805d44f5f675fe6eac2c955ec.js.gz
499
499
  - public/assets/msg/ja-243b0a55ef1086ef2180af94c422cb5e.js
@@ -679,12 +679,13 @@ files:
679
679
  - spec/models/concerns/ruby_to_block_spec.rb
680
680
  - spec/models/source_code_spec.rb
681
681
  - spec/spec_helper.rb
682
- - spec/steps/base_steps.rb
683
682
  - spec/steps/block_mode_steps.rb
684
683
  - spec/steps/fix_turnip.rb
685
684
  - spec/steps/global_variable.rb
686
685
  - spec/steps/standalone_steps.rb
687
686
  - spec/steps/text_editor_steps.rb
687
+ - spec/steps/then_steps.rb
688
+ - spec/steps/when_steps.rb
688
689
  - spec/support/capybara.rb
689
690
  - spec/support/env.rb
690
691
  - spec/support/feature_helper.rb
@@ -857,12 +858,13 @@ test_files:
857
858
  - spec/models/concerns/ruby_to_block_spec.rb
858
859
  - spec/models/source_code_spec.rb
859
860
  - spec/spec_helper.rb
860
- - spec/steps/base_steps.rb
861
861
  - spec/steps/block_mode_steps.rb
862
862
  - spec/steps/fix_turnip.rb
863
863
  - spec/steps/global_variable.rb
864
864
  - spec/steps/standalone_steps.rb
865
865
  - spec/steps/text_editor_steps.rb
866
+ - spec/steps/then_steps.rb
867
+ - spec/steps/when_steps.rb
866
868
  - spec/support/capybara.rb
867
869
  - spec/support/env.rb
868
870
  - spec/support/feature_helper.rb