smalruby-editor 0.1.4-x86-mingw32 → 0.1.5-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/app/assets/javascripts/application.js +0 -1
- data/app/assets/javascripts/blocks/control.js.coffee.erb +5 -2
- data/app/assets/javascripts/generators/ruby.js.coffee.erb +2 -2
- data/app/assets/javascripts/smalruby.js.coffee +27 -0
- data/app/assets/javascripts/views/character_selector_view.js.coffee +5 -0
- data/app/assets/javascripts/views/main_menu_view.js.coffee +21 -5
- data/app/assets/stylesheets/toolbox.css.scss.erb +14 -1
- data/app/views/editor/_toolbox.html.haml +51 -49
- data/lib/smalruby_editor/version.rb +1 -1
- data/smalruby-editor.gemspec +1 -1
- data/spec/acceptance/block_mode/blocks/control/loop.feature +74 -26
- data/spec/spec_helper.rb +3 -0
- data/spec/steps/ace_steps.rb +9 -0
- metadata +9 -10
- data/app/assets/javascripts/block_mode.js.coffee.erb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 541270ea861d18cc79f609be0ab035b2509ae55a
|
4
|
+
data.tar.gz: 22ec8448c52b4c22b6d6cf1fa02d78a95da75a47
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f25ca7ea2a48da978c223198e7780471e6a06f1c48af12924d7105e0d63f7debdc521bd5232d16ac7ffeaaa623d90f8eff7987f349f9a8be9c55f29944332de6
|
7
|
+
data.tar.gz: ee108b11160c979eedede301dcf2c25ec8083ad8bf6e390c59c8f7ccb041bc141f59b85216f5dced272c891129b87280fa5ada955c9891b0fd64c955e89b29e7
|
@@ -37,8 +37,11 @@ Blockly.Blocks['<%= n %>'] =
|
|
37
37
|
@setTooltip('')
|
38
38
|
|
39
39
|
Blockly.Ruby['<%= n %>'] = (block) ->
|
40
|
-
|
41
|
-
|
40
|
+
if Blockly.Ruby.r_() == 'main'
|
41
|
+
''
|
42
|
+
else
|
43
|
+
branch = Blockly.Ruby.statementToCode(block, 'DO') || '\n'
|
44
|
+
'loop do\n' + branch + 'end\n'
|
42
45
|
|
43
46
|
<%
|
44
47
|
[
|
@@ -83,8 +83,8 @@ Blockly.Ruby.c = Blockly.Ruby.character
|
|
83
83
|
Blockly.Ruby.c_ = Blockly.Ruby.character
|
84
84
|
Blockly.Ruby.rs = Blockly.Ruby.receiverStack
|
85
85
|
Blockly.Ruby.rs_ = Blockly.Ruby.receiverStack
|
86
|
-
Blockly.Ruby.r = Blockly.Ruby.
|
87
|
-
Blockly.Ruby.r_ = Blockly.Ruby.
|
86
|
+
Blockly.Ruby.r = Blockly.Ruby.receiver
|
87
|
+
Blockly.Ruby.r_ = Blockly.Ruby.receiver
|
88
88
|
Blockly.Ruby.rn = Blockly.Ruby.receiverName
|
89
89
|
Blockly.Ruby.rn_ = Blockly.Ruby.receiverName
|
90
90
|
|
@@ -62,6 +62,33 @@ window.Smalruby =
|
|
62
62
|
Smalruby.downloading = false
|
63
63
|
return
|
64
64
|
|
65
|
+
Blockly.HSV_SATURATION = 1.0
|
66
|
+
Blockly.HSV_VALUE = 0.8
|
67
|
+
|
68
|
+
Blockly.inject document.getElementById('blockly-div'),
|
69
|
+
path: '/blockly/'
|
70
|
+
toolbox: document.getElementById('toolbox')
|
71
|
+
trashcan: true
|
72
|
+
|
73
|
+
Blockly.Toolbox.tree_.expandAll()
|
74
|
+
|
75
|
+
@blocklyFirst = true
|
76
|
+
@blocklyLoading = false
|
77
|
+
Blockly.addChangeListener =>
|
78
|
+
# HACK: Blocklyを初期化後に一回だけChangeListenerが呼び出させれ
|
79
|
+
# る。ここではそれを無視している。
|
80
|
+
if @blocklyFirst
|
81
|
+
@blocklyFirst = false
|
82
|
+
return
|
83
|
+
|
84
|
+
# HACK: XMLの読み込み後に一回だけChangeListenerが呼び出させれ
|
85
|
+
# る。ここではそれを無視している。
|
86
|
+
if @blocklyLoading
|
87
|
+
@blocklyLoading = false
|
88
|
+
return
|
89
|
+
|
90
|
+
window.changed = true
|
91
|
+
|
65
92
|
loadXml: (data, workspace = Blockly.mainWorkspace) ->
|
66
93
|
xml = Blockly.Xml.textToDom(data)
|
67
94
|
workspace.clear()
|
@@ -67,6 +67,11 @@ Smalruby.CharacterSelectorView = Backbone.View.extend({
|
|
67
67
|
@moveByNewBlock_(newBlock)
|
68
68
|
newBlock.select()
|
69
69
|
|
70
|
+
onStartBlock = new Blockly.Block(Blockly.mainWorkspace, 'events_on_start')
|
71
|
+
onStartBlock.initSvg()
|
72
|
+
onStartBlock.render()
|
73
|
+
newBlock.getInput('DO').connection.connect(onStartBlock.previousConnection)
|
74
|
+
|
70
75
|
moveByNewBlock_: (newBlock) ->
|
71
76
|
metrics = Blockly.mainWorkspace.getMetrics()
|
72
77
|
newXY =
|
@@ -26,14 +26,26 @@ Smalruby.MainMenuView = Backbone.View.extend
|
|
26
26
|
if info.error
|
27
27
|
window.errorMessage(info.filename + 'は' + info.error)
|
28
28
|
else
|
29
|
-
|
30
|
-
if
|
29
|
+
filename = info.filename
|
30
|
+
if filename.match(/\.xml$/)
|
31
|
+
unless window.blockMode
|
32
|
+
$('#tabs a[href="#block-tab"]').tab('show')
|
33
|
+
|
34
|
+
filename = filename.replace(/(\.rb)?\.xml$/, '.rb')
|
35
|
+
Smalruby.blocklyLoading = true
|
31
36
|
Smalruby.loadXml(info.data)
|
32
37
|
info.data = Blockly.Ruby.workspaceToCode()
|
38
|
+
else
|
39
|
+
Smalruby.Collections.CharacterSet.reset()
|
40
|
+
Blockly.mainWorkspace.clear()
|
41
|
+
|
42
|
+
if window.blockMode
|
43
|
+
$('#tabs a[href="#ruby-tab"]').tab('show')
|
44
|
+
window.textEditor.focus()
|
45
|
+
|
46
|
+
$('#filename').val(filename)
|
33
47
|
window.textEditor.getSession().getDocument().setValue(info.data)
|
34
48
|
window.textEditor.moveCursorTo(0, 0)
|
35
|
-
unless window.blockMode
|
36
|
-
window.textEditor.focus()
|
37
49
|
# TODO: window.changed -> Smalruby.Models.SourceCode.changed
|
38
50
|
window.changed = false
|
39
51
|
window.successMessage('ロードしました')
|
@@ -152,7 +164,11 @@ Smalruby.MainMenuView = Backbone.View.extend
|
|
152
164
|
$('#filename').focus()
|
153
165
|
return
|
154
166
|
|
155
|
-
|
167
|
+
if window.blockMode
|
168
|
+
filename += '.xml' unless filename.match(/\.xml$/)
|
169
|
+
sourceCode = new Smalruby.SourceCode({ filename: filename })
|
170
|
+
else
|
171
|
+
sourceCode = @getSourceCode()
|
156
172
|
|
157
173
|
@blockUI
|
158
174
|
title:
|
@@ -24,6 +24,7 @@
|
|
24
24
|
end
|
25
25
|
|
26
26
|
hues = %w(
|
27
|
+
225
|
27
28
|
225
|
28
29
|
264
|
29
30
|
296
|
@@ -34,18 +35,30 @@
|
|
34
35
|
200
|
35
36
|
93
|
36
37
|
93
|
38
|
+
93
|
37
39
|
340
|
38
40
|
208
|
41
|
+
208
|
42
|
+
208
|
43
|
+
208
|
44
|
+
208
|
39
45
|
).map(&:to_i)
|
40
46
|
|
47
|
+
ruby_genre_index = hues.index(340) + 1
|
48
|
+
|
41
49
|
colors = hues.map { |h|
|
42
50
|
[hsv_to_rgb(h, 100, 80), hsv_to_rgb(h, 100, 100)]
|
43
51
|
}
|
44
52
|
|
53
|
+
ids = (0..9).to_a + ('a'..'z').to_a
|
45
54
|
colors.each.with_index(1) do |(color, active_color), index|
|
46
55
|
%>
|
47
56
|
|
48
|
-
#\:<%=
|
57
|
+
#\:<%= ids[index] %> {
|
58
|
+
<% if index == ruby_genre_index %>
|
59
|
+
display: none;
|
60
|
+
|
61
|
+
<% end %>
|
49
62
|
.blocklyTreeRow {
|
50
63
|
padding-top: 0.25em;
|
51
64
|
padding-bottom: 0.25em;
|
@@ -1,28 +1,10 @@
|
|
1
1
|
%xml{:id => 'toolbox', :style => 'display: none'}
|
2
2
|
- category = 'motion'
|
3
|
-
%category{:name => '
|
3
|
+
%category{:name => '移動'}
|
4
4
|
-# ( )歩動かす
|
5
5
|
%block{:type => "#{category}_move"}
|
6
6
|
= toolbox_number_value('STEP', 10)
|
7
7
|
|
8
|
-
-# 時計回りに( )度回す
|
9
|
-
%block{:type => "#{category}_rotate_right"}
|
10
|
-
= toolbox_number_value('ANGLE', 15)
|
11
|
-
|
12
|
-
-# 半時計回りに( )度回す
|
13
|
-
%block{:type => "#{category}_rotate_left"}
|
14
|
-
= toolbox_number_value('ANGLE', 15)
|
15
|
-
|
16
|
-
-# ( )度に向ける
|
17
|
-
%block{:type => "#{category}_set_angle"}
|
18
|
-
= toolbox_number_value('ANGLE', 90)
|
19
|
-
|
20
|
-
-# マウスポインターへ向ける
|
21
|
-
%block{:type => "#{category}_point_towards_mouse"}
|
22
|
-
|
23
|
-
-# [▼]へ向ける
|
24
|
-
%block{:type => "#{category}_point_towards_character"}
|
25
|
-
|
26
8
|
-# x座標を( )、y座標を( )にする
|
27
9
|
%block{:type => "#{category}_set_x_y"}
|
28
10
|
= toolbox_number_value('X')
|
@@ -56,6 +38,13 @@
|
|
56
38
|
%block{:type => "#{category}_set_y"}
|
57
39
|
= toolbox_number_value('Y', 0)
|
58
40
|
|
41
|
+
-# 変数:x座標
|
42
|
+
%block{:type => "#{category}_self_x"}
|
43
|
+
|
44
|
+
-# 変数:y座標
|
45
|
+
%block{:type => "#{category}_self_y"}
|
46
|
+
|
47
|
+
%category{:name => '回転'}
|
59
48
|
-# もし端に着いたら、跳ね返る
|
60
49
|
%block{:type => "#{category}_turn_if_reach_wall"}
|
61
50
|
|
@@ -65,14 +54,26 @@
|
|
65
54
|
-# 跳ね返る
|
66
55
|
%block{:type => "#{category}_turn"}
|
67
56
|
|
68
|
-
-#
|
69
|
-
|
57
|
+
-# 時計回りに( )度回す
|
58
|
+
%block{:type => "#{category}_rotate_right"}
|
59
|
+
= toolbox_number_value('ANGLE', 15)
|
70
60
|
|
71
|
-
-#
|
72
|
-
%block{:type => "#{category}
|
61
|
+
-# 半時計回りに( )度回す
|
62
|
+
%block{:type => "#{category}_rotate_left"}
|
63
|
+
= toolbox_number_value('ANGLE', 15)
|
73
64
|
|
74
|
-
-#
|
75
|
-
%block{:type => "#{category}
|
65
|
+
-# ( )度に向ける
|
66
|
+
%block{:type => "#{category}_set_angle"}
|
67
|
+
= toolbox_number_value('ANGLE', 90)
|
68
|
+
|
69
|
+
-# マウスポインターへ向ける
|
70
|
+
%block{:type => "#{category}_point_towards_mouse"}
|
71
|
+
|
72
|
+
-# [▼]へ向ける
|
73
|
+
%block{:type => "#{category}_point_towards_character"}
|
74
|
+
|
75
|
+
-# 回転方法を[▼]にする
|
76
|
+
-#%block{:type => "#{category}_set_rotation_style"}
|
76
77
|
|
77
78
|
-# 変数:向き
|
78
79
|
%block{:type => "#{category}_self_angle"}
|
@@ -246,15 +247,6 @@
|
|
246
247
|
= toolbox_number_value('A', 1)
|
247
248
|
= toolbox_number_value('B', 10)
|
248
249
|
|
249
|
-
-# 変数:( )の( )番目
|
250
|
-
%block{:type => "#{category}_index_of"}
|
251
|
-
= toolbox_text_value('A', 'あいうえお')
|
252
|
-
= toolbox_number_value('INDEX', 1)
|
253
|
-
|
254
|
-
-# 変数:( )の長さ
|
255
|
-
%block{:type => "#{category}_length"}
|
256
|
-
= toolbox_text_value('A', 'あいうえお')
|
257
|
-
|
258
250
|
-# 変数:( )を( )で割った余り
|
259
251
|
%block{:type => "#{category}_modulo"}
|
260
252
|
= toolbox_number_value('A', 5)
|
@@ -270,16 +262,26 @@
|
|
270
262
|
%field{:name => 'METHOD'}<
|
271
263
|
Math.sqrt(%num%)
|
272
264
|
|
273
|
-
-# テキスト
|
274
|
-
%block{:type => 'text'}
|
275
|
-
%field{:name => 'TEXT'}<
|
276
|
-
文章
|
277
|
-
|
278
265
|
-# 数値
|
279
266
|
%block{:type => 'math_number'}
|
280
267
|
%field{:name => 'NUM'}<
|
281
268
|
0
|
282
269
|
|
270
|
+
%category{:name => '文字'}
|
271
|
+
-# 変数:( )の( )番目
|
272
|
+
%block{:type => "#{category}_index_of"}
|
273
|
+
= toolbox_text_value('A', 'あいうえお')
|
274
|
+
= toolbox_number_value('INDEX', 1)
|
275
|
+
|
276
|
+
-# 変数:( )の長さ
|
277
|
+
%block{:type => "#{category}_length"}
|
278
|
+
= toolbox_text_value('A', 'あいうえお')
|
279
|
+
|
280
|
+
-# テキスト
|
281
|
+
%block{:type => 'text'}
|
282
|
+
%field{:name => 'TEXT'}<
|
283
|
+
文章
|
284
|
+
|
283
285
|
%category{:name => '条件'}
|
284
286
|
-# 条件:( ) < ( )
|
285
287
|
%block{:type => "#{category}_compare_gt"}
|
@@ -328,7 +330,7 @@
|
|
328
330
|
%block{:type => "#{category}_p"}
|
329
331
|
|
330
332
|
- category = 'hardware'
|
331
|
-
%category{:name => '
|
333
|
+
%category{:name => 'アクチュエータ'}
|
332
334
|
%category{:name => '準備'}
|
333
335
|
-# ハードウェアを準備する
|
334
336
|
%block{:type => "#{category}_init_hardware"}
|
@@ -362,10 +364,10 @@
|
|
362
364
|
-# -# LCDをクリアする
|
363
365
|
-# %block{:type => "#{category}_lcd_clear"}
|
364
366
|
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
367
|
+
-#%category{:name => 'サーボ'}
|
368
|
+
-# -# サーボ[▼ピン]を( )度(5~180)にする
|
369
|
+
-# %block{:type => "#{category}_servo_set_position"}
|
370
|
+
-# = toolbox_number_value('POS', 90)
|
369
371
|
|
370
372
|
-#%category{:name => 'ボタン'}
|
371
373
|
-# -# 条件:ボタン[▼]を押している
|
@@ -380,9 +382,9 @@
|
|
380
382
|
-# -# ボタン[▼]を離したとき
|
381
383
|
-# %block{:type => "#{category}_on_button_up"}
|
382
384
|
|
383
|
-
|
384
|
-
|
385
|
-
|
385
|
+
%category{:name => 'センサー'}
|
386
|
+
-# センサー[▼PIN]
|
387
|
+
%block{:type => "#{category}_sensor_value"}
|
386
388
|
|
387
|
-
|
388
|
-
|
389
|
+
-# センサー[▼PIN]が変化したとき
|
390
|
+
%block{:type => "#{category}_on_sensor_change"}
|
data/smalruby-editor.gemspec
CHANGED
@@ -2,44 +2,92 @@
|
|
2
2
|
# language: ja
|
3
3
|
@javascript
|
4
4
|
機能: control_loop - 「ずっと」ブロック
|
5
|
-
|
5
|
+
背景:
|
6
6
|
前提 "ブロック" タブを表示する
|
7
|
+
かつ 次のキャラクターを追加する:
|
8
|
+
| name | costumes | x | y | angle |
|
9
|
+
| car1 | car1.png | 0 | 0 | 0 |
|
7
10
|
|
11
|
+
シナリオ: ブロックのみ配置する
|
8
12
|
もし 次のブロックを配置する:
|
9
|
-
|
10
|
-
|
11
|
-
|
13
|
+
"""
|
14
|
+
%block{:type => "control_loop", :x => "0", :y => "0"}
|
15
|
+
"""
|
12
16
|
かつ ブロックからソースコードを生成する
|
13
17
|
|
14
|
-
ならば
|
15
|
-
"""
|
16
|
-
require "smalruby"
|
18
|
+
ならば テキストエディタのプログラムは "" であること
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
|
20
|
+
シナリオ: ブロックとその内側に文を配置する
|
21
|
+
もし 次のブロックを配置する:
|
22
|
+
"""
|
23
|
+
%block{:type => "control_loop", :x => "0", :y => "0"}
|
24
|
+
%statement{:name => "DO"}
|
25
|
+
%block{:type => "ruby_statement", :x => "0", :y => "0"}
|
26
|
+
%field{:name => "STATEMENT"}<
|
27
|
+
p self
|
28
|
+
"""
|
29
|
+
かつ ブロックからソースコードを生成する
|
21
30
|
|
22
|
-
""
|
31
|
+
ならば テキストエディタのプログラムは "" であること
|
23
32
|
|
24
33
|
シナリオ: ブロックとその内側に文を配置する
|
25
|
-
|
34
|
+
もし 次のブロックを配置する:
|
35
|
+
"""
|
36
|
+
%block{:type => "control_loop", :x => "0", :y => "0"}
|
37
|
+
%statement{:name => "DO"}
|
38
|
+
%block{:type => "ruby_statement", :x => "0", :y => "0"}
|
39
|
+
%field{:name => "STATEMENT"}<
|
40
|
+
p self
|
41
|
+
"""
|
42
|
+
かつ ブロックからソースコードを生成する
|
43
|
+
|
44
|
+
ならば テキストエディタのプログラムは "" であること
|
26
45
|
|
46
|
+
シナリオ: キャラクターと文とブロックを配置する
|
27
47
|
もし 次のブロックを配置する:
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
48
|
+
"""
|
49
|
+
%block{:type => "character_new", :x => "21", :y => "15"}
|
50
|
+
%field{:name => "NAME"}<
|
51
|
+
car1
|
52
|
+
%statement{:name => "DO"}
|
53
|
+
%block{:type => "control_loop", :x => "0", :y => "0"}
|
54
|
+
%statement{:name => "DO"}
|
55
|
+
%block{:type => "ruby_statement", :x => "0", :y => "0"}
|
56
|
+
%field{:name => "STATEMENT"}<
|
57
|
+
p self
|
58
|
+
"""
|
35
59
|
かつ ブロックからソースコードを生成する
|
36
60
|
|
37
|
-
ならば
|
38
|
-
|
39
|
-
|
61
|
+
ならば テキストエディタのプログラムは以下を含まないこと:
|
62
|
+
"""
|
63
|
+
loop do
|
64
|
+
p self
|
65
|
+
end
|
66
|
+
"""
|
67
|
+
|
68
|
+
シナリオ: キャラクターとイベントと文とブロックを配置する
|
69
|
+
もし 次のブロックを配置する:
|
70
|
+
"""
|
71
|
+
%block{:type => "character_new", :x => "21", :y => "15"}
|
72
|
+
%field{:name => "NAME"}<
|
73
|
+
car1
|
74
|
+
%statement{:name => "DO"}
|
75
|
+
%block{:type => "events_on_start"}
|
76
|
+
%statement{:name => "DO"}
|
77
|
+
%block{:type => "control_loop", :x => "0", :y => "0"}
|
78
|
+
%statement{:name => "DO"}
|
79
|
+
%block{:type => "ruby_statement", :x => "0", :y => "0"}
|
80
|
+
%field{:name => "STATEMENT"}<
|
81
|
+
p self
|
82
|
+
"""
|
83
|
+
かつ ブロックからソースコードを生成する
|
40
84
|
|
41
|
-
|
42
|
-
|
43
|
-
|
85
|
+
ならば テキストエディタのプログラムは以下を含むこと:
|
86
|
+
"""
|
87
|
+
car1.on(:start) do
|
88
|
+
loop do
|
89
|
+
p self
|
90
|
+
end
|
91
|
+
end
|
44
92
|
|
45
|
-
|
93
|
+
"""
|
data/spec/spec_helper.rb
CHANGED
@@ -97,6 +97,9 @@ Spork.prefork do
|
|
97
97
|
Capybara.javascript_driver = :selenium
|
98
98
|
else
|
99
99
|
Capybara.javascript_driver = :poltergeist
|
100
|
+
Capybara.register_driver(:poltergeist) { |app|
|
101
|
+
Capybara::Poltergeist::Driver.new(app, timeout: 120)
|
102
|
+
}
|
100
103
|
end
|
101
104
|
|
102
105
|
config.include JsonSpec::Helpers
|
data/spec/steps/ace_steps.rb
CHANGED
@@ -58,6 +58,15 @@ step 'テキストエディタのプログラムは以下を含むこと:' do |p
|
|
58
58
|
JS
|
59
59
|
end
|
60
60
|
|
61
|
+
step 'テキストエディタのプログラムは以下を含まないこと:' do |program|
|
62
|
+
expect(page.evaluate_script(<<-JS)).not_to include(program)
|
63
|
+
ace.edit('#{NAME_INFO[text_editor][:id]}')
|
64
|
+
.getSession()
|
65
|
+
.getDocument()
|
66
|
+
.getValue()
|
67
|
+
JS
|
68
|
+
end
|
69
|
+
|
61
70
|
step 'テキストエディタのプログラムは :program であること' do |program|
|
62
71
|
expect(page.evaluate_script(<<-JS)).to eq(program)
|
63
72
|
ace.edit('#{NAME_INFO[text_editor][:id]}')
|
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.
|
4
|
+
version: 0.1.5
|
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: 2014-02-
|
11
|
+
date: 2014-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.0.
|
19
|
+
version: 4.0.3
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 4.0.
|
26
|
+
version: 4.0.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sqlite3
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -332,7 +332,6 @@ files:
|
|
332
332
|
- app/assets/images/.keep
|
333
333
|
- app/assets/images/favicon.ico
|
334
334
|
- app/assets/javascripts/application.js
|
335
|
-
- app/assets/javascripts/block_mode.js.coffee.erb
|
336
335
|
- app/assets/javascripts/blocks/blockly.js.coffee.erb
|
337
336
|
- app/assets/javascripts/blocks/character.js.coffee.erb
|
338
337
|
- app/assets/javascripts/blocks/control.js.coffee.erb
|
@@ -571,10 +570,10 @@ files:
|
|
571
570
|
- vendor/assets/javascripts/blockly/msg/js/ja.js
|
572
571
|
- vendor/assets/javascripts/jquery.blockUI.js
|
573
572
|
- vendor/assets/stylesheets/.keep
|
574
|
-
- public/assets/application-
|
575
|
-
- public/assets/application-
|
576
|
-
- public/assets/application-
|
577
|
-
- public/assets/application-
|
573
|
+
- public/assets/application-0047adbc0fb7a529ef7a41b5e0e7d097.js
|
574
|
+
- public/assets/application-0047adbc0fb7a529ef7a41b5e0e7d097.js.gz
|
575
|
+
- public/assets/application-64a390efe879c386a5950515064f062d.css
|
576
|
+
- public/assets/application-64a390efe879c386a5950515064f062d.css.gz
|
578
577
|
- public/assets/default-5d1886100d7c8961e9962bbc4bb0c714.xml
|
579
578
|
- public/assets/favicon-a37c90b368fd8ed436cb8f9e9396465c.ico
|
580
579
|
- public/assets/jquery-ui/animated-overlay-c48c87b7a95316f4698484e3b85ee4aa.gif
|
@@ -592,7 +591,7 @@ files:
|
|
592
591
|
- public/assets/jquery-ui/ui-icons_888888_256x240-57c441f87c4289a5372823f506c1182d.png
|
593
592
|
- public/assets/jquery-ui/ui-icons_cd0a0a_256x240-261647ac915575f3981ded254ae8d43e.png
|
594
593
|
- public/assets/loading-e8e6dd7833131c92a6c3b9c8ccc6a6ac.gif
|
595
|
-
- public/assets/manifest-
|
594
|
+
- public/assets/manifest-332a5a1668194028b55103e0ea45c054.json
|
596
595
|
- public/assets/progressbar-82023a146fba2a0f6d925629ed2b09c5.gif
|
597
596
|
- public/assets/rgb_led_anode-91225bef2a8b97f1cefee862a0619b91.xml
|
598
597
|
homepage: https://github.com/smalruby/smalruby-editor
|