smalruby-editor 0.1.4 → 0.1.5

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: 4a170c7caf7a7f3f21fcd92390031b6a235ef24e
4
- data.tar.gz: f5ec5ae8b07c312b562c57cd30082eccc77ecbc8
3
+ metadata.gz: 5e7ba6e10d56bd73f1658e745cf3aaf795ebbf08
4
+ data.tar.gz: 3ceef51157fff992c5f8989ccf83a5b4aef5af88
5
5
  SHA512:
6
- metadata.gz: 5e29b546d5e5356ad883d35cbc0dcf0e0e4005b2543d90e6f5982f75575b6c3ffcc0375892009883acd043b2eccaeb18454690aed78af4b66da80bd54b2f4e79
7
- data.tar.gz: 1b6fc03abe76742d9a7259d50451e8b31866b924ac88f842e1fe45668dc00f200ec6e4463f0123fd1fc0e57ad6ec78879612f184c8f23b9cf709f10e0d8a603b
6
+ metadata.gz: 62826a2a56b3a8b692e773f213be4e4b8b6996de7298221d2d48aa7e106c8fc45cd94faf2d2987680b640fea05ac9c6a2811de910d751e9203ef70f9df0f9a0a
7
+ data.tar.gz: e95d44e8d2fd12f9cebd61990c5546cdaa84552babf035139b333c7e10edb5a0696a0365f64d66f64653314532fb7328be90f78f95243e03fbc03f31d46b362b
@@ -32,7 +32,6 @@
32
32
  //= require_tree ./collections
33
33
  //= require_tree ./views
34
34
  //= require_tree ./routers
35
- //= require ./block_mode
36
35
  //= require_tree ./generators
37
36
  //= require ./blocks/field_character
38
37
  //= require_tree ./blocks
@@ -37,8 +37,11 @@ Blockly.Blocks['<%= n %>'] =
37
37
  @setTooltip('')
38
38
 
39
39
  Blockly.Ruby['<%= n %>'] = (block) ->
40
- branch = Blockly.Ruby.statementToCode(block, 'DO') || '\n'
41
- 'loop do\n' + branch + 'end\n'
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.r
87
- Blockly.Ruby.r_ = Blockly.Ruby.r
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
- $('#filename').val(info.filename)
30
- if info.filename.match(/.xml$/)
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
- sourceCode = @getSourceCode()
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
- #\:<%= '%x' % index %> {
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
- -#%block{:type => "#{category}_set_rotation_style"}
57
+ -# 時計回りに( )度回す
58
+ %block{:type => "#{category}_rotate_right"}
59
+ = toolbox_number_value('ANGLE', 15)
70
60
 
71
- -# 変数:x座標
72
- %block{:type => "#{category}_self_x"}
61
+ -# 半時計回りに( )度回す
62
+ %block{:type => "#{category}_rotate_left"}
63
+ = toolbox_number_value('ANGLE', 15)
73
64
 
74
- -# 変数:y座標
75
- %block{:type => "#{category}_self_y"}
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
- %category{:name => 'サーボ'}
366
- -# サーボ[▼ピン]を( )度(5~180)にする
367
- %block{:type => "#{category}_servo_set_position"}
368
- = toolbox_number_value('POS', 90)
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
- %category{:name => 'センサー'}
384
- -# センサー[▼PIN]
385
- %block{:type => "#{category}_sensor_value"}
385
+ %category{:name => 'センサー'}
386
+ -# センサー[▼PIN]
387
+ %block{:type => "#{category}_sensor_value"}
386
388
 
387
- -# センサー[▼PIN]が変化したとき
388
- %block{:type => "#{category}_on_sensor_change"}
389
+ -# センサー[▼PIN]が変化したとき
390
+ %block{:type => "#{category}_on_sensor_change"}
@@ -1,3 +1,3 @@
1
1
  module SmalrubyEditor
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
@@ -56,7 +56,7 @@ Gem::Specification.new do |spec|
56
56
 
57
57
  runtime_dependencies =
