smalruby-editor 0.0.8-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 +7 -0
- data/.gitignore +25 -0
- data/.rspec +4 -0
- data/.rubocop.yml +19 -0
- data/.ruby-version +1 -0
- data/.simplecov +7 -0
- data/.travis.yml +23 -0
- data/LEGAL +13 -0
- data/LICENSE +22 -0
- data/Procfile +1 -0
- data/README.rdoc +46 -0
- data/Rakefile +9 -0
- data/app/assets/images/.keep +0 -0
- data/app/assets/images/favicon.ico +0 -0
- data/app/assets/javascripts/application.js +21 -0
- data/app/assets/javascripts/editor.js.coffee.erb +139 -0
- data/app/assets/stylesheets/application.css +19 -0
- data/app/assets/stylesheets/editor.css.scss +19 -0
- data/app/assets/stylesheets/flatstrap-custom.css.scss +2 -0
- data/app/controllers/application_controller.rb +5 -0
- data/app/controllers/concerns/.keep +0 -0
- data/app/controllers/editor_controller.rb +5 -0
- data/app/controllers/source_codes_controller.rb +106 -0
- data/app/helpers/application_helper.rb +2 -0
- data/app/helpers/editor_helper.rb +2 -0
- data/app/mailers/.keep +0 -0
- data/app/models/.keep +0 -0
- data/app/models/concerns/.keep +0 -0
- data/app/models/source_code.rb +49 -0
- data/app/views/editor/index.html.erb +23 -0
- data/app/views/layouts/application.html.erb +15 -0
- data/bin/bundle +3 -0
- data/bin/rails +4 -0
- data/bin/rake +4 -0
- data/bin/smalruby-editor +80 -0
- data/config/application.rb +16 -0
- data/config/boot.rb +17 -0
- data/config/database.yml.mysql2 +48 -0
- data/config/database.yml.sqlite3 +31 -0
- data/config/database.yml.travis +5 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +30 -0
- data/config/environments/production.rb +86 -0
- data/config/environments/standalone.rb +16 -0
- data/config/environments/test.rb +46 -0
- data/config/initializers/backtrace_silencers.rb +9 -0
- data/config/initializers/filter_parameter_logging.rb +4 -0
- data/config/initializers/inflections.rb +16 -0
- data/config/initializers/mime_types.rb +5 -0
- data/config/initializers/secret_token.rb +17 -0
- data/config/initializers/session_store.rb +4 -0
- data/config/initializers/wrap_parameters.rb +15 -0
- data/config/locales/en.yml +23 -0
- data/config/routes.rb +68 -0
- data/config/unicorn.rb +23 -0
- data/config.ru +4 -0
- data/db/migrate/20131216121603_create_source_codes.rb +9 -0
- data/db/migrate/20131219045113_add_filename_to_source_code.rb +5 -0
- data/db/schema.rb +23 -0
- data/db/seeds.rb +7 -0
- data/lib/assets/.keep +0 -0
- data/lib/smalruby_editor/version.rb +3 -0
- data/lib/smalruby_editor.rb +46 -0
- data/lib/tasks/.keep +0 -0
- data/lib/tasks/gem.rake +10 -0
- data/lib/tasks/rspec.rake +16 -0
- data/lib/tasks/rubocop.rake +3 -0
- data/log/.keep +0 -0
- data/public/404.html +58 -0
- data/public/422.html +58 -0
- data/public/500.html +57 -0
- data/public/assets/application-759ce4d1ac1e0e3991e6d350c8f98fc5.js +5267 -0
- data/public/assets/application-759ce4d1ac1e0e3991e6d350c8f98fc5.js.gz +0 -0
- data/public/assets/application-f51ea0e777d97f12a8ce84308f31eb57.css +4791 -0
- data/public/assets/application-f51ea0e777d97f12a8ce84308f31eb57.css.gz +0 -0
- data/public/assets/favicon-c7ae857bb9d06de8742ae2d337157e83.ico +0 -0
- data/public/assets/loading-e8e6dd7833131c92a6c3b9c8ccc6a6ac.gif +0 -0
- data/public/assets/manifest-f86249f9779f8f4d7c8fc148e4361b4f.json +1 -0
- data/public/assets/progressbar-82023a146fba2a0f6d925629ed2b09c5.gif +0 -0
- data/public/favicon.ico +0 -0
- data/public/fonts/FontAwesome.otf +0 -0
- data/public/fonts/fontawesome-webfont.eot +0 -0
- data/public/fonts/fontawesome-webfont.ttf +0 -0
- data/public/fonts/fontawesome-webfont.woff +0 -0
- data/public/robots.txt +5 -0
- data/smalruby-editor.gemspec +81 -0
- data/spec/acceptance/readme.md +3 -0
- data/spec/acceptance/standalone/save.feature +32 -0
- data/spec/acceptance/text_editor/base.feature +24 -0
- data/spec/acceptance/text_editor/check.feature +25 -0
- data/spec/acceptance/text_editor/load.feature +81 -0
- data/spec/acceptance/text_editor/save.feature +34 -0
- data/spec/controllers/editor_controller_spec.rb +12 -0
- data/spec/controllers/source_codes_controller_spec.rb +469 -0
- data/spec/fixtures/files/01.rb +57 -0
- data/spec/fixtures/files/favicon.ico +0 -0
- data/spec/helpers/editor_helper_spec.rb +14 -0
- data/spec/lib/smalruby_editor_spec.rb +66 -0
- data/spec/models/source_code_spec.rb +55 -0
- data/spec/spec_helper.rb +156 -0
- data/spec/steps/ace_steps.rb +59 -0
- data/spec/steps/global_variable.rb +39 -0
- data/spec/steps/text_editor_steps.rb +183 -0
- data/spec/support/assets.rb +18 -0
- data/spec/support/capybara.rb +17 -0
- data/spec/support/env.rb +15 -0
- data/spec/turnip_helper.rb +2 -0
- data/vendor/assets/javascripts/.keep +0 -0
- data/vendor/assets/stylesheets/.keep +0 -0
- metadata +407 -0
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
{"files":{"favicon-c7ae857bb9d06de8742ae2d337157e83.ico":{"logical_path":"favicon.ico","mtime":"2013-11-25T21:05:22+09:00","size":16398,"digest":"c7ae857bb9d06de8742ae2d337157e83"},"application-759ce4d1ac1e0e3991e6d350c8f98fc5.js":{"logical_path":"application.js","mtime":"2014-01-05T21:46:48+09:00","size":600971,"digest":"759ce4d1ac1e0e3991e6d350c8f98fc5"},"application-f51ea0e777d97f12a8ce84308f31eb57.css":{"logical_path":"application.css","mtime":"2013-12-24T10:25:38+09:00","size":104182,"digest":"f51ea0e777d97f12a8ce84308f31eb57"},"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"}},"assets":{"favicon.ico":"favicon-c7ae857bb9d06de8742ae2d337157e83.ico","application.js":"application-759ce4d1ac1e0e3991e6d350c8f98fc5.js","application.css":"application-f51ea0e777d97f12a8ce84308f31eb57.css","loading.gif":"loading-e8e6dd7833131c92a6c3b9c8ccc6a6ac.gif","progressbar.gif":"progressbar-82023a146fba2a0f6d925629ed2b09c5.gif"}}
|
Binary file
|
data/public/favicon.ico
ADDED
File without changes
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/public/robots.txt
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require 'english'
|
3
|
+
|
4
|
+
lib = File.expand_path('../lib', __FILE__)
|
5
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
6
|
+
require 'smalruby_editor/version'
|
7
|
+
|
8
|
+
Gem::Specification.new do |spec|
|
9
|
+
platform = ENV['GEM_PLATFORM'] || Gem::Platform.local.to_s
|
10
|
+
is_windows = /windows|mingw|cygwin/i.match(platform)
|
11
|
+
|
12
|
+
spec.name = 'smalruby-editor'
|
13
|
+
spec.platform = platform if is_windows
|
14
|
+
spec.version = SmalrubyEditor::VERSION
|
15
|
+
|
16
|
+
spec.authors = ['Kouji Takao']
|
17
|
+
spec.email = ['kouji.takao@gmail.com']
|
18
|
+
spec.description =
|
19
|
+
'The smalruby-editor is a visual programming editor that can create a' \
|
20
|
+
'Ruby script by combining individual blocks similar to Scratch. It can' \
|
21
|
+
' also enter the program as better than Scratch.'
|
22
|
+
spec.summary = %q{A visual programming editor.}
|
23
|
+
spec.homepage = 'https://github.com/smalruby/smalruby-editor'
|
24
|
+
spec.license = 'MIT'
|
25
|
+
|
26
|
+
spec.files = []
|
27
|
+
if File.exist?(File.expand_path('../.git', __FILE__))
|
28
|
+
spec.files += `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
29
|
+
spec.files -= ['Gemfile', 'Gemfile.lock']
|
30
|
+
end
|
31
|
+
spec.files += Dir.glob('public/assets/**/*')
|
32
|
+
spec.default_executable = 'smalruby-editor'
|
33
|
+
spec.executables = ['smalruby-editor']
|
34
|
+
spec.extra_rdoc_files = ['README.rdoc', 'LICENSE']
|
35
|
+
spec.test_files = spec.files.grep(/^(test|spec|features)\//)
|
36
|
+
spec.require_paths = ['lib']
|
37
|
+
spec.rdoc_options = %(
|
38
|
+
--title Smalruby\ Editor\ --\ A\ visual\ programming\ editor
|
39
|
+
--line-numbers
|
40
|
+
--main README
|
41
|
+
--exclude app
|
42
|
+
--exclude bin
|
43
|
+
--exclude config
|
44
|
+
--exclude db
|
45
|
+
--exclude features
|
46
|
+
--exclude lib
|
47
|
+
--exclude log
|
48
|
+
--exclude pkg
|
49
|
+
--exclude public
|
50
|
+
--exclude script
|
51
|
+
--exclude spec
|
52
|
+
--exclude test
|
53
|
+
--exclude tmp
|
54
|
+
--exclude vendor
|
55
|
+
)
|
56
|
+
|
57
|
+
runtime_dependencies =
|
58
|
+
[
|
59
|
+
['rails', '4.0.2'],
|
60
|
+
['sqlite3'],
|
61
|
+
['sass-rails', '~> 4.0.0'],
|
62
|
+
['uglifier', '>= 1.3.0'],
|
63
|
+
['coffee-rails', '~> 4.0.0'],
|
64
|
+
['jquery-rails'],
|
65
|
+
['turbolinks'],
|
66
|
+
['jbuilder', '~> 2.0'],
|
67
|
+
['ace-rails-ap'],
|
68
|
+
['flatstrap-sass'],
|
69
|
+
['jquery-fileupload-rails'],
|
70
|
+
['shared-mime-info'],
|
71
|
+
['launchy'],
|
72
|
+
['mime-types', '~> 1.16'],
|
73
|
+
]
|
74
|
+
runtime_dependencies << ['therubyracer'] unless is_windows
|
75
|
+
runtime_dependencies.each do |args|
|
76
|
+
spec.add_runtime_dependency(*args)
|
77
|
+
end
|
78
|
+
|
79
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
80
|
+
spec.add_development_dependency 'rake'
|
81
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# language: ja
|
3
|
+
@javascript
|
4
|
+
@standalone
|
5
|
+
機能: Save - プログラムのセーブ(standaloneモード)
|
6
|
+
シナリオ: セーブボタンを押してローカルマシンにプログラムを保存できる
|
7
|
+
前提 "エディタ" 画面を表示する
|
8
|
+
かつ テキストエディタに "puts 'Hello, World!'" を入力済みである
|
9
|
+
かつ プログラムの名前に "01.rb" を指定する
|
10
|
+
|
11
|
+
もし "セーブボタン" をクリックする
|
12
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
13
|
+
|
14
|
+
ならば ホームディレクトリに "01.rb" が存在すること
|
15
|
+
かつ ホームディレクトリの "01.rb" の内容が "puts 'Hello, World!'" であること
|
16
|
+
かつ "メッセージ" に "セーブしました" を含むこと
|
17
|
+
|
18
|
+
シナリオ: ローカルマシンに同じ名前のプログラムがある状態でセーブボタンを押す
|
19
|
+
前提 "エディタ" 画面を表示する
|
20
|
+
かつ ホームディレクトリに "puts 'Hello, World!'" という内容の "01.rb" が存在する
|
21
|
+
かつ テキストエディタに "n = 0" を入力済みである
|
22
|
+
かつ プログラムの名前に "01.rb" を指定する
|
23
|
+
|
24
|
+
もし "セーブボタン" をクリックする
|
25
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
26
|
+
|
27
|
+
ならば 確認メッセージ "前に01.rbという名前でセーブしているけど本当にセーブしますか?\nセーブすると前に作成したプログラムは消えてしまうよ!" を表示すること
|
28
|
+
かつ ホームディレクトリの "01.rb" の内容が "puts 'Hello, World!'" であること
|
29
|
+
|
30
|
+
もし JavaScriptによるリクエストが終わるまで待つ
|
31
|
+
|
32
|
+
ならば "メッセージ" に "セーブしました" を含むこと
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# language: ja
|
3
|
+
@javascript
|
4
|
+
機能: Base - 基本
|
5
|
+
シナリオ: トップページにアクセスしてエディタ画面を表示する
|
6
|
+
もし "トップページ" にアクセスする
|
7
|
+
|
8
|
+
ならば "Rubyタブ" が表示されていること
|
9
|
+
かつ "テキストエディタ" が表示されていること
|
10
|
+
かつ "プログラム名の入力欄" が表示されていること
|
11
|
+
かつ "セーブボタン" が表示されていること
|
12
|
+
かつ テキストエディタにフォーカスがあること
|
13
|
+
かつ テキストエディタの 0 行目の 0 文字目にカーソルがあること
|
14
|
+
|
15
|
+
シナリオ: プログラムを入力後にページを遷移する
|
16
|
+
前提 "エディタ" 画面を表示する
|
17
|
+
かつ テキストエディタに "puts 'Hello, World!'" を入力済みである
|
18
|
+
かつ プログラムの名前に "01.rb" を指定する
|
19
|
+
|
20
|
+
もし ページをリロードする
|
21
|
+
かつ 警告ダイアログの "dismiss" ボタンをクリックする
|
22
|
+
|
23
|
+
ならば テキストエディタのプログラムは "puts 'Hello, World!'" であること
|
24
|
+
かつ "プログラム名の入力欄" は "01.rb" であること
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# language: ja
|
3
|
+
@javascript
|
4
|
+
機能: Check - プログラムのエラーチェック
|
5
|
+
シナリオ: チェックボタンを押してプログラムにシンタックスエラーがないいことをチェックできる
|
6
|
+
前提 "エディタ" 画面を表示する
|
7
|
+
かつ テキストエディタに "puts 'Hello, World!'" を入力済みである
|
8
|
+
|
9
|
+
もし "チェックボタン" をクリックする
|
10
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
11
|
+
|
12
|
+
ならば "メッセージ" に "チェックしました" を含むこと
|
13
|
+
かつ "メッセージ" に "ただし、プログラムを動かすとエラーが見つかるかもしれません。" を含むこと
|
14
|
+
|
15
|
+
シナリオ: チェックボタンを押してプログラムにシンタックスエラーがあることをチェックできる
|
16
|
+
前提 "エディタ" 画面を表示する
|
17
|
+
かつ テキストエディタに "puts Hello, World!'" を入力済みである
|
18
|
+
|
19
|
+
もし "チェックボタン" をクリックする
|
20
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
21
|
+
|
22
|
+
ならば "メッセージ" に "エラー" を含むこと
|
23
|
+
かつ "メッセージ" に "1行、19文字: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('" を含むこと
|
24
|
+
かつ "メッセージ" に "1行: unterminated string meets end of file" を含むこと
|
25
|
+
かつ "メッセージ" に "チェックしました" を含まないこと
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# language: ja
|
3
|
+
@javascript
|
4
|
+
機能: Load - プログラムのロード
|
5
|
+
シナリオ: プログラムを読み込む
|
6
|
+
前提 "エディタ" 画面を表示する
|
7
|
+
|
8
|
+
もし "files/01.rb" をロードする
|
9
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
10
|
+
|
11
|
+
ならば テキストエディタに "files/01.rb" を読み込むこと
|
12
|
+
かつ "プログラム名の入力欄" は "01.rb" であること
|
13
|
+
かつ テキストエディタの 0 行目の 0 文字目にカーソルがあること
|
14
|
+
かつ テキストエディタにフォーカスがあること
|
15
|
+
かつ "メッセージ" に "ロードしました" を含むこと
|
16
|
+
|
17
|
+
シナリオ: プログラムを入力済み状態でプログラムを読み込む
|
18
|
+
前提 "エディタ" 画面を表示する
|
19
|
+
かつ テキストエディタに "puts 'Hello, World!'" を入力済みである
|
20
|
+
|
21
|
+
もし "files/01.rb" をロードする
|
22
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
23
|
+
|
24
|
+
ならば テキストエディタに "files/01.rb" を読み込むこと
|
25
|
+
かつ "プログラム名の入力欄" は "01.rb" であること
|
26
|
+
かつ テキストエディタの 0 行目の 0 文字目にカーソルがあること
|
27
|
+
かつ テキストエディタにフォーカスがあること
|
28
|
+
かつ "メッセージ" に "ロードしました" を含むこと
|
29
|
+
|
30
|
+
シナリオ: 間違って画像を読み込もうとする
|
31
|
+
前提 "エディタ" 画面を表示する
|
32
|
+
|
33
|
+
もし "files/favicon.ico" をロードする
|
34
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
35
|
+
|
36
|
+
ならば テキストエディタのプログラムは "" であること
|
37
|
+
かつ "プログラム名の入力欄" は "" であること
|
38
|
+
かつ "メッセージ" に "favicon.icoはRubyのプログラムではありません" を含むこと
|
39
|
+
かつ "メッセージ" に "ロードしました" を含まないこと
|
40
|
+
|
41
|
+
シナリオ: プログラムを修正後にロードボタンを押す
|
42
|
+
前提 "エディタ" 画面を表示する
|
43
|
+
かつ テキストエディタに "puts 'Hello, World!'" を入力済みである
|
44
|
+
|
45
|
+
もし "ロードボタン" をクリックする
|
46
|
+
|
47
|
+
ならば 確認メッセージ "まだセーブしていないのでロードするとプログラムが消えてしまうよ!\nそれでもロードしますか?" を表示すること
|
48
|
+
|
49
|
+
シナリオ: プログラムを修正後にセーブしてからロードボタンを押す
|
50
|
+
前提 "エディタ" 画面を表示する
|
51
|
+
かつ テキストエディタに "puts 'Hello, World!'" を入力済みである
|
52
|
+
かつ プログラムの名前に "01.rb" を指定する
|
53
|
+
かつ "セーブボタン" をクリックする
|
54
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
55
|
+
かつ ダウンロードが完了するまで待つ
|
56
|
+
かつ 実際にはファイルをロードしないようにしておく
|
57
|
+
|
58
|
+
もし "ロードボタン" をクリックする
|
59
|
+
|
60
|
+
ならば 確認メッセージを表示しないこと
|
61
|
+
|
62
|
+
シナリオ: プログラムを修正後にプログラムをロードしてからロードボタンを押す
|
63
|
+
前提 "エディタ" 画面を表示する
|
64
|
+
かつ テキストエディタに "puts 'Hello, World!'" を入力済みである
|
65
|
+
かつ "files/01.rb" をロードする
|
66
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
67
|
+
かつ 実際にはファイルをロードしないようにしておく
|
68
|
+
|
69
|
+
もし "ロードボタン" をクリックする
|
70
|
+
|
71
|
+
ならば 確認メッセージを表示しないこと
|
72
|
+
|
73
|
+
シナリオ: プログラムを修正後に間違って画像をロードしてからロードボタンを押す
|
74
|
+
前提 "エディタ" 画面を表示する
|
75
|
+
かつ テキストエディタに "puts 'Hello, World!'" を入力済みである
|
76
|
+
かつ "files/favicon.ico" をロードする
|
77
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
78
|
+
|
79
|
+
もし "ロードボタン" をクリックする
|
80
|
+
|
81
|
+
ならば 確認メッセージ "まだセーブしていないのでロードするとプログラムが消えてしまうよ!\nそれでもロードしますか?" を表示すること
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# language: ja
|
3
|
+
@javascript
|
4
|
+
機能: Save - プログラムのセーブ
|
5
|
+
シナリオ: セーブボタンを押してプログラムを保存できる
|
6
|
+
前提 "エディタ" 画面を表示する
|
7
|
+
かつ テキストエディタに "puts 'Hello, World!'" を入力済みである
|
8
|
+
かつ プログラムの名前に "01.rb" を指定する
|
9
|
+
|
10
|
+
もし "セーブボタン" をクリックする
|
11
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
12
|
+
|
13
|
+
ならば "01.rb" をダウンロードすること
|
14
|
+
かつ "メッセージ" に "セーブしました" を含むこと
|
15
|
+
|
16
|
+
シナリオ: 日本語のファイル名でプログラムを保存できる
|
17
|
+
前提 "エディタ" 画面を表示する
|
18
|
+
かつ テキストエディタに "puts 'Hello, World!'" を入力済みである
|
19
|
+
かつ プログラムの名前に "日本語.rb" を指定する
|
20
|
+
|
21
|
+
もし "セーブボタン" をクリックする
|
22
|
+
かつ JavaScriptによるリクエストが終わるまで待つ
|
23
|
+
|
24
|
+
ならば "日本語.rb" をダウンロードすること
|
25
|
+
かつ "メッセージ" に "セーブしました" を含むこと
|
26
|
+
|
27
|
+
シナリオ: ファイル名を入力せずにセーブボタンを押す
|
28
|
+
前提 "エディタ" 画面を表示する
|
29
|
+
|
30
|
+
もし "セーブボタン" をクリックする
|
31
|
+
|
32
|
+
ならば ダウンロードしないこと
|
33
|
+
かつ "プログラム名の入力欄" にフォーカスがあること
|
34
|
+
かつ "メッセージ" に "セーブする前にプログラムに名前をつけてね!" を含むこと
|