smalruby-editor 0.1.18 → 0.1.19
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 +1 -0
- data/app/assets/javascripts/blocks/blockly.js.coffee.erb +1 -1
- data/app/assets/javascripts/blocks/motion.js.coffee.erb +22 -0
- data/app/assets/javascripts/fix_blockly.js +16 -0
- data/app/assets/stylesheets/toolbox.css.scss.erb +1 -0
- data/app/controllers/source_codes_controller.rb +10 -5
- data/app/models/concerns/ruby_to_block/block/motion_turn_xy.rb +14 -0
- data/app/views/editor/_toolbox.html.haml +3 -0
- data/demos/pong.rb.xml +377 -0
- data/lib/smalruby_editor/version.rb +1 -1
- data/public/assets/{application-842ac8f5aa3fcc87bbb0e8b3a0fef5d7.js → application-acf953339e4b5c31b5d6060375b13a44.js} +36 -0
- data/public/assets/{application-842ac8f5aa3fcc87bbb0e8b3a0fef5d7.js.gz → application-acf953339e4b5c31b5d6060375b13a44.js.gz} +0 -0
- data/public/assets/{application-b31ceba36a60591e488903231db4cb37.css → application-e9d089df8f23954c49647ab7af8481dc.css} +13 -4
- data/public/assets/{application-b31ceba36a60591e488903231db4cb37.css.gz → application-e9d089df8f23954c49647ab7af8481dc.css.gz} +0 -0
- data/public/assets/manifest-332a5a1668194028b55103e0ea45c054.json +1 -1
- data/smalruby-editor.gemspec +1 -1
- data/spec/models/concerns/ruby_to_block/block/motion_turn_xy_spec.rb +76 -0
- metadata +13 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d087dfab3de1065ee3040747f53713dc2ef207c
|
4
|
+
data.tar.gz: 189e16f336d05a06abc08cef8f26b8fbadabedff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5eebcd0351f76e5dff3339bd949f63c90bf4546ad699c9a54672d3608672a4b1197917e9f0c267876dc1756a4c3e90518a20e7ab0fa182a3124d1ff2b279707c
|
7
|
+
data.tar.gz: a4a4d17f52774a5d9706871724bced764822e22890d1e8c42678eef41ab0db47ecc6b488f41234f9752313b23d4f85689bcc052b224172a4d988bdfde3aecf63
|
@@ -31,4 +31,4 @@ Blockly.Ruby['<%= n %>'] = (block) ->
|
|
31
31
|
Blockly.Ruby['<%= n %>'] = (block) ->
|
32
32
|
val = Blockly.Ruby.valueToCode(block, 'VALUE', Blockly.Ruby.ORDER_NONE) || '0'
|
33
33
|
name = Blockly.Ruby.variableDB_.getName(block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE)
|
34
|
-
name + ' = ' + val + '\n'
|
34
|
+
name + ' = ' + val + '\n'
|
@@ -247,6 +247,28 @@ Blockly.Blocks['<%= n %>'] =
|
|
247
247
|
Blockly.Ruby['<%= n %>'] = (block) ->
|
248
248
|
Blockly.Ruby.characterMethodCall_('turn')
|
249
249
|
|
250
|
+
# [▼水平(X)]方向に跳ね返る
|
251
|
+
<% n = "#{category}_turn_xy" %>
|
252
|
+
Blockly.Blocks['<%= n %>'] =
|
253
|
+
init: ()->
|
254
|
+
dropdown = [
|
255
|
+
['水平(X)', 'x'],
|
256
|
+
['垂直(Y)', 'y'],
|
257
|
+
]
|
258
|
+
|
259
|
+
@setHelpUrl('')
|
260
|
+
@setColour(<%= color %>)
|
261
|
+
@appendDummyInput()
|
262
|
+
.appendField(new Blockly.FieldDropdown(dropdown), 'XY')
|
263
|
+
.appendField('方向に跳ね返る')
|
264
|
+
@setPreviousStatement(true)
|
265
|
+
@setNextStatement(true)
|
266
|
+
@setTooltip('')
|
267
|
+
|
268
|
+
Blockly.Ruby['<%= n %>'] = (block) ->
|
269
|
+
xy = @getFieldValue('XY')
|
270
|
+
Blockly.Ruby.characterMethodCall_("turn_#{xy}")
|
271
|
+
|
250
272
|
# 回転方法を[▼]にする
|
251
273
|
<% n = "#{category}_set_rotation_style" %>
|
252
274
|
Blockly.Blocks['<%= n %>'] =
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Blockly.Names.prototype.safeName_ = function(name) {
|
2
|
+
if (!name) {
|
3
|
+
name = 'unnamed';
|
4
|
+
} else {
|
5
|
+
// Unfortunately names in non-latin characters will look like
|
6
|
+
// _E9_9F_B3_E4_B9_90 which is pretty meaningless.
|
7
|
+
// HACK: Rubyでは日本語の変数名を許可しているためencodeURIを行わない。
|
8
|
+
// また、使えない記号を置換する。
|
9
|
+
name = name.replace(/[ !"#$%&'()=\-~^\\|`@{\[+;*:}\]<>,.?\/]/g, '_')
|
10
|
+
// Most languages don't allow names with leading numbers.
|
11
|
+
if ('0123456789'.indexOf(name[0]) != -1) {
|
12
|
+
name = '_' + name;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
return name;
|
16
|
+
};
|
@@ -27,16 +27,21 @@ class SourceCodesController < ApplicationController
|
|
27
27
|
filename: 'car_chase.rb',
|
28
28
|
imageUrl: '/smalruby/assets/car2.png',
|
29
29
|
}
|
30
|
-
res[:demoPrograms] << {
|
31
|
-
title: 'ライトをぴかっとさせるでよ',
|
32
|
-
filename: 'hardware_led.rb',
|
33
|
-
imageUrl: '/smalruby/assets/frog1.png',
|
34
|
-
}
|
35
30
|
res[:demoPrograms] << {
|
36
31
|
title: 'クリックスターだにゃ~',
|
37
32
|
filename: 'star.rb',
|
38
33
|
imageUrl: '/smalruby/assets/cat1.png',
|
39
34
|
}
|
35
|
+
res[:demoPrograms] << {
|
36
|
+
title: 'ピンポンゲーム',
|
37
|
+
filename: 'pong.rb',
|
38
|
+
imageUrl: '/smalruby/assets/cat2.png',
|
39
|
+
}
|
40
|
+
res[:demoPrograms] << {
|
41
|
+
title: 'ライトをぴかっとさせるでよ',
|
42
|
+
filename: 'hardware_led.rb',
|
43
|
+
imageUrl: '/smalruby/assets/frog1.png',
|
44
|
+
}
|
40
45
|
|
41
46
|
render json: res
|
42
47
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
module RubyToBlock
|
3
|
+
module Block
|
4
|
+
class MotionTurnXy < CharacterMethodCall
|
5
|
+
blocknize '^\s*' + CHAR_RE + 'turn_([xy])\s*$', statement: true
|
6
|
+
|
7
|
+
def self.process_match_data(md, context)
|
8
|
+
md2 = regexp.match(md[type])
|
9
|
+
add_character_method_call_block(context, md2[1], new(fields: { XY: md2[2] }))
|
10
|
+
true
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/demos/pong.rb.xml
ADDED
@@ -0,0 +1,377 @@
|
|
1
|
+
<xml xmlns="http://www.w3.org/1999/xhtml">
|
2
|
+
<character name="cat1" angle="0" costumes="cat2.png" y="0" x="0" rotation_style="left_right" />
|
3
|
+
<character name="frog1" angle="180" costumes="frog1.png" y="0" x="544" rotation_style="left_right" />
|
4
|
+
<character name="ball1" angle="225" costumes="ball6.png" y="184" x="304" rotation_style="left_right" />
|
5
|
+
<block type="variables_set" y="-180" x="-25" inline="false">
|
6
|
+
<field name="VAR">プレイ中</field>
|
7
|
+
<value name="VALUE">
|
8
|
+
<block type="operators_true" />
|
9
|
+
</value>
|
10
|
+
<next>
|
11
|
+
<block type="variables_set" inline="false">
|
12
|
+
<field name="VAR">回数</field>
|
13
|
+
<value name="VALUE">
|
14
|
+
<block type="math_number">
|
15
|
+
<field name="NUM">0</field>
|
16
|
+
</block>
|
17
|
+
</value>
|
18
|
+
</block>
|
19
|
+
</next>
|
20
|
+
</block>
|
21
|
+
<block type="character_new" y="-102" x="-19">
|
22
|
+
<field name="NAME">cat1</field>
|
23
|
+
<statement name="DO">
|
24
|
+
<block type="events_on_start">
|
25
|
+
<statement name="DO">
|
26
|
+
<block type="control_loop">
|
27
|
+
<statement name="DO">
|
28
|
+
<block type="looks_say" inline="true">
|
29
|
+
<value name="TEXT">
|
30
|
+
<block type="variables_get">
|
31
|
+
<field name="VAR">回数</field>
|
32
|
+
</block>
|
33
|
+
</value>
|
34
|
+
</block>
|
35
|
+
</statement>
|
36
|
+
</block>
|
37
|
+
</statement>
|
38
|
+
<next>
|
39
|
+
<block type="events_on_key_push_or_down">
|
40
|
+
<field name="KEY">K_UP</field>
|
41
|
+
<field name="POD">down</field>
|
42
|
+
<statement name="DO">
|
43
|
+
<block type="motion_change_y_by" inline="true">
|
44
|
+
<value name="Y">
|
45
|
+
<block type="math_number">
|
46
|
+
<field name="NUM">-20</field>
|
47
|
+
</block>
|
48
|
+
</value>
|
49
|
+
</block>
|
50
|
+
</statement>
|
51
|
+
<next>
|
52
|
+
<block type="events_on_key_push_or_down">
|
53
|
+
<field name="KEY">K_DOWN</field>
|
54
|
+
<field name="POD">down</field>
|
55
|
+
<statement name="DO">
|
56
|
+
<block type="motion_change_y_by" inline="true">
|
57
|
+
<value name="Y">
|
58
|
+
<block type="math_number">
|
59
|
+
<field name="NUM">20</field>
|
60
|
+
</block>
|
61
|
+
</value>
|
62
|
+
</block>
|
63
|
+
</statement>
|
64
|
+
</block>
|
65
|
+
</next>
|
66
|
+
</block>
|
67
|
+
</next>
|
68
|
+
</block>
|
69
|
+
</statement>
|
70
|
+
</block>
|
71
|
+
<block type="character_new" y="-100" x="591">
|
72
|
+
<field name="NAME">ball1</field>
|
73
|
+
<statement name="DO">
|
74
|
+
<block type="events_on_start">
|
75
|
+
<statement name="DO">
|
76
|
+
<block type="control_loop">
|
77
|
+
<statement name="DO">
|
78
|
+
<block type="motion_move" inline="true">
|
79
|
+
<value name="STEP">
|
80
|
+
<block type="operators_add" inline="true">
|
81
|
+
<value name="A">
|
82
|
+
<block type="math_number">
|
83
|
+
<field name="NUM">10</field>
|
84
|
+
</block>
|
85
|
+
</value>
|
86
|
+
<value name="B">
|
87
|
+
<block type="variables_get">
|
88
|
+
<field name="VAR">回数</field>
|
89
|
+
</block>
|
90
|
+
</value>
|
91
|
+
</block>
|
92
|
+
</value>
|
93
|
+
<next>
|
94
|
+
<block type="motion_turn_if_reach_wall">
|
95
|
+
<next>
|
96
|
+
<block type="control_if" inline="true">
|
97
|
+
<value name="COND">
|
98
|
+
<block type="operators_compare_gte" inline="true">
|
99
|
+
<value name="A">
|
100
|
+
<block type="sensing_character_property">
|
101
|
+
<field name="CHAR">ball1</field>
|
102
|
+
<field name="PROPERTY">x</field>
|
103
|
+
</block>
|
104
|
+
</value>
|
105
|
+
<value name="B">
|
106
|
+
<block type="math_number">
|
107
|
+
<field name="NUM">608</field>
|
108
|
+
</block>
|
109
|
+
</value>
|
110
|
+
</block>
|
111
|
+
</value>
|
112
|
+
<statement name="THEN">
|
113
|
+
<block type="looks_say" inline="true">
|
114
|
+
<value name="TEXT">
|
115
|
+
<block type="text">
|
116
|
+
<field name="TEXT">あなたの勝ち!</field>
|
117
|
+
</block>
|
118
|
+
</value>
|
119
|
+
<next>
|
120
|
+
<block type="variables_set" inline="false">
|
121
|
+
<field name="VAR">プレイ中</field>
|
122
|
+
<value name="VALUE">
|
123
|
+
<block type="operators_false" />
|
124
|
+
</value>
|
125
|
+
</block>
|
126
|
+
</next>
|
127
|
+
</block>
|
128
|
+
</statement>
|
129
|
+
<next>
|
130
|
+
<block type="control_if" inline="true">
|
131
|
+
<value name="COND">
|
132
|
+
<block type="operators_compare_lte" inline="true">
|
133
|
+
<value name="A">
|
134
|
+
<block type="sensing_character_property">
|
135
|
+
<field name="CHAR">ball1</field>
|
136
|
+
<field name="PROPERTY">x</field>
|
137
|
+
</block>
|
138
|
+
</value>
|
139
|
+
<value name="B">
|
140
|
+
<block type="math_number">
|
141
|
+
<field name="NUM">0</field>
|
142
|
+
</block>
|
143
|
+
</value>
|
144
|
+
</block>
|
145
|
+
</value>
|
146
|
+
<statement name="THEN">
|
147
|
+
<block type="looks_say" inline="true">
|
148
|
+
<value name="TEXT">
|
149
|
+
<block type="text">
|
150
|
+
<field name="TEXT">あなたの負け!</field>
|
151
|
+
</block>
|
152
|
+
</value>
|
153
|
+
<next>
|
154
|
+
<block type="variables_set" inline="false">
|
155
|
+
<field name="VAR">プレイ中</field>
|
156
|
+
<value name="VALUE">
|
157
|
+
<block type="operators_false" />
|
158
|
+
</value>
|
159
|
+
</block>
|
160
|
+
</next>
|
161
|
+
</block>
|
162
|
+
</statement>
|
163
|
+
<next>
|
164
|
+
<block type="control_if" inline="true">
|
165
|
+
<value name="COND">
|
166
|
+
<block type="operators_compare_eq" inline="true">
|
167
|
+
<value name="A">
|
168
|
+
<block type="variables_get">
|
169
|
+
<field name="VAR">プレイ中</field>
|
170
|
+
</block>
|
171
|
+
</value>
|
172
|
+
<value name="B">
|
173
|
+
<block type="operators_false" />
|
174
|
+
</value>
|
175
|
+
</block>
|
176
|
+
</value>
|
177
|
+
<statement name="THEN">
|
178
|
+
<block type="control_break" />
|
179
|
+
</statement>
|
180
|
+
</block>
|
181
|
+
</next>
|
182
|
+
</block>
|
183
|
+
</next>
|
184
|
+
</block>
|
185
|
+
</next>
|
186
|
+
</block>
|
187
|
+
</next>
|
188
|
+
</block>
|
189
|
+
</statement>
|
190
|
+
</block>
|
191
|
+
</statement>
|
192
|
+
<next>
|
193
|
+
<block type="events_on_hit">
|
194
|
+
<field name="CHAR">cat1</field>
|
195
|
+
<statement name="DO">
|
196
|
+
<block type="variables_set" inline="false">
|
197
|
+
<field name="VAR">回数</field>
|
198
|
+
<value name="VALUE">
|
199
|
+
<block type="operators_add" inline="true">
|
200
|
+
<value name="A">
|
201
|
+
<block type="variables_get">
|
202
|
+
<field name="VAR">回数</field>
|
203
|
+
</block>
|
204
|
+
</value>
|
205
|
+
<value name="B">
|
206
|
+
<block type="math_number">
|
207
|
+
<field name="NUM">1</field>
|
208
|
+
</block>
|
209
|
+
</value>
|
210
|
+
</block>
|
211
|
+
</value>
|
212
|
+
<next>
|
213
|
+
<block type="motion_turn_xy">
|
214
|
+
<field name="XY">x</field>
|
215
|
+
<next>
|
216
|
+
<block type="control_if" inline="true">
|
217
|
+
<value name="COND">
|
218
|
+
<block type="sensing_input_key_push_or_down">
|
219
|
+
<field name="KEY">K_UP</field>
|
220
|
+
<field name="POD">down</field>
|
221
|
+
</block>
|
222
|
+
</value>
|
223
|
+
<statement name="THEN">
|
224
|
+
<block type="motion_rotate_left" inline="true">
|
225
|
+
<value name="ANGLE">
|
226
|
+
<block type="math_number">
|
227
|
+
<field name="NUM">5</field>
|
228
|
+
</block>
|
229
|
+
</value>
|
230
|
+
</block>
|
231
|
+
</statement>
|
232
|
+
<next>
|
233
|
+
<block type="control_if" inline="true">
|
234
|
+
<value name="COND">
|
235
|
+
<block type="sensing_input_key_push_or_down">
|
236
|
+
<field name="KEY">K_DOWN</field>
|
237
|
+
<field name="POD">down</field>
|
238
|
+
</block>
|
239
|
+
</value>
|
240
|
+
<statement name="THEN">
|
241
|
+
<block type="motion_rotate_right" inline="true">
|
242
|
+
<value name="ANGLE">
|
243
|
+
<block type="math_number">
|
244
|
+
<field name="NUM">5</field>
|
245
|
+
</block>
|
246
|
+
</value>
|
247
|
+
</block>
|
248
|
+
</statement>
|
249
|
+
<next>
|
250
|
+
<block type="motion_set_x" inline="true">
|
251
|
+
<value name="X">
|
252
|
+
<block type="math_number">
|
253
|
+
<field name="NUM">100</field>
|
254
|
+
</block>
|
255
|
+
</value>
|
256
|
+
</block>
|
257
|
+
</next>
|
258
|
+
</block>
|
259
|
+
</next>
|
260
|
+
</block>
|
261
|
+
</next>
|
262
|
+
</block>
|
263
|
+
</next>
|
264
|
+
</block>
|
265
|
+
</statement>
|
266
|
+
<next>
|
267
|
+
<block type="events_on_hit">
|
268
|
+
<field name="CHAR">frog1</field>
|
269
|
+
<statement name="DO">
|
270
|
+
<block type="variables_set" inline="false">
|
271
|
+
<field name="VAR">回数</field>
|
272
|
+
<value name="VALUE">
|
273
|
+
<block type="operators_add" inline="true">
|
274
|
+
<value name="A">
|
275
|
+
<block type="variables_get">
|
276
|
+
<field name="VAR">回数</field>
|
277
|
+
</block>
|
278
|
+
</value>
|
279
|
+
<value name="B">
|
280
|
+
<block type="math_number">
|
281
|
+
<field name="NUM">1</field>
|
282
|
+
</block>
|
283
|
+
</value>
|
284
|
+
</block>
|
285
|
+
</value>
|
286
|
+
<next>
|
287
|
+
<block type="motion_turn_xy">
|
288
|
+
<field name="XY">x</field>
|
289
|
+
<next>
|
290
|
+
<block type="motion_set_x" inline="true">
|
291
|
+
<value name="X">
|
292
|
+
<block type="math_number">
|
293
|
+
<field name="NUM">510</field>
|
294
|
+
</block>
|
295
|
+
</value>
|
296
|
+
</block>
|
297
|
+
</next>
|
298
|
+
</block>
|
299
|
+
</next>
|
300
|
+
</block>
|
301
|
+
</statement>
|
302
|
+
</block>
|
303
|
+
</next>
|
304
|
+
</block>
|
305
|
+
</next>
|
306
|
+
</block>
|
307
|
+
</statement>
|
308
|
+
</block>
|
309
|
+
<block type="character_new" y="271" x="-15">
|
310
|
+
<field name="NAME">frog1</field>
|
311
|
+
<statement name="DO">
|
312
|
+
<block type="events_on_start">
|
313
|
+
<statement name="DO">
|
314
|
+
<block type="control_loop">
|
315
|
+
<statement name="DO">
|
316
|
+
<block type="control_if" inline="true">
|
317
|
+
<value name="COND">
|
318
|
+
<block type="operators_compare_eq" inline="true">
|
319
|
+
<value name="A">
|
320
|
+
<block type="variables_get">
|
321
|
+
<field name="VAR">プレイ中</field>
|
322
|
+
</block>
|
323
|
+
</value>
|
324
|
+
<value name="B">
|
325
|
+
<block type="operators_false" />
|
326
|
+
</value>
|
327
|
+
</block>
|
328
|
+
</value>
|
329
|
+
<statement name="THEN">
|
330
|
+
<block type="control_break" />
|
331
|
+
</statement>
|
332
|
+
<next>
|
333
|
+
<block type="control_if_else" inline="true">
|
334
|
+
<value name="COND">
|
335
|
+
<block type="operators_compare_gte" inline="true">
|
336
|
+
<value name="A">
|
337
|
+
<block type="sensing_character_property">
|
338
|
+
<field name="CHAR">frog1</field>
|
339
|
+
<field name="PROPERTY">y</field>
|
340
|
+
</block>
|
341
|
+
</value>
|
342
|
+
<value name="B">
|
343
|
+
<block type="sensing_character_property">
|
344
|
+
<field name="CHAR">ball1</field>
|
345
|
+
<field name="PROPERTY">y</field>
|
346
|
+
</block>
|
347
|
+
</value>
|
348
|
+
</block>
|
349
|
+
</value>
|
350
|
+
<statement name="THEN">
|
351
|
+
<block type="motion_change_y_by" inline="true">
|
352
|
+
<value name="Y">
|
353
|
+
<block type="math_number">
|
354
|
+
<field name="NUM">-15</field>
|
355
|
+
</block>
|
356
|
+
</value>
|
357
|
+
</block>
|
358
|
+
</statement>
|
359
|
+
<statement name="ELSE">
|
360
|
+
<block type="motion_change_y_by" inline="true">
|
361
|
+
<value name="Y">
|
362
|
+
<block type="math_number">
|
363
|
+
<field name="NUM">15</field>
|
364
|
+
</block>
|
365
|
+
</value>
|
366
|
+
</block>
|
367
|
+
</statement>
|
368
|
+
</block>
|
369
|
+
</next>
|
370
|
+
</block>
|
371
|
+
</statement>
|
372
|
+
</block>
|
373
|
+
</statement>
|
374
|
+
</block>
|
375
|
+
</statement>
|
376
|
+
</block>
|
377
|
+
</xml>
|
@@ -9131,6 +9131,22 @@ Blockly.getMainWorkspaceMetrics_=function(){var a=Blockly.svgSize();a.width-=Blo
|
|
9131
9131
|
viewWidth:a.width,contentHeight:c-g,contentWidth:b-f,viewTop:-Blockly.mainWorkspace.scrollY,viewLeft:-Blockly.mainWorkspace.scrollX,contentTop:g,contentLeft:f,absoluteTop:0,absoluteLeft:Blockly.RTL?0:Blockly.Toolbox.width}};
|
9132
9132
|
Blockly.setMainWorkspaceMetrics_=function(a){if(!Blockly.mainWorkspace.scrollbar)throw"Attempt to set main workspace scroll without scrollbars.";var b=Blockly.getMainWorkspaceMetrics_();goog.isNumber(a.x)&&(Blockly.mainWorkspace.scrollX=-b.contentWidth*a.x-b.contentLeft);goog.isNumber(a.y)&&(Blockly.mainWorkspace.scrollY=-b.contentHeight*a.y-b.contentTop);a="translate("+(Blockly.mainWorkspace.scrollX+b.absoluteLeft)+","+(Blockly.mainWorkspace.scrollY+b.absoluteTop)+")";Blockly.mainWorkspace.getCanvas().setAttribute("transform",
|
9133
9133
|
a);Blockly.mainWorkspace.getBubbleCanvas().setAttribute("transform",a)};Blockly.addChangeListener=function(a){return Blockly.bindEvent_(Blockly.mainWorkspace.getCanvas(),"blocklyWorkspaceChange",null,a)};Blockly.removeChangeListener=function(a){Blockly.unbindEvent_(a)};Blockly.getMainWorkspace=function(){return Blockly.mainWorkspace};window.Blockly=Blockly;Blockly.getMainWorkspace=Blockly.getMainWorkspace;Blockly.addChangeListener=Blockly.addChangeListener;Blockly.removeChangeListener=Blockly.removeChangeListener;
|
9134
|
+
Blockly.Names.prototype.safeName_ = function(name) {
|
9135
|
+
if (!name) {
|
9136
|
+
name = 'unnamed';
|
9137
|
+
} else {
|
9138
|
+
// Unfortunately names in non-latin characters will look like
|
9139
|
+
// _E9_9F_B3_E4_B9_90 which is pretty meaningless.
|
9140
|
+
// HACK: Rubyでは日本語の変数名を許可しているためencodeURIを行わない。
|
9141
|
+
// また、使えない記号を置換する。
|
9142
|
+
name = name.replace(/[ !"#$%&'()=\-~^\\|`@{\[+;*:}\]<>,.?\/]/g, '_')
|
9143
|
+
// Most languages don't allow names with leading numbers.
|
9144
|
+
if ('0123456789'.indexOf(name[0]) != -1) {
|
9145
|
+
name = '_' + name;
|
9146
|
+
}
|
9147
|
+
}
|
9148
|
+
return name;
|
9149
|
+
};
|
9134
9150
|
// Do not edit this file; automatically generated by build.py.
|
9135
9151
|
"use strict";
|
9136
9152
|
|
@@ -15737,6 +15753,25 @@ case end next return until\
|
|
15737
15753
|
return Blockly.Ruby.characterMethodCall_('turn');
|
15738
15754
|
};
|
15739
15755
|
|
15756
|
+
Blockly.Blocks['motion_turn_xy'] = {
|
15757
|
+
init: function() {
|
15758
|
+
var dropdown;
|
15759
|
+
dropdown = [['水平(X)', 'x'], ['垂直(Y)', 'y']];
|
15760
|
+
this.setHelpUrl('');
|
15761
|
+
this.setColour(225);
|
15762
|
+
this.appendDummyInput().appendField(new Blockly.FieldDropdown(dropdown), 'XY').appendField('方向に跳ね返る');
|
15763
|
+
this.setPreviousStatement(true);
|
15764
|
+
this.setNextStatement(true);
|
15765
|
+
return this.setTooltip('');
|
15766
|
+
}
|
15767
|
+
};
|
15768
|
+
|
15769
|
+
Blockly.Ruby['motion_turn_xy'] = function(block) {
|
15770
|
+
var xy;
|
15771
|
+
xy = this.getFieldValue('XY');
|
15772
|
+
return Blockly.Ruby.characterMethodCall_("turn_" + xy);
|
15773
|
+
};
|
15774
|
+
|
15740
15775
|
Blockly.Blocks['motion_set_rotation_style'] = {
|
15741
15776
|
init: function() {
|
15742
15777
|
var dropdown;
|
@@ -16605,6 +16640,7 @@ case end next return until\
|
|
16605
16640
|
|
16606
16641
|
|
16607
16642
|
|
16643
|
+
|
16608
16644
|
|
16609
16645
|
|
16610
16646
|
;
|
Binary file
|
@@ -5146,20 +5146,20 @@ body {
|
|
5146
5146
|
#\:e .blocklyTreeRow {
|
5147
5147
|
padding-top: 0.25em;
|
5148
5148
|
padding-bottom: 0.25em;
|
5149
|
-
border-left: 0.75em solid #
|
5149
|
+
border-left: 0.75em solid #cc0066; }
|
5150
5150
|
#\:e .blocklyTreeRow.blocklyTreeSelected {
|
5151
5151
|
color: white;
|
5152
5152
|
font-weight: bold;
|
5153
|
-
background-color: #
|
5153
|
+
background-color: #ff0080 !important; }
|
5154
5154
|
|
5155
5155
|
#\:f .blocklyTreeRow {
|
5156
5156
|
padding-top: 0.25em;
|
5157
5157
|
padding-bottom: 0.25em;
|
5158
|
-
border-left: 0.75em solid #
|
5158
|
+
border-left: 0.75em solid #cc0044; }
|
5159
5159
|
#\:f .blocklyTreeRow.blocklyTreeSelected {
|
5160
5160
|
color: white;
|
5161
5161
|
font-weight: bold;
|
5162
|
-
background-color: #
|
5162
|
+
background-color: #ff0055 !important; }
|
5163
5163
|
|
5164
5164
|
#\:g .blocklyTreeRow {
|
5165
5165
|
padding-top: 0.25em;
|
@@ -5205,3 +5205,12 @@ body {
|
|
5205
5205
|
color: white;
|
5206
5206
|
font-weight: bold;
|
5207
5207
|
background-color: #0088ff !important; }
|
5208
|
+
|
5209
|
+
#\:l .blocklyTreeRow {
|
5210
|
+
padding-top: 0.25em;
|
5211
|
+
padding-bottom: 0.25em;
|
5212
|
+
border-left: 0.75em solid #006dcc; }
|
5213
|
+
#\:l .blocklyTreeRow.blocklyTreeSelected {
|
5214
|
+
color: white;
|
5215
|
+
font-weight: bold;
|
5216
|
+
background-color: #0088ff !important; }
|
Binary file
|
@@ -1 +1 @@
|
|
1
|
-
{"files":{"default-5d1886100d7c8961e9962bbc4bb0c714.xml":{"logical_path":"default.xml","mtime":"2014-02-14T01:28:48+09:00","size":5017,"digest":"5d1886100d7c8961e9962bbc4bb0c714"},"rgb_led_anode-91225bef2a8b97f1cefee862a0619b91.xml":{"logical_path":"rgb_led_anode.xml","mtime":"2014-02-11T14:17:03+09:00","size":3805,"digest":"91225bef2a8b97f1cefee862a0619b91"},"favicon-a37c90b368fd8ed436cb8f9e9396465c.ico":{"logical_path":"favicon.ico","mtime":"2014-01-21T03:18:02+09:00","size":5430,"digest":"a37c90b368fd8ed436cb8f9e9396465c"},"application-735e172a0df828da16d22f5d3c26671f.js":{"logical_path":"application.js","mtime":"2014-02-19T18:22:09+09:00","size":1440213,"digest":"735e172a0df828da16d22f5d3c26671f"},"application-64a390efe879c386a5950515064f062d.css":{"logical_path":"application.css","mtime":"2014-02-19T14:32:55+09:00","size":119186,"digest":"64a390efe879c386a5950515064f062d"},"jquery-ui/animated-overlay-c48c87b7a95316f4698484e3b85ee4aa.gif":{"logical_path":"jquery-ui/animated-overlay.gif","mtime":"2014-02-04T09:35:48+09:00","size":1738,"digest":"c48c87b7a95316f4698484e3b85ee4aa"},"jquery-ui/ui-bg_flat_0_aaaaaa_40x100-58b63faadd031ca3db096dfdffd90224.png":{"logical_path":"jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png","mtime":"2014-02-04T09:35:48+09:00","size":180,"digest":"58b63faadd031ca3db096dfdffd90224"},"jquery-ui/ui-bg_flat_75_ffffff_40x100-937399e8b369d64aa075d13a82c00112.png":{"logical_path":"jquery-ui/ui-bg_flat_75_ffffff_40x100.png","mtime":"2014-02-04T09:35:48+09:00","size":178,"digest":"937399e8b369d64aa075d13a82c00112"},"jquery-ui/ui-bg_glass_55_fbf9ee_1x400-a8c503e0f42a081a92a473b0d30ac6cf.png":{"logical_path":"jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png","mtime":"2014-02-04T09:35:48+09:00","size":120,"digest":"a8c503e0f42a081a92a473b0d30ac6cf"},"jquery-ui/ui-bg_glass_65_ffffff_1x400-ddcbfe385abc3947937caa0b44e2f5d2.png":{"logical_path":"jquery-ui/ui-bg_glass_65_ffffff_1x400.png","mtime":"2014-02-04T09:35:48+09:00","size":105,"digest":"ddcbfe385abc3947937caa0b44e2f5d2"},"jquery-ui/ui-bg_glass_75_dadada_1x400-14dd4a9ad1f21d8c4c7e673ddfb0806f.png":{"logical_path":"jquery-ui/ui-bg_glass_75_dadada_1x400.png","mtime":"2014-02-04T09:35:48+09:00","size":111,"digest":"14dd4a9ad1f21d8c4c7e673ddfb0806f"},"jquery-ui/ui-bg_glass_75_e6e6e6_1x400-a43dfabb23b0a987b567b282bad68346.png":{"logical_path":"jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png","mtime":"2014-02-04T09:35:48+09:00","size":110,"digest":"a43dfabb23b0a987b567b282bad68346"},"jquery-ui/ui-bg_glass_95_fef1ec_1x400-31c0c791a756266043ee8ea61dacb36a.png":{"logical_path":"jquery-ui/ui-bg_glass_95_fef1ec_1x400.png","mtime":"2014-02-04T09:35:48+09:00","size":119,"digest":"31c0c791a756266043ee8ea61dacb36a"},"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-33edbdb0d2fcebd2a65c2041a28533da.png":{"logical_path":"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png","mtime":"2014-02-04T09:35:48+09:00","size":101,"digest":"33edbdb0d2fcebd2a65c2041a28533da"},"jquery-ui/ui-icons_222222_256x240-890385424135de1513f00cbecfb7f990.png":{"logical_path":"jquery-ui/ui-icons_222222_256x240.png","mtime":"2014-02-04T09:35:48+09:00","size":4369,"digest":"890385424135de1513f00cbecfb7f990"},"jquery-ui/ui-icons_2e83ff_256x240-824705ca4aa2610434a358fe4018c9c6.png":{"logical_path":"jquery-ui/ui-icons_2e83ff_256x240.png","mtime":"2014-02-04T09:35:48+09:00","size":4369,"digest":"824705ca4aa2610434a358fe4018c9c6"},"jquery-ui/ui-icons_454545_256x240-254e054f6df453dfac49efbc8b78f79d.png":{"logical_path":"jquery-ui/ui-icons_454545_256x240.png","mtime":"2014-02-04T09:35:48+09:00","size":4369,"digest":"254e054f6df453dfac49efbc8b78f79d"},"jquery-ui/ui-icons_888888_256x240-57c441f87c4289a5372823f506c1182d.png":{"logical_path":"jquery-ui/ui-icons_888888_256x240.png","mtime":"2014-02-04T09:35:48+09:00","size":4369,"digest":"57c441f87c4289a5372823f506c1182d"},"jquery-ui/ui-icons_cd0a0a_256x240-261647ac915575f3981ded254ae8d43e.png":{"logical_path":"jquery-ui/ui-icons_cd0a0a_256x240.png","mtime":"2014-02-04T09:35:48+09:00","size":4369,"digest":"261647ac915575f3981ded254ae8d43e"},"loading-e8e6dd7833131c92a6c3b9c8ccc6a6ac.gif":{"logical_path":"loading.gif","mtime":"2014-01-03T14:44:55+09:00","size":3897,"digest":"e8e6dd7833131c92a6c3b9c8ccc6a6ac"},"progressbar-82023a146fba2a0f6d925629ed2b09c5.gif":{"logical_path":"progressbar.gif","mtime":"2014-01-03T14:44:55+09:00","size":3323,"digest":"82023a146fba2a0f6d925629ed2b09c5"},"application-0047adbc0fb7a529ef7a41b5e0e7d097.js":{"logical_path":"application.js","mtime":"2014-02-20T03:12:12+09:00","size":1441568,"digest":"0047adbc0fb7a529ef7a41b5e0e7d097"},"application-42aa660a3233c7738b7578d30ba040b3.js":{"logical_path":"application.js","mtime":"2014-02-22T15:25:11+09:00","size":1441708,"digest":"42aa660a3233c7738b7578d30ba040b3"},"application-66b65154e7b5dcfe67fa164db6fc5f51.js":{"logical_path":"application.js","mtime":"2014-02-23T21:53:43+09:00","size":1441898,"digest":"66b65154e7b5dcfe67fa164db6fc5f51"},"application-8bfffad1222d4e198f3c7ccc1cbd774f.js":{"logical_path":"application.js","mtime":"2014-02-27T01:28:32+09:00","size":1442504,"digest":"8bfffad1222d4e198f3c7ccc1cbd774f"},"application-4f747690ebc8ec4815ae36021fdb2c44.js":{"logical_path":"application.js","mtime":"2014-03-07T12:36:30+09:00","size":1447094,"digest":"4f747690ebc8ec4815ae36021fdb2c44"},"application-28b7bed56c5389dfa372e972c75b6676.css":{"logical_path":"application.css","mtime":"2014-03-07T10:27:39+09:00","size":119378,"digest":"28b7bed56c5389dfa372e972c75b6676"},"application-3ee566927dc437f1406e5e903da1baf5.js":{"logical_path":"application.js","mtime":"2014-04-30T00:15:32+09:00","size":1452218,"digest":"3ee566927dc437f1406e5e903da1baf5"},"application-5f1777e683ca5d3cf4e0f0374eab6fac.css":{"logical_path":"application.css","mtime":"2014-03-29T10:25:16+09:00","size":120345,"digest":"5f1777e683ca5d3cf4e0f0374eab6fac"},"application-53d651da3309caa498cc0ca6616dbead.css":{"logical_path":"application.css","mtime":"2014-05-06T14:59:20+09:00","size":118430,"digest":"53d651da3309caa498cc0ca6616dbead"},"application-0b3c70107ad81ea9fcda6d7d921bd8cf.js":{"logical_path":"application.js","mtime":"2014-04-30T02:04:36+09:00","size":1452582,"digest":"0b3c70107ad81ea9fcda6d7d921bd8cf"},"application-c2d6a82134037eb9a7f6c7d13d2657db.js":{"logical_path":"application.js","mtime":"2014-05-06T21:22:51+09:00","size":1455113,"digest":"c2d6a82134037eb9a7f6c7d13d2657db"},"application-669cbc2df60729c4b12d739af7595cc6.js":{"logical_path":"application.js","mtime":"2014-05-08T04:10:12+09:00","size":1455352,"digest":"669cbc2df60729c4b12d739af7595cc6"},"application-6579eaebb20aaacfc143d63c77bf4199.js":{"logical_path":"application.js","mtime":"2014-05-11T03:54:51+09:00","size":1455344,"digest":"6579eaebb20aaacfc143d63c77bf4199"},"application-f112e2e4edd69b09d5d1cb92c33144d6.js":{"logical_path":"application.js","mtime":"2014-05-15T23:54:56+09:00","size":1455344,"digest":"f112e2e4edd69b09d5d1cb92c33144d6"},"application-c8214e05b402c742494330b5e957eb38.js":{"logical_path":"application.js","mtime":"2014-05-16T02:08:20+09:00","size":1455681,"digest":"c8214e05b402c742494330b5e957eb38"},"application-c45776825263b5fa7167e55a3b12252c.js":{"logical_path":"application.js","mtime":"2014-05-16T08:50:24+09:00","size":1455659,"digest":"c45776825263b5fa7167e55a3b12252c"},"application-0f9a877d144f84320a10770dfdc5ddd8.js":{"logical_path":"application.js","mtime":"2014-05-16T22:21:05+09:00","size":1455877,"digest":"0f9a877d144f84320a10770dfdc5ddd8"},"application-d60babdd5a50329b329487cf793c2e29.js":{"logical_path":"application.js","mtime":"2014-05-30T19:26:09+09:00","size":1455891,"digest":"d60babdd5a50329b329487cf793c2e29"},"application-dc485e2270d6c5fce20c149d1e2c4f8d.js":{"logical_path":"application.js","mtime":"2014-06-01T22:25:31+09:00","size":1457970,"digest":"dc485e2270d6c5fce20c149d1e2c4f8d"},"application-51ab300acd1779bfba20b099e7000b7e.css":{"logical_path":"application.css","mtime":"2014-06-01T22:26:47+09:00","size":118664,"digest":"51ab300acd1779bfba20b099e7000b7e"},"application-413cdca52651d449a8bc24550f6db35c.js":{"logical_path":"application.js","mtime":"2014-06-08T21:19:30+09:00","size":1462683,"digest":"413cdca52651d449a8bc24550f6db35c"},"application-7f560d8d6d224f87269691c57ca9a376.css":{"logical_path":"application.css","mtime":"2014-06-08T13:07:08+09:00","size":119280,"digest":"7f560d8d6d224f87269691c57ca9a376"},"application-842ac8f5aa3fcc87bbb0e8b3a0fef5d7.js":{"logical_path":"application.js","mtime":"2014-06-08T22:17:54+09:00","size":1462685,"digest":"842ac8f5aa3fcc87bbb0e8b3a0fef5d7"},"application-b31ceba36a60591e488903231db4cb37.css":{"logical_path":"application.css","mtime":"2014-06-15T04:27:57+09:00","size":119322,"digest":"b31ceba36a60591e488903231db4cb37"}},"assets":{"default.xml":"default-5d1886100d7c8961e9962bbc4bb0c714.xml","rgb_led_anode.xml":"rgb_led_anode-91225bef2a8b97f1cefee862a0619b91.xml","favicon.ico":"favicon-a37c90b368fd8ed436cb8f9e9396465c.ico","application.js":"application-842ac8f5aa3fcc87bbb0e8b3a0fef5d7.js","application.css":"application-b31ceba36a60591e488903231db4cb37.css","jquery-ui/animated-overlay.gif":"jquery-ui/animated-overlay-c48c87b7a95316f4698484e3b85ee4aa.gif","jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png":"jquery-ui/ui-bg_flat_0_aaaaaa_40x100-58b63faadd031ca3db096dfdffd90224.png","jquery-ui/ui-bg_flat_75_ffffff_40x100.png":"jquery-ui/ui-bg_flat_75_ffffff_40x100-937399e8b369d64aa075d13a82c00112.png","jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png":"jquery-ui/ui-bg_glass_55_fbf9ee_1x400-a8c503e0f42a081a92a473b0d30ac6cf.png","jquery-ui/ui-bg_glass_65_ffffff_1x400.png":"jquery-ui/ui-bg_glass_65_ffffff_1x400-ddcbfe385abc3947937caa0b44e2f5d2.png","jquery-ui/ui-bg_glass_75_dadada_1x400.png":"jquery-ui/ui-bg_glass_75_dadada_1x400-14dd4a9ad1f21d8c4c7e673ddfb0806f.png","jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png":"jquery-ui/ui-bg_glass_75_e6e6e6_1x400-a43dfabb23b0a987b567b282bad68346.png","jquery-ui/ui-bg_glass_95_fef1ec_1x400.png":"jquery-ui/ui-bg_glass_95_fef1ec_1x400-31c0c791a756266043ee8ea61dacb36a.png","jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png":"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-33edbdb0d2fcebd2a65c2041a28533da.png","jquery-ui/ui-icons_222222_256x240.png":"jquery-ui/ui-icons_222222_256x240-890385424135de1513f00cbecfb7f990.png","jquery-ui/ui-icons_2e83ff_256x240.png":"jquery-ui/ui-icons_2e83ff_256x240-824705ca4aa2610434a358fe4018c9c6.png","jquery-ui/ui-icons_454545_256x240.png":"jquery-ui/ui-icons_454545_256x240-254e054f6df453dfac49efbc8b78f79d.png","jquery-ui/ui-icons_888888_256x240.png":"jquery-ui/ui-icons_888888_256x240-57c441f87c4289a5372823f506c1182d.png","jquery-ui/ui-icons_cd0a0a_256x240.png":"jquery-ui/ui-icons_cd0a0a_256x240-261647ac915575f3981ded254ae8d43e.png","loading.gif":"loading-e8e6dd7833131c92a6c3b9c8ccc6a6ac.gif","progressbar.gif":"progressbar-82023a146fba2a0f6d925629ed2b09c5.gif"}}
|
1
|
+
{"files":{"default-5d1886100d7c8961e9962bbc4bb0c714.xml":{"logical_path":"default.xml","mtime":"2014-02-14T01:28:48+09:00","size":5017,"digest":"5d1886100d7c8961e9962bbc4bb0c714"},"rgb_led_anode-91225bef2a8b97f1cefee862a0619b91.xml":{"logical_path":"rgb_led_anode.xml","mtime":"2014-02-11T14:17:03+09:00","size":3805,"digest":"91225bef2a8b97f1cefee862a0619b91"},"favicon-a37c90b368fd8ed436cb8f9e9396465c.ico":{"logical_path":"favicon.ico","mtime":"2014-01-21T03:18:02+09:00","size":5430,"digest":"a37c90b368fd8ed436cb8f9e9396465c"},"application-735e172a0df828da16d22f5d3c26671f.js":{"logical_path":"application.js","mtime":"2014-02-19T18:22:09+09:00","size":1440213,"digest":"735e172a0df828da16d22f5d3c26671f"},"application-64a390efe879c386a5950515064f062d.css":{"logical_path":"application.css","mtime":"2014-02-19T14:32:55+09:00","size":119186,"digest":"64a390efe879c386a5950515064f062d"},"jquery-ui/animated-overlay-c48c87b7a95316f4698484e3b85ee4aa.gif":{"logical_path":"jquery-ui/animated-overlay.gif","mtime":"2014-02-04T09:35:48+09:00","size":1738,"digest":"c48c87b7a95316f4698484e3b85ee4aa"},"jquery-ui/ui-bg_flat_0_aaaaaa_40x100-58b63faadd031ca3db096dfdffd90224.png":{"logical_path":"jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png","mtime":"2014-02-04T09:35:48+09:00","size":180,"digest":"58b63faadd031ca3db096dfdffd90224"},"jquery-ui/ui-bg_flat_75_ffffff_40x100-937399e8b369d64aa075d13a82c00112.png":{"logical_path":"jquery-ui/ui-bg_flat_75_ffffff_40x100.png","mtime":"2014-02-04T09:35:48+09:00","size":178,"digest":"937399e8b369d64aa075d13a82c00112"},"jquery-ui/ui-bg_glass_55_fbf9ee_1x400-a8c503e0f42a081a92a473b0d30ac6cf.png":{"logical_path":"jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png","mtime":"2014-02-04T09:35:48+09:00","size":120,"digest":"a8c503e0f42a081a92a473b0d30ac6cf"},"jquery-ui/ui-bg_glass_65_ffffff_1x400-ddcbfe385abc3947937caa0b44e2f5d2.png":{"logical_path":"jquery-ui/ui-bg_glass_65_ffffff_1x400.png","mtime":"2014-02-04T09:35:48+09:00","size":105,"digest":"ddcbfe385abc3947937caa0b44e2f5d2"},"jquery-ui/ui-bg_glass_75_dadada_1x400-14dd4a9ad1f21d8c4c7e673ddfb0806f.png":{"logical_path":"jquery-ui/ui-bg_glass_75_dadada_1x400.png","mtime":"2014-02-04T09:35:48+09:00","size":111,"digest":"14dd4a9ad1f21d8c4c7e673ddfb0806f"},"jquery-ui/ui-bg_glass_75_e6e6e6_1x400-a43dfabb23b0a987b567b282bad68346.png":{"logical_path":"jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png","mtime":"2014-02-04T09:35:48+09:00","size":110,"digest":"a43dfabb23b0a987b567b282bad68346"},"jquery-ui/ui-bg_glass_95_fef1ec_1x400-31c0c791a756266043ee8ea61dacb36a.png":{"logical_path":"jquery-ui/ui-bg_glass_95_fef1ec_1x400.png","mtime":"2014-02-04T09:35:48+09:00","size":119,"digest":"31c0c791a756266043ee8ea61dacb36a"},"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-33edbdb0d2fcebd2a65c2041a28533da.png":{"logical_path":"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png","mtime":"2014-02-04T09:35:48+09:00","size":101,"digest":"33edbdb0d2fcebd2a65c2041a28533da"},"jquery-ui/ui-icons_222222_256x240-890385424135de1513f00cbecfb7f990.png":{"logical_path":"jquery-ui/ui-icons_222222_256x240.png","mtime":"2014-02-04T09:35:48+09:00","size":4369,"digest":"890385424135de1513f00cbecfb7f990"},"jquery-ui/ui-icons_2e83ff_256x240-824705ca4aa2610434a358fe4018c9c6.png":{"logical_path":"jquery-ui/ui-icons_2e83ff_256x240.png","mtime":"2014-02-04T09:35:48+09:00","size":4369,"digest":"824705ca4aa2610434a358fe4018c9c6"},"jquery-ui/ui-icons_454545_256x240-254e054f6df453dfac49efbc8b78f79d.png":{"logical_path":"jquery-ui/ui-icons_454545_256x240.png","mtime":"2014-02-04T09:35:48+09:00","size":4369,"digest":"254e054f6df453dfac49efbc8b78f79d"},"jquery-ui/ui-icons_888888_256x240-57c441f87c4289a5372823f506c1182d.png":{"logical_path":"jquery-ui/ui-icons_888888_256x240.png","mtime":"2014-02-04T09:35:48+09:00","size":4369,"digest":"57c441f87c4289a5372823f506c1182d"},"jquery-ui/ui-icons_cd0a0a_256x240-261647ac915575f3981ded254ae8d43e.png":{"logical_path":"jquery-ui/ui-icons_cd0a0a_256x240.png","mtime":"2014-02-04T09:35:48+09:00","size":4369,"digest":"261647ac915575f3981ded254ae8d43e"},"loading-e8e6dd7833131c92a6c3b9c8ccc6a6ac.gif":{"logical_path":"loading.gif","mtime":"2014-01-03T14:44:55+09:00","size":3897,"digest":"e8e6dd7833131c92a6c3b9c8ccc6a6ac"},"progressbar-82023a146fba2a0f6d925629ed2b09c5.gif":{"logical_path":"progressbar.gif","mtime":"2014-01-03T14:44:55+09:00","size":3323,"digest":"82023a146fba2a0f6d925629ed2b09c5"},"application-0047adbc0fb7a529ef7a41b5e0e7d097.js":{"logical_path":"application.js","mtime":"2014-02-20T03:12:12+09:00","size":1441568,"digest":"0047adbc0fb7a529ef7a41b5e0e7d097"},"application-42aa660a3233c7738b7578d30ba040b3.js":{"logical_path":"application.js","mtime":"2014-02-22T15:25:11+09:00","size":1441708,"digest":"42aa660a3233c7738b7578d30ba040b3"},"application-66b65154e7b5dcfe67fa164db6fc5f51.js":{"logical_path":"application.js","mtime":"2014-02-23T21:53:43+09:00","size":1441898,"digest":"66b65154e7b5dcfe67fa164db6fc5f51"},"application-8bfffad1222d4e198f3c7ccc1cbd774f.js":{"logical_path":"application.js","mtime":"2014-02-27T01:28:32+09:00","size":1442504,"digest":"8bfffad1222d4e198f3c7ccc1cbd774f"},"application-4f747690ebc8ec4815ae36021fdb2c44.js":{"logical_path":"application.js","mtime":"2014-03-07T12:36:30+09:00","size":1447094,"digest":"4f747690ebc8ec4815ae36021fdb2c44"},"application-28b7bed56c5389dfa372e972c75b6676.css":{"logical_path":"application.css","mtime":"2014-03-07T10:27:39+09:00","size":119378,"digest":"28b7bed56c5389dfa372e972c75b6676"},"application-3ee566927dc437f1406e5e903da1baf5.js":{"logical_path":"application.js","mtime":"2014-04-30T00:15:32+09:00","size":1452218,"digest":"3ee566927dc437f1406e5e903da1baf5"},"application-5f1777e683ca5d3cf4e0f0374eab6fac.css":{"logical_path":"application.css","mtime":"2014-03-29T10:25:16+09:00","size":120345,"digest":"5f1777e683ca5d3cf4e0f0374eab6fac"},"application-53d651da3309caa498cc0ca6616dbead.css":{"logical_path":"application.css","mtime":"2014-05-06T14:59:20+09:00","size":118430,"digest":"53d651da3309caa498cc0ca6616dbead"},"application-0b3c70107ad81ea9fcda6d7d921bd8cf.js":{"logical_path":"application.js","mtime":"2014-04-30T02:04:36+09:00","size":1452582,"digest":"0b3c70107ad81ea9fcda6d7d921bd8cf"},"application-c2d6a82134037eb9a7f6c7d13d2657db.js":{"logical_path":"application.js","mtime":"2014-05-06T21:22:51+09:00","size":1455113,"digest":"c2d6a82134037eb9a7f6c7d13d2657db"},"application-669cbc2df60729c4b12d739af7595cc6.js":{"logical_path":"application.js","mtime":"2014-05-08T04:10:12+09:00","size":1455352,"digest":"669cbc2df60729c4b12d739af7595cc6"},"application-6579eaebb20aaacfc143d63c77bf4199.js":{"logical_path":"application.js","mtime":"2014-05-11T03:54:51+09:00","size":1455344,"digest":"6579eaebb20aaacfc143d63c77bf4199"},"application-f112e2e4edd69b09d5d1cb92c33144d6.js":{"logical_path":"application.js","mtime":"2014-05-15T23:54:56+09:00","size":1455344,"digest":"f112e2e4edd69b09d5d1cb92c33144d6"},"application-c8214e05b402c742494330b5e957eb38.js":{"logical_path":"application.js","mtime":"2014-05-16T02:08:20+09:00","size":1455681,"digest":"c8214e05b402c742494330b5e957eb38"},"application-c45776825263b5fa7167e55a3b12252c.js":{"logical_path":"application.js","mtime":"2014-05-16T08:50:24+09:00","size":1455659,"digest":"c45776825263b5fa7167e55a3b12252c"},"application-0f9a877d144f84320a10770dfdc5ddd8.js":{"logical_path":"application.js","mtime":"2014-05-16T22:21:05+09:00","size":1455877,"digest":"0f9a877d144f84320a10770dfdc5ddd8"},"application-d60babdd5a50329b329487cf793c2e29.js":{"logical_path":"application.js","mtime":"2014-05-30T19:26:09+09:00","size":1455891,"digest":"d60babdd5a50329b329487cf793c2e29"},"application-dc485e2270d6c5fce20c149d1e2c4f8d.js":{"logical_path":"application.js","mtime":"2014-06-01T22:25:31+09:00","size":1457970,"digest":"dc485e2270d6c5fce20c149d1e2c4f8d"},"application-51ab300acd1779bfba20b099e7000b7e.css":{"logical_path":"application.css","mtime":"2014-06-01T22:26:47+09:00","size":118664,"digest":"51ab300acd1779bfba20b099e7000b7e"},"application-413cdca52651d449a8bc24550f6db35c.js":{"logical_path":"application.js","mtime":"2014-06-08T21:19:30+09:00","size":1462683,"digest":"413cdca52651d449a8bc24550f6db35c"},"application-7f560d8d6d224f87269691c57ca9a376.css":{"logical_path":"application.css","mtime":"2014-06-08T13:07:08+09:00","size":119280,"digest":"7f560d8d6d224f87269691c57ca9a376"},"application-842ac8f5aa3fcc87bbb0e8b3a0fef5d7.js":{"logical_path":"application.js","mtime":"2014-06-08T22:17:54+09:00","size":1462685,"digest":"842ac8f5aa3fcc87bbb0e8b3a0fef5d7"},"application-b31ceba36a60591e488903231db4cb37.css":{"logical_path":"application.css","mtime":"2014-06-15T04:27:57+09:00","size":119322,"digest":"b31ceba36a60591e488903231db4cb37"},"application-acf953339e4b5c31b5d6060375b13a44.js":{"logical_path":"application.js","mtime":"2014-07-13T16:40:43+09:00","size":1463899,"digest":"acf953339e4b5c31b5d6060375b13a44"},"application-e9d089df8f23954c49647ab7af8481dc.css":{"logical_path":"application.css","mtime":"2014-07-13T16:40:43+09:00","size":119556,"digest":"e9d089df8f23954c49647ab7af8481dc"}},"assets":{"default.xml":"default-5d1886100d7c8961e9962bbc4bb0c714.xml","rgb_led_anode.xml":"rgb_led_anode-91225bef2a8b97f1cefee862a0619b91.xml","favicon.ico":"favicon-a37c90b368fd8ed436cb8f9e9396465c.ico","application.js":"application-acf953339e4b5c31b5d6060375b13a44.js","application.css":"application-e9d089df8f23954c49647ab7af8481dc.css","jquery-ui/animated-overlay.gif":"jquery-ui/animated-overlay-c48c87b7a95316f4698484e3b85ee4aa.gif","jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png":"jquery-ui/ui-bg_flat_0_aaaaaa_40x100-58b63faadd031ca3db096dfdffd90224.png","jquery-ui/ui-bg_flat_75_ffffff_40x100.png":"jquery-ui/ui-bg_flat_75_ffffff_40x100-937399e8b369d64aa075d13a82c00112.png","jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png":"jquery-ui/ui-bg_glass_55_fbf9ee_1x400-a8c503e0f42a081a92a473b0d30ac6cf.png","jquery-ui/ui-bg_glass_65_ffffff_1x400.png":"jquery-ui/ui-bg_glass_65_ffffff_1x400-ddcbfe385abc3947937caa0b44e2f5d2.png","jquery-ui/ui-bg_glass_75_dadada_1x400.png":"jquery-ui/ui-bg_glass_75_dadada_1x400-14dd4a9ad1f21d8c4c7e673ddfb0806f.png","jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png":"jquery-ui/ui-bg_glass_75_e6e6e6_1x400-a43dfabb23b0a987b567b282bad68346.png","jquery-ui/ui-bg_glass_95_fef1ec_1x400.png":"jquery-ui/ui-bg_glass_95_fef1ec_1x400-31c0c791a756266043ee8ea61dacb36a.png","jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png":"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-33edbdb0d2fcebd2a65c2041a28533da.png","jquery-ui/ui-icons_222222_256x240.png":"jquery-ui/ui-icons_222222_256x240-890385424135de1513f00cbecfb7f990.png","jquery-ui/ui-icons_2e83ff_256x240.png":"jquery-ui/ui-icons_2e83ff_256x240-824705ca4aa2610434a358fe4018c9c6.png","jquery-ui/ui-icons_454545_256x240.png":"jquery-ui/ui-icons_454545_256x240-254e054f6df453dfac49efbc8b78f79d.png","jquery-ui/ui-icons_888888_256x240.png":"jquery-ui/ui-icons_888888_256x240-57c441f87c4289a5372823f506c1182d.png","jquery-ui/ui-icons_cd0a0a_256x240.png":"jquery-ui/ui-icons_cd0a0a_256x240-261647ac915575f3981ded254ae8d43e.png","loading.gif":"loading-e8e6dd7833131c92a6c3b9c8ccc6a6ac.gif","progressbar.gif":"progressbar-82023a146fba2a0f6d925629ed2b09c5.gif"}}
|
data/smalruby-editor.gemspec
CHANGED
@@ -68,7 +68,7 @@ Gem::Specification.new do |spec|
|
|
68
68
|
['launchy'],
|
69
69
|
['mime-types', '~> 1.16'],
|
70
70
|
['haml-rails'],
|
71
|
-
['smalruby', '~> 0.0.
|
71
|
+
['smalruby', '~> 0.0.27'],
|
72
72
|
]
|
73
73
|
runtime_dependencies << ['therubyracer'] unless is_windows
|
74
74
|
runtime_dependencies.each do |args|
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
require_relative 'shared/block_examples'
|
4
|
+
|
5
|
+
# rubocop:disable EmptyLines, LineLength
|
6
|
+
|
7
|
+
describe RubyToBlock::Block::MotionTurnXy, to_blocks: true do
|
8
|
+
_parts = <<-EOS
|
9
|
+
turn_x
|
10
|
+
turn_y
|
11
|
+
EOS
|
12
|
+
describe compact_source_code(_parts), on_start_data: true do
|
13
|
+
__parts = _parts
|
14
|
+
let(:parts) { __parts }
|
15
|
+
|
16
|
+
it '結果が正しいこと' do
|
17
|
+
should eq_block_xml(<<-XML)
|
18
|
+
<block type="motion_turn_xy">
|
19
|
+
<field name="XY">x</field>
|
20
|
+
<next>
|
21
|
+
<block type="motion_turn_xy">
|
22
|
+
<field name="XY">y</field>
|
23
|
+
</block>
|
24
|
+
</next>
|
25
|
+
</block>
|
26
|
+
XML
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
_parts = <<-EOS
|
31
|
+
car1.turn_x
|
32
|
+
car1.turn_y
|
33
|
+
EOS
|
34
|
+
describe compact_source_code(_parts), character_new_data: true do
|
35
|
+
__parts = _parts
|
36
|
+
let(:parts) { __parts }
|
37
|
+
|
38
|
+
it '結果が正しいこと' do
|
39
|
+
should eq_block_xml(<<-XML)
|
40
|
+
<field name="NAME">car1</field>
|
41
|
+
<statement name="DO">
|
42
|
+
<block type="motion_turn_xy">
|
43
|
+
<field name="XY">x</field>
|
44
|
+
<next>
|
45
|
+
<block type="motion_turn_xy">
|
46
|
+
<field name="XY">y</field>
|
47
|
+
</block>
|
48
|
+
</next>
|
49
|
+
</block>
|
50
|
+
</statement>
|
51
|
+
XML
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
_parts = <<-EOS
|
56
|
+
turn_x
|
57
|
+
turn_y
|
58
|
+
EOS
|
59
|
+
describe compact_source_code(_parts) do
|
60
|
+
__parts = _parts
|
61
|
+
let(:data) { __parts }
|
62
|
+
|
63
|
+
it '結果が正しいこと' do
|
64
|
+
should eq_block_xml(<<-XML)
|
65
|
+
<block type="ruby_statement">
|
66
|
+
<field name="STATEMENT">turn_x</field>
|
67
|
+
<next>
|
68
|
+
<block type="ruby_statement">
|
69
|
+
<field name="STATEMENT">turn_y</field>
|
70
|
+
</block>
|
71
|
+
</next>
|
72
|
+
</block>
|
73
|
+
XML
|
74
|
+
end
|
75
|
+
end
|
76
|
+
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.1.
|
4
|
+
version: 0.1.19
|
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-
|
11
|
+
date: 2014-07-13 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.
|
187
|
+
version: 0.0.27
|
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.
|
194
|
+
version: 0.0.27
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: therubyracer
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -277,6 +277,7 @@ files:
|
|
277
277
|
- app/assets/javascripts/blocks/sound.js.coffee.erb
|
278
278
|
- app/assets/javascripts/collections/.keep
|
279
279
|
- app/assets/javascripts/collections/character_set.js.coffee
|
280
|
+
- app/assets/javascripts/fix_blockly.js
|
280
281
|
- app/assets/javascripts/generators/ruby.js.coffee.erb
|
281
282
|
- app/assets/javascripts/models/.keep
|
282
283
|
- app/assets/javascripts/models/character.js.coffee
|
@@ -359,6 +360,7 @@ files:
|
|
359
360
|
- app/models/concerns/ruby_to_block/block/motion_set_y.rb
|
360
361
|
- app/models/concerns/ruby_to_block/block/motion_turn.rb
|
361
362
|
- app/models/concerns/ruby_to_block/block/motion_turn_if_reach_wall.rb
|
363
|
+
- app/models/concerns/ruby_to_block/block/motion_turn_xy.rb
|
362
364
|
- app/models/concerns/ruby_to_block/block/null.rb
|
363
365
|
- app/models/concerns/ruby_to_block/block/operators_compare.rb
|
364
366
|
- app/models/concerns/ruby_to_block/block/operators_false.rb
|
@@ -415,6 +417,7 @@ files:
|
|
415
417
|
- db/seeds.rb
|
416
418
|
- demos/car_chase.rb.xml
|
417
419
|
- demos/hardware_led.rb.xml
|
420
|
+
- demos/pong.rb.xml
|
418
421
|
- demos/rgb_led_anode.rb.xml
|
419
422
|
- demos/star.rb.xml
|
420
423
|
- lib/assets/.keep
|
@@ -583,6 +586,7 @@ files:
|
|
583
586
|
- spec/models/concerns/ruby_to_block/block/motion_reach_wall_spec.rb
|
584
587
|
- spec/models/concerns/ruby_to_block/block/motion_spec.rb
|
585
588
|
- spec/models/concerns/ruby_to_block/block/motion_turn_spec.rb
|
589
|
+
- spec/models/concerns/ruby_to_block/block/motion_turn_xy_spec.rb
|
586
590
|
- spec/models/concerns/ruby_to_block/block/require_smalruby_spec.rb
|
587
591
|
- spec/models/concerns/ruby_to_block/block/ruby_comment_spec.rb
|
588
592
|
- spec/models/concerns/ruby_to_block/block/ruby_statement_spec.rb
|
@@ -608,10 +612,10 @@ files:
|
|
608
612
|
- vendor/assets/javascripts/blockly/msg/js/ja.js
|
609
613
|
- vendor/assets/javascripts/jquery.blockUI.js
|
610
614
|
- vendor/assets/stylesheets/.keep
|
611
|
-
- public/assets/application-
|
612
|
-
- public/assets/application-
|
613
|
-
- public/assets/application-
|
614
|
-
- public/assets/application-
|
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
|
615
619
|
- public/assets/favicon-a37c90b368fd8ed436cb8f9e9396465c.ico
|
616
620
|
- public/assets/jquery-ui/animated-overlay-c48c87b7a95316f4698484e3b85ee4aa.gif
|
617
621
|
- public/assets/jquery-ui/ui-bg_flat_0_aaaaaa_40x100-58b63faadd031ca3db096dfdffd90224.png
|
@@ -762,6 +766,7 @@ test_files:
|
|
762
766
|
- spec/models/concerns/ruby_to_block/block/motion_reach_wall_spec.rb
|
763
767
|
- spec/models/concerns/ruby_to_block/block/motion_spec.rb
|
764
768
|
- spec/models/concerns/ruby_to_block/block/motion_turn_spec.rb
|
769
|
+
- spec/models/concerns/ruby_to_block/block/motion_turn_xy_spec.rb
|
765
770
|
- spec/models/concerns/ruby_to_block/block/require_smalruby_spec.rb
|
766
771
|
- spec/models/concerns/ruby_to_block/block/ruby_comment_spec.rb
|
767
772
|
- spec/models/concerns/ruby_to_block/block/ruby_statement_spec.rb
|