58
58
  [
59
- ['rails', '4.0.2'],
59
+ ['rails', '4.0.3'],
60
60
  ['sqlite3'],
61
61
  ['sass-rails', '~> 4.0.0'],
62
62
  ['uglifier', '>= 1.3.0'],
@@ -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
- %block{:type => "control_loop", :x => "0", :y => "0"}
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
- loop do
19
-
20
- end
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
- %block{:type => "control_loop", :x => "0", :y => "0"}
30
- %statement{:name => "DO"}
31
- %block{:type => "ruby_statement", :x => "0", :y => "0"}
32
- %field{:name => "STATEMENT"}<
33
- p self
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
- require "smalruby"
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
- loop do
42
- p self
43
- end
85
+ ならば テキストエディタのプログラムは以下を含むこと:
86
+ """
87
+ car1.on(:start) do
88
+ loop do
89
+ p self
90
+ end
91
+ end
44
92
 
45
- """
93
+ """
@@ -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
@@ -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
4
+ version: 0.1.5
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-02-18 00:00:00.000000000 Z
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.2
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.2
26
+ version: 4.0.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sqlite3
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -346,7 +346,6 @@ files:
346
346
  - app/assets/images/.keep
347
347
  - app/assets/images/favicon.ico
348
348
  - app/assets/javascripts/application.js
349
- - app/assets/javascripts/block_mode.js.coffee.erb
350
349
  - app/assets/javascripts/blocks/blockly.js.coffee.erb
351
350
  - app/assets/javascripts/blocks/character.js.coffee.erb
352
351
  - app/assets/javascripts/blocks/control.js.coffee.erb
@@ -585,10 +584,10 @@ files:
585
584
  - vendor/assets/javascripts/blockly/msg/js/ja.js
586
585
  - vendor/assets/javascripts/jquery.blockUI.js
587
586
  - vendor/assets/stylesheets/.keep
588
- - public/assets/application-0e1a6c238c0cc501b29746e5db35b5a1.css
589
- - public/assets/application-0e1a6c238c0cc501b29746e5db35b5a1.css.gz
590
- - public/assets/application-735e172a0df828da16d22f5d3c26671f.js
591
- - public/assets/application-735e172a0df828da16d22f5d3c26671f.js.gz
587
+ - public/assets/application-0047adbc0fb7a529ef7a41b5e0e7d097.js
588
+ - public/assets/application-0047adbc0fb7a529ef7a41b5e0e7d097.js.gz
589
+ - public/assets/application-64a390efe879c386a5950515064f062d.css
590
+ - public/assets/application-64a390efe879c386a5950515064f062d.css.gz
592
591
  - public/assets/default-5d1886100d7c8961e9962bbc4bb0c714.xml
593
592
  - public/assets/favicon-a37c90b368fd8ed436cb8f9e9396465c.ico
594
593
  - public/assets/jquery-ui/animated-overlay-c48c87b7a95316f4698484e3b85ee4aa.gif
@@ -606,7 +605,7 @@ files:
606
605
  - public/assets/jquery-ui/ui-icons_888888_256x240-57c441f87c4289a5372823f506c1182d.png
607
606
  - public/assets/jquery-ui/ui-icons_cd0a0a_256x240-261647ac915575f3981ded254ae8d43e.png
608
607
  - public/assets/loading-e8e6dd7833131c92a6c3b9c8ccc6a6ac.gif
609
- - public/assets/manifest-1f254fa92a71ba4faad0f99136daeed8.json
608
+ - public/assets/manifest-332a5a1668194028b55103e0ea45c054.json
610
609
  - public/assets/progressbar-82023a146fba2a0f6d925629ed2b09c5.gif
611
610
  - public/assets/rgb_led_anode-91225bef2a8b97f1cefee862a0619b91.xml
612
611
  homepage: https://github.com/smalruby/smalruby-editor
@@ -1,10 +0,0 @@
1
- $ ->
2
- Blockly.HSV_SATURATION = 1.0
3
- Blockly.HSV_VALUE = 0.8
4
-
5
- Blockly.inject document.getElementById('blockly-div'),
6
- path: '/blockly/'
7
- toolbox: document.getElementById('toolbox')
8
- trashcan: true
9
-
10
- Blockly.Toolbox.tree_.expandAll()