smalruby-editor 0.3.1-x86-mingw32 → 0.3.2-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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 44c1af21464e2386c904952a79eb44e577d39159
4
- data.tar.gz: 9e3ce5840d75650e4b0fa2563846c33b7419cb6e
3
+ metadata.gz: 52bf90174126ee050a68d71bf206c2e35e1d41fa
4
+ data.tar.gz: e1a8974103b7dce6f5169551ea5e462096782b2b
5
5
  SHA512:
6
- metadata.gz: a21ec1768b17b6b4a14842be4af5de28c900ec4103328bc5e5deb80b427275ff874265be94fc84b457cf1212a52f8d7503a96419c7d9a8dca7b98f3c2ce21bfe
7
- data.tar.gz: 4d9ca92f49b939704d4310b1105a44a0aa46edf00258f4a67d913857dc5753ee5c6bb506d8daeb1ae8ae3e9fbd6ba10b1b11da16d60eeef1e87988ff6e892064
6
+ metadata.gz: 3ec2928e060d718c6773e7b288c8c99a5ffb9d298d022f269fc3060074b0099429e343fc656f8441c0d34b6d36bff210224a74c62657c7c3ca1a3788e0c0da26
7
+ data.tar.gz: ed12abdb50a229c3a26602ed82f42b95562c96dd99ba27eccb39d9d736451f8da01da5e9cc1d5d933299b2e7393d264771e8cf6ca841d911df44a3265a3f40a7
@@ -127,7 +127,7 @@ Smalruby.MainMenuView = Backbone.View.extend
127
127
  msg = "#{errorInfo.row}#{<%= bm('.common_lines') %>}"
128
128
  if errorInfo.column > 0
129
129
  msg += "#{<%= bm('.common_comma') %>}#{errorInfo.column}#{<%= bm('.common_letters') %>}"
130
- window.errorMessage(msg + ": #{errorInfo.message}")
130
+ window.errorMessage(msg + ": #{_.escape(errorInfo.message)}")
131
131
  $.Deferred().reject().promise()
132
132
  .then ->
133
133
  xmlSourceCode.save2()
@@ -142,7 +142,7 @@ Smalruby.MainMenuView = Backbone.View.extend
142
142
  msg = "#{errorInfo.row}#{<%= bm('.common_lines') %>}"
143
143
  if errorInfo.column > 0
144
144
  msg += "#{<%= bm('.common_comma') %>}#{errorInfo.column}#{<%= bm('.common_letters') %>}"
145
- errorMessage(msg + ": #{errorInfo.message}")
145
+ errorMessage(msg + ": #{_.escape(errorInfo.message)}")
146
146
  $.Deferred().reject().promise()
147
147
  .then(@unblockUI, @unblockUI)
148
148
  .fail ->
@@ -17,8 +17,14 @@ Smalruby.SigninModalView = Backbone.View.extend
17
17
  render: ->
18
18
  @$el.find('#signin-modal-username')
19
19
  .val($('#username-label').text())
20
- @$el.modal
21
- backdrop: 'static'
20
+ modalOptions = { backdrop: 'static' }
21
+ if Smalruby.isEnabled('enabled_must_signin')
22
+ @$el.find('#signin-modal-cancel-button').hide()
23
+ modalOptions['keyboard'] = false
24
+ else
25
+ @$el.find('#signin-modal-cancel-button').show()
26
+ modalOptions['keyboard'] = true
27
+ @$el.modal(modalOptions)
22
28
  @$el.modal('show')
23
29
 
24
30
  onOk: (e) ->
@@ -3,58 +3,71 @@ require "smalruby_editor"
3
3
  class Preference < Settingslogic
4
4
  BOOLEAN_FIELD_REGEXP = /(enabled|disabled)/
5
5
 
6
- def self.toolbox_names
7
- %w(
8
- default
9
- smalrubot_v3
10
- smalrubot_s1
11
- )
12
- end
6
+ class << self
7
+ def toolbox_names
8
+ %w(
9
+ default
10
+ smalrubot_v3
11
+ smalrubot_s1
12
+ )
13
+ end
13
14
 
14
- def self.toolbox_preference_names
15
- %w(
16
- toolbox__default__enabled_hardware_blocks
17
- toolbox__default__enabled_smalrubot_v3_blocks
18
- toolbox__default__enabled_smalrubot_s1_blocks
19
- )
20
- end
15
+ def toolbox_preference_names
16
+ %w(
17
+ toolbox__default__enabled_hardware_blocks
18
+ toolbox__default__enabled_smalrubot_v3_blocks
19
+ toolbox__default__enabled_smalrubot_s1_blocks
20
+ )
21
+ end
21
22
 
22
- def self.general_preference_names
23
- %w(
24
- disabled_add_character_from_beginning
25
- disabled_new_character
26
- enabled_readonly_ruby_mode
27
- hardware_port
28
- )
29
- end
23
+ def general_preference_names
24
+ %w(
25
+ disabled_add_character_from_beginning
26
+ disabled_new_character
27
+ enabled_readonly_ruby_mode
28
+ hardware_port
29
+ )
30
+ end
30
31
 
31
- def self.admin_preference_names
32
- %w(
33
- enabled_must_signin
34
- )
35
- end
32
+ def admin_preference_names
33
+ %w(
34
+ enabled_must_signin
35
+ )
36
+ end
36
37
 
37
- def self.whole_preference_names
38
- ["toolbox_name"] + toolbox_preference_names +
39
- general_preference_names + admin_preference_names
40
- end
38
+ def whole_preference_names
39
+ ["toolbox_name"] + toolbox_preference_names +
40
+ general_preference_names + admin_preference_names
41
+ end
41
42
 
42
- def self.defaults
43
- (toolbox_preference_names +
44
- general_preference_names).map { |n|
45
- case n
46
- when BOOLEAN_FIELD_REGEXP
47
- [n, false]
48
- else
49
- [n, ""]
50
- end
51
- }.to_h.merge("toolbox_name" => "default")
52
- end
43
+ def user_defaults
44
+ make_defaults(toolbox_preference_names +
45
+ general_preference_names)
46
+ .merge("toolbox_name" => "default")
47
+ end
48
+
49
+ def admin_defaults
50
+ make_defaults(admin_preference_names)
51
+ end
52
+
53
+ def make_toolbox_name_to_preference_names_hash
54
+ toolbox_preference_names.group_by { |n|
55
+ n.slice(/^toolbox__(.+?)__/, 1)
56
+ }
57
+ end
58
+
59
+ private
53
60
 
54
- def self.make_toolbox_name_to_preference_names_hash
55
- toolbox_preference_names.group_by { |n|
56
- n.slice(/^toolbox__(.+?)__/, 1)
57
- }
61
+ def make_defaults(preference_names)
62
+ preference_names.map { |n|
63
+ case n
64
+ when BOOLEAN_FIELD_REGEXP
65
+ [n, false]
66
+ else
67
+ [n, ""]
68
+ end
69
+ }.to_h
70
+ end
58
71
  end
59
72
 
60
73
  def initialize(hash_or_file = self.class.source, section = nil)
@@ -18,9 +18,11 @@ class User < ActiveRecord::Base
18
18
 
19
19
  # set default preferences from SMALRUBY_HOME/config/config.yml
20
20
  def set_default_preferences
21
- self.preferences = Preference.defaults
22
- Preference.to_h.each do |key, value|
23
- preferences[key] = value
21
+ self.preferences = Preference.user_defaults
22
+ h = Preference.to_h
23
+ (Preference.whole_preference_names -
24
+ Preference.admin_preference_names).each do |name|
25
+ preferences[name] = h[name]
24
26
  end
25
27
  end
26
28
  end
@@ -12,10 +12,9 @@
12
12
  %input#signin-modal-username.input-large{name: "username", type: "text", placeholder: t('.username_placeholder')}
13
13
 
14
14
  .modal-footer
15
- - if !current_preferences["enabled_must_signin"]
16
- %button#signin-modal-cancel-button.cancel-button{class: "btn", :"data-dismiss" => "modal", :"aria-hidden" => "true"}<
17
- %i.icon-remove
18
- = t('common.cancel')
15
+ %button#signin-modal-cancel-button.cancel-button{class: "btn", :"data-dismiss" => "modal", :"aria-hidden" => "true"}<
16
+ %i.icon-remove
17
+ = t('common.cancel')
19
18
  %button#signin-modal-ok-button.ok-button{class: "btn btn-primary"}<
20
19
  %i.icon-circle-blank
21
20
  = t('common.login')
@@ -1,3 +1,3 @@
1
1
  module SmalrubyEditor
2
- VERSION = '0.3.1'
2
+ VERSION = '0.3.2'
3
3
  end
@@ -8,23 +8,32 @@
8
8
  かつ プログラムの名前に "01.rb" を指定する
9
9
  かつ テキストエディタに "puts Hello, World!'" を入力済みである
10
10
 
11
- シナリオ: 実行前にプログラムのシンタックスエラーをチェックできる
12
- もし "実行ボタン" をクリックする
11
+ # シナリオ: 実行前にプログラムのシンタックスエラーをチェックできる
12
+ # もし "実行ボタン" をクリックする
13
+ # かつ JavaScriptによるリクエストが終わるまで待つ
14
+ #
15
+ # ならば "メッセージ" に "エラー" を含むこと
16
+ # かつ "メッセージ" に "プログラムを実行できませんでした" を含むこと
17
+ # かつ "メッセージ" に "1行、19文字: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('" を含むこと
18
+ # かつ "メッセージ" に "1行: unterminated string meets end of file" を含むこと
19
+
20
+ シナリオ: プログラム実行時に、実行したプログラムによって発生したエラーメッセージを表示できる
21
+ もし テキストエディタに "raise '不具合'" を入力済みである
22
+ かつ "実行ボタン" をクリックする
13
23
  かつ JavaScriptによるリクエストが終わるまで待つ
14
24
 
15
25
  ならば "メッセージ" に "エラー" を含むこと
16
26
  かつ "メッセージ" に "プログラムを実行できませんでした" を含むこと
