smalruby-editor 0.2.1-x86-mingw32 → 0.2.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 +4 -4
- data/LEGAL +4 -3
- data/app/assets/javascripts/blocks/character.js.coffee.erb +7 -3
- data/app/assets/javascripts/blocks/events.js.coffee.erb +7 -10
- data/app/assets/javascripts/blocks/hardware.js.coffee.erb +119 -31
- data/app/assets/javascripts/blocks/motion.js.coffee.erb +16 -20
- data/app/assets/javascripts/blocks/operators.js.coffee.erb +1 -1
- data/app/assets/javascripts/blocks/pen.js.coffee.erb +2 -1
- data/app/assets/javascripts/blocks/ruby.js.coffee.erb +3 -3
- data/app/assets/javascripts/blocks/sensing.js.coffee.erb +8 -8
- data/app/assets/javascripts/blocks/sound.js.coffee.erb +3 -1
- data/app/assets/javascripts/fix_blockly.js.erb +105 -0
- data/app/assets/javascripts/generators/ruby.js.coffee.erb +3 -0
- data/app/assets/javascripts/msg/en_us.js +67 -17
- data/app/assets/javascripts/msg/ja.js +151 -95
- data/app/assets/javascripts/{smalruby.js.coffee → smalruby.js.coffee.erb} +35 -16
- data/app/assets/javascripts/views/character_selector_view.js.coffee +2 -2
- data/app/assets/javascripts/views/{load_modal_view.js.coffee → load_modal_view.js.coffee.erb} +8 -2
- data/app/assets/javascripts/views/main_menu_view.js.coffee.erb +33 -48
- data/app/assets/javascripts/views/signin_modal_view.js.coffee.erb +43 -0
- data/app/assets/stylesheets/application.css +3 -1
- data/app/assets/stylesheets/toolbox.css.scss.erb +2 -56
- data/app/assets/stylesheets/toolbox_default.css.scss.erb +34 -0
- data/app/assets/stylesheets/toolbox_smalrubot_s1.css.scss.erb +31 -0
- data/app/assets/stylesheets/toolbox_smalrubot_v3.css.scss.erb +32 -0
- data/app/controllers/application_controller.rb +5 -0
- data/app/controllers/source_codes_controller.rb +6 -3
- data/app/helpers/application_helper.rb +12 -0
- data/app/helpers/editor_helper.rb +25 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_s1_action.rb +13 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_s1_action_with_sec.rb +14 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_s1_ir_photoreflector_value.rb +29 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_s1_led_turn_on_or_off.rb +22 -0
- data/app/views/editor/_block_tab.html.haml +7 -6
- data/app/views/editor/_reset_modal.html.haml +4 -4
- data/app/views/editor/_signin_modal.html.haml +8 -9
- data/app/views/editor/_toolbox_default.html.haml +504 -0
- data/app/views/editor/_toolbox_smalrubot_s1.html.haml +171 -0
- data/app/views/editor/_toolbox_smalrubot_v3.html.haml +177 -0
- data/app/views/editor/index.html.haml +12 -2
- data/app/views/layouts/application.html.erb +1 -0
- data/config/environments/production.rb +1 -0
- data/config/locales/en.yml +19 -16
- data/config/locales/ja.yml +28 -25
- data/demos/hardware_led.rb.xml +79 -79
- data/lib/smalruby_editor/config.rb +22 -0
- data/lib/smalruby_editor/version.rb +1 -1
- data/lib/smalruby_editor.rb +58 -0
- data/public/assets/application-71c4890fe0ea2e896fc0acff41cdb0ad.js +39 -0
- data/public/assets/application-71c4890fe0ea2e896fc0acff41cdb0ad.js.gz +0 -0
- data/public/assets/{application-d5358d75a2c4e570c749b333c59b55ab.css → application-c196e243630d74071981a16041bf391d.css} +1 -1
- data/public/assets/application-c196e243630d74071981a16041bf391d.css.gz +0 -0
- data/public/assets/blockly/msg/js/en_us-d5e1938b2d57c1df954f4411b9165d10.js +1 -0
- data/public/assets/blockly/msg/js/en_us-d5e1938b2d57c1df954f4411b9165d10.js.gz +0 -0
- data/public/assets/blockly/msg/js/ja-9f676d46458a2802b8f5a797c90ae8a4.js +1 -0
- data/public/assets/blockly/msg/js/ja-9f676d46458a2802b8f5a797c90ae8a4.js.gz +0 -0
- data/public/assets/manifest-f3d29c6d66b959abe4294a899733e4f0.json +1 -0
- data/public/assets/msg/en_us-213fb4a57884078038725a2991776f47.js +1 -0
- data/public/assets/msg/en_us-213fb4a57884078038725a2991776f47.js.gz +0 -0
- data/public/assets/msg/ja-aeface7456b479021e977a0387204036.js +1 -0
- data/public/assets/msg/ja-aeface7456b479021e977a0387204036.js.gz +0 -0
- data/public/assets/toolbox_default-e023d3f7a2cc7cc1f54a1224577b3c26.css +1 -0
- data/public/assets/toolbox_default-e023d3f7a2cc7cc1f54a1224577b3c26.css.gz +0 -0
- data/public/assets/toolbox_smalrubot_s1-18d28dc4b99723b60a3f538b742027df.css +1 -0
- data/public/assets/toolbox_smalrubot_s1-18d28dc4b99723b60a3f538b742027df.css.gz +0 -0
- data/public/assets/toolbox_smalrubot_v3-9af26ff13d4496890c4a391f65f95bcd.css +1 -0
- data/public/assets/toolbox_smalrubot_v3-9af26ff13d4496890c4a391f65f95bcd.css.gz +0 -0
- data/public/blockly/media/anon.jpeg +0 -0
- data/public/blockly/media/handclosed.cur +0 -0
- data/public/blockly/media/handdelete.cur +0 -0
- data/public/blockly/media/progress.gif +0 -0
- data/public/blockly/media/sprites.png +0 -0
- data/smalruby-editor.gemspec +2 -1
- data/spec/acceptance/base.feature +3 -3
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_action.feature +107 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_action_with_sec.feature +151 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_ir_photoreflector_value.feature +100 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_s1_led_turn_on_or_off.feature +73 -0
- data/spec/acceptance/ruby_mode/translate.feature +6 -6
- data/spec/acceptance/standalone/save.feature +3 -3
- data/spec/acceptance/standalone/signin.feature +1 -2
- data/spec/lib/smalruby_editor_spec.rb +21 -11
- data/spec/models/concerns/ruby_to_block/block/hardware__smalrubot_s1_spec.rb +279 -0
- data/vendor/assets/javascripts/blockly/blockly_compressed.js +995 -668
- data/vendor/assets/javascripts/blockly/blocks_compressed.js +138 -114
- data/vendor/assets/javascripts/blockly/msg/js/en_us.js +6 -6
- data/vendor/assets/javascripts/blockly/msg/js/ja.js +42 -28
- metadata +66 -25
- data/app/assets/javascripts/fix_blockly.js +0 -128
- data/app/assets/javascripts/views/signin_modal_view.js.coffee +0 -33
- data/app/views/editor/_toolbox.html.haml +0 -496
- data/public/assets/application-b305a6ea9e7c045a8e170bbf6fb09dd1.js +0 -35
- data/public/assets/application-b305a6ea9e7c045a8e170bbf6fb09dd1.js.gz +0 -0
- data/public/assets/application-d5358d75a2c4e570c749b333c59b55ab.css.gz +0 -0
- data/public/assets/blockly/msg/js/en_us-6f7333af29688596ef863fa36a22cb41.js +0 -1
- data/public/assets/blockly/msg/js/en_us-6f7333af29688596ef863fa36a22cb41.js.gz +0 -0
- data/public/assets/blockly/msg/js/ja-d2cbf808bda8180571bc5f39141a98fe.js +0 -1
- data/public/assets/blockly/msg/js/ja-d2cbf808bda8180571bc5f39141a98fe.js.gz +0 -0
- data/public/assets/manifest-b1b843b1334b3b973824ab66b1f7a077.json +0 -1
- data/public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js +0 -1
- data/public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js.gz +0 -0
- data/public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js +0 -1
- data/public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js.gz +0 -0
- data/public/blockly/media/trashbody.png +0 -0
- data/public/blockly/media/trashlid.png +0 -0
- data/public/blockly/media/tree.png +0 -0
data/demos/hardware_led.rb.xml
CHANGED
@@ -1,79 +1,79 @@
|
|
1
|
-
<xml xmlns="http://www.w3.org/1999/xhtml">
|
2
|
-
<character x="261" y="191" name="frog1" costumes="frog1.png" angle="0"></character>
|
3
|
-
<block type="ruby_comment" x="42" y="-39">
|
4
|
-
<field name="COMMENT">ライトをぴかっとさせるでよ</field>
|
5
|
-
</block>
|
6
|
-
<block type="hardware_init_hardware" x="40" y="6"></block>
|
7
|
-
<block type="character_new" x="45" y="50">
|
8
|
-
<field name="NAME">frog1</field>
|
9
|
-
<statement name="DO">
|
10
|
-
<block type="events_on_click">
|
11
|
-
<statement name="DO">
|
12
|
-
<block type="looks_say" inline="true">
|
13
|
-
<value name="TEXT">
|
14
|
-
<block type="text">
|
15
|
-
<field name="TEXT">ライトをぴかっとさせるでよ♪</field>
|
16
|
-
</block>
|
17
|
-
</value>
|
18
|
-
<next>
|
19
|
-
<block type="
|
20
|
-
<field name="PIN">D2</field>
|
21
|
-
<next>
|
22
|
-
<block type="control_sleep" inline="true">
|
23
|
-
<value name="SEC">
|
24
|
-
<block type="math_number">
|
25
|
-
<field name="NUM">1</field>
|
26
|
-
</block>
|
27
|
-
</value>
|
28
|
-
<next>
|
29
|
-
<block type="
|
30
|
-
<field name="PIN">D2</field>
|
31
|
-
<next>
|
32
|
-
<block type="control_sleep" inline="true">
|
33
|
-
<value name="SEC">
|
34
|
-
<block type="math_number">
|
35
|
-
<field name="NUM">1</field>
|
36
|
-
</block>
|
37
|
-
</value>
|
38
|
-
<next>
|
39
|
-
<block type="
|
40
|
-
<field name="PIN">D13</field>
|
41
|
-
<next>
|
42
|
-
<block type="control_sleep" inline="true">
|
43
|
-
<value name="SEC">
|
44
|
-
<block type="math_number">
|
45
|
-
<field name="NUM">1</field>
|
46
|
-
</block>
|
47
|
-
</value>
|
48
|
-
<next>
|
49
|
-
<block type="
|
50
|
-
<field name="PIN">D13</field>
|
51
|
-
<next>
|
52
|
-
<block type="looks_say" inline="true">
|
53
|
-
<value name="TEXT">
|
54
|
-
<block type="text">
|
55
|
-
<field name="TEXT"></field>
|
56
|
-
</block>
|
57
|
-
</value>
|
58
|
-
</block>
|
59
|
-
</next>
|
60
|
-
</block>
|
61
|
-
</next>
|
62
|
-
</block>
|
63
|
-
</next>
|
64
|
-
</block>
|
65
|
-
</next>
|
66
|
-
</block>
|
67
|
-
</next>
|
68
|
-
</block>
|
69
|
-
</next>
|
70
|
-
</block>
|
71
|
-
</next>
|
72
|
-
</block>
|
73
|
-
</next>
|
74
|
-
</block>
|
75
|
-
</statement>
|
76
|
-
</block>
|
77
|
-
</statement>
|
78
|
-
</block>
|
79
|
-
</xml>
|
1
|
+
<xml xmlns="http://www.w3.org/1999/xhtml">
|
2
|
+
<character x="261" y="191" name="frog1" costumes="frog1.png" angle="0"></character>
|
3
|
+
<block type="ruby_comment" x="42" y="-39">
|
4
|
+
<field name="COMMENT">ライトをぴかっとさせるでよ</field>
|
5
|
+
</block>
|
6
|
+
<block type="hardware_init_hardware" x="40" y="6"></block>
|
7
|
+
<block type="character_new" x="45" y="50">
|
8
|
+
<field name="NAME">frog1</field>
|
9
|
+
<statement name="DO">
|
10
|
+
<block type="events_on_click">
|
11
|
+
<statement name="DO">
|
12
|
+
<block type="looks_say" inline="true">
|
13
|
+
<value name="TEXT">
|
14
|
+
<block type="text">
|
15
|
+
<field name="TEXT">ライトをぴかっとさせるでよ♪</field>
|
16
|
+
</block>
|
17
|
+
</value>
|
18
|
+
<next>
|
19
|
+
<block type="hardware_led_turn_on">
|
20
|
+
<field name="PIN">D2</field>
|
21
|
+
<next>
|
22
|
+
<block type="control_sleep" inline="true">
|
23
|
+
<value name="SEC">
|
24
|
+
<block type="math_number">
|
25
|
+
<field name="NUM">1</field>
|
26
|
+
</block>
|
27
|
+
</value>
|
28
|
+
<next>
|
29
|
+
<block type="hardware_led_turn_off">
|
30
|
+
<field name="PIN">D2</field>
|
31
|
+
<next>
|
32
|
+
<block type="control_sleep" inline="true">
|
33
|
+
<value name="SEC">
|
34
|
+
<block type="math_number">
|
35
|
+
<field name="NUM">1</field>
|
36
|
+
</block>
|
37
|
+
</value>
|
38
|
+
<next>
|
39
|
+
<block type="hardware_led_turn_on">
|
40
|
+
<field name="PIN">D13</field>
|
41
|
+
<next>
|
42
|
+
<block type="control_sleep" inline="true">
|
43
|
+
<value name="SEC">
|
44
|
+
<block type="math_number">
|
45
|
+
<field name="NUM">1</field>
|
46
|
+
</block>
|
47
|
+
</value>
|
48
|
+
<next>
|
49
|
+
<block type="hardware_led_turn_off">
|
50
|
+
<field name="PIN">D13</field>
|
51
|
+
<next>
|
52
|
+
<block type="looks_say" inline="true">
|
53
|
+
<value name="TEXT">
|
54
|
+
<block type="text">
|
55
|
+
<field name="TEXT"></field>
|
56
|
+
</block>
|
57
|
+
</value>
|
58
|
+
</block>
|
59
|
+
</next>
|
60
|
+
</block>
|
61
|
+
</next>
|
62
|
+
</block>
|
63
|
+
</next>
|
64
|
+
</block>
|
65
|
+
</next>
|
66
|
+
</block>
|
67
|
+
</next>
|
68
|
+
</block>
|
69
|
+
</next>
|
70
|
+
</block>
|
71
|
+
</next>
|
72
|
+
</block>
|
73
|
+
</next>
|
74
|
+
</block>
|
75
|
+
</statement>
|
76
|
+
</block>
|
77
|
+
</statement>
|
78
|
+
</block>
|
79
|
+
</xml>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
module SmalrubyEditor
|
4
|
+
class Config < Settingslogic
|
5
|
+
if Rails.env.test?
|
6
|
+
source({})
|
7
|
+
else
|
8
|
+
path = SmalrubyEditor.home_directory.join('config', 'config.yml')
|
9
|
+
if path.exist?
|
10
|
+
source(path)
|
11
|
+
else
|
12
|
+
source({})
|
13
|
+
end
|
14
|
+
end
|
15
|
+
suppress_errors(true)
|
16
|
+
|
17
|
+
def enabled?(feature)
|
18
|
+
features.try(:include?, feature)
|
19
|
+
end
|
20
|
+
module_function :enabled?
|
21
|
+
end
|
22
|
+
end
|
data/lib/smalruby_editor.rb
CHANGED
@@ -18,6 +18,37 @@ module SmalrubyEditor
|
|
18
18
|
sound: 300,
|
19
19
|
}
|
20
20
|
|
21
|
+
# http://c4se.hatenablog.com/entry/2013/08/04/190937 をほぼコピーした
|
22
|
+
def hsv_to_rgb(h, s, v)
|
23
|
+
s /= 100.0
|
24
|
+
v /= 100.0
|
25
|
+
c = v * s
|
26
|
+
x = c * (1 - ((h / 60.0) % 2 - 1).abs)
|
27
|
+
m = v - c
|
28
|
+
r, g, b = *(
|
29
|
+
case
|
30
|
+
when h < 60 then [c, x, 0]
|
31
|
+
when h < 120 then [x, c, 0]
|
32
|
+
when h < 180 then [0, c, x]
|
33
|
+
when h < 240 then [0, x, c]
|
34
|
+
when h < 300 then [x, 0, c]
|
35
|
+
else [c, 0, x]
|
36
|
+
end
|
37
|
+
)
|
38
|
+
[r, g, b].map { |channel|
|
39
|
+
sprintf('%02x', ((channel + m) * 255).ceil)
|
40
|
+
}.join
|
41
|
+
end
|
42
|
+
module_function :hsv_to_rgb
|
43
|
+
|
44
|
+
# return smalruby's home directory
|
45
|
+
# (default is '~/.smalruby-editor').
|
46
|
+
def home_directory
|
47
|
+
path = ENV['SMALRUBY_EDITOR_HOME'] || '~/.smalruby-editor'
|
48
|
+
Pathname(path).expand_path
|
49
|
+
end
|
50
|
+
module_function :home_directory
|
51
|
+
|
21
52
|
def create_home_directory(home_dir = nil)
|
22
53
|
if home_dir.blank?
|
23
54
|
path = ENV['SMALRUBY_EDITOR_HOME'] || '~/.smalruby-editor'
|
@@ -25,6 +56,7 @@ module SmalrubyEditor
|
|
25
56
|
end
|
26
57
|
create_under_home_directories(home_dir)
|
27
58
|
create_database_yml(home_dir)
|
59
|
+
create_config_yml(home_dir)
|
28
60
|
home_dir
|
29
61
|
end
|
30
62
|
module_function :create_home_directory
|
@@ -93,5 +125,31 @@ standalone:
|
|
93
125
|
f.write(DATABASE_YML_TEMPLATE.gsub(/%db_path%/, db_path.to_s))
|
94
126
|
end
|
95
127
|
end
|
128
|
+
|
129
|
+
CONFIG_YML_TEMPLATE = <<-EOS
|
130
|
+
#toolbox_name: default
|
131
|
+
#toolbox_css_name: default
|
132
|
+
features:
|
133
|
+
- add_character_from_beginning
|
134
|
+
#- disabled_new_character
|
135
|
+
#- auto_init_hardware
|
136
|
+
#- readonly_ruby_mode
|
137
|
+
#- must_signin
|
138
|
+
#- enabled_hardware_blocks_on_default
|
139
|
+
#- enabled_2wd_car_blocks_on_default
|
140
|
+
#- enabled_smalrubot_v3_blocks_on_default
|
141
|
+
#- enabled_smalrubot_s1_blocks_on_default
|
142
|
+
EOS
|
143
|
+
|
144
|
+
def create_config_yml(home_dir)
|
145
|
+
config_yml_path = home_dir.join('config', 'config.yml')
|
146
|
+
unless config_yml_path.exist?
|
147
|
+
File.open(config_yml_path, 'w') do |f|
|
148
|
+
f.write(CONFIG_YML_TEMPLATE)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
96
152
|
end
|
97
153
|
end
|
154
|
+
|
155
|
+
require 'smalruby_editor/config'
|