17
- かつ "メッセージ" に "1行、19文字: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('" を含むこと
18
- かつ "メッセージ" に "1行: unterminated string meets end of file" を含むこと
19
-
20
- シナリオ: 既存のファイルがある状態でプログラムを実行し、上書き保存をキャンセルする
21
- 前提 ホームディレクトリに "n = 0" という内容の "01.rb" が存在する
22
- かつ 確認ダイアログをキャンセルするようにしておく
23
-
24
- もし "実行ボタン" をクリックする
25
- かつ JavaScriptによるリクエストが終わるまで待つ
26
- かつ JavaScriptによるリクエストが終わるまで待つ
27
+ かつ "メッセージ" に "1行: in `<main>': 不具合 (RuntimeError)" を含むこと
27
28
 
28
- ならば 確認メッセージ "前に01.rbという名前でセーブしているけど本当にセーブしますか?\nセーブすると前に作成したプログラムは消えてしまうよ!" を表示すること
29
- かつ "メッセージ" "プログラムの実行をキャンセルしました" を含むこと
30
- かつ ホームディレクトリの "01.rb" の内容が "n = 0" であること
29
+ # シナリオ: 既存のファイルがある状態でプログラムを実行し、上書き保存をキャンセルする
30
+ # 前提 ホームディレクトリに "n = 0" という内容の "01.rb" が存在する
31
+ # かつ 確認ダイアログをキャンセルするようにしておく
32
+ #
33
+ # もし "実行ボタン" をクリックする
34
+ # かつ JavaScriptによるリクエストが終わるまで待つ
35
+ # かつ JavaScriptによるリクエストが終わるまで待つ
36
+ #
37
+ # ならば 確認メッセージ "前に01.rbという名前でセーブしているけど本当にセーブしますか?\nセーブすると前に作成したプログラムは消えてしまうよ!" を表示すること
38
+ # かつ "メッセージ" に "プログラムの実行をキャンセルしました" を含むこと
39
+ # かつ ホームディレクトリの "01.rb" の内容が "n = 0" であること
@@ -94,3 +94,33 @@
94
94
  もし "サブメニューボタン" をクリックする
95
95
 
96
96
  ならば "サブメニュー" に "ログアウト" を含むこと
97
+
98
+ シナリオ: enabled_must_signinが有効な状態で、いったんログインしてからリロードするとログイン状態を維持できるのですが、その状態でログアウトしたときに表示されるログイン画面をESCキーや「やめる」ボタンでキャンセルできないこと
99
+ 前提 次のRubyのスクリプトを実行する:
100
+ """
101
+ Preference["enabled_must_signin"] = true
102
+ """
103
+
104
+ もし "/" にアクセスする
105
+ かつ JavaScriptによる処理が終わるまで待つ
106
+
107
+ ならば "#signin-modal" が表示されていること
108
+ かつ "#signin-modal-cancel-button" が表示されていないこと
109
+
110
+ ならば "#signin-modal" が表示されていること
111
+
112
+ もし "signin-modal-username" に "1102" を指定する
113
+ かつ "signin-modal-ok-button" をクリックする
114
+ かつ JavaScriptによる処理が終わるまで待つ
115
+
116
+ ならば "#signin-modal" が表示されていないこと
117
+
118
+ もし ページをリロードする
119
+
120
+ ならば "#main-menu" に "ログイン" を含まないこと
121
+ かつ "#main-menu" に "1102" を含むこと
122
+
123
+ もし ログアウトする
124
+
125
+ ならば "#signin-modal" が表示されていること
126
+ かつ "#signin-modal-cancel-button" が表示されていないこと
@@ -101,7 +101,10 @@ RSpec.configure do |config|
101
101
  config.include FeatureHelper, type: :feature
102
102
 
103
103
  config.before(:all) do
104
- Preference.defaults.each do |key, value|
104
+ Preference.user_defaults.each do |key, value|
105
+ Preference[key] = value
106
+ end
107
+ Preference.admin_defaults.each do |key, value|
105
108
  Preference[key] = value
106
109
  end
107
110
  Preference["disabled_add_character_from_beginning"] = true
@@ -192,6 +192,12 @@ step ':directory ディレクトリに :program という内容の :filename が
192
192
  end
193
193
  end
194
194
 
195
+ # rubocop:disable Eval
196
+ step '次のRubyのスクリプトを実行する:' do |script|
197
+ eval(script)
198
+ end
199
+ # rubocop:enable Eval
200
+
195
201
  step 'ページを表示する' do
196
202
  # no-op
197
203
  end
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.3.1
4
+ version: 0.3.2
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Kouji Takao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-20 00:00:00.000000000 Z
11
+ date: 2015-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -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-277da50b978f4a4292b83a0f2ff521e6.js
473
- - public/assets/application-277da50b978f4a4292b83a0f2ff521e6.js.gz
472
+ - public/assets/application-d994c5cb05da6b9c674f86f27d48f991.js
473
+ - public/assets/application-d994c5cb05da6b9c674f86f27d48f991.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-c9964fd12336c02e9a368ae822cc6cbe.json
496
+ - public/assets/manifest-09b9c583b55684372f2cf9fa635e4e2e.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