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.

Files changed (110) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +25 -0
  3. data/.rspec +4 -0
  4. data/.rubocop.yml +19 -0
  5. data/.ruby-version +1 -0
  6. data/.simplecov +7 -0
  7. data/.travis.yml +23 -0
  8. data/LEGAL +13 -0
  9. data/LICENSE +22 -0
  10. data/Procfile +1 -0
  11. data/README.rdoc +46 -0
  12. data/Rakefile +9 -0
  13. data/app/assets/images/.keep +0 -0
  14. data/app/assets/images/favicon.ico +0 -0
  15. data/app/assets/javascripts/application.js +21 -0
  16. data/app/assets/javascripts/editor.js.coffee.erb +139 -0
  17. data/app/assets/stylesheets/application.css +19 -0
  18. data/app/assets/stylesheets/editor.css.scss +19 -0
  19. data/app/assets/stylesheets/flatstrap-custom.css.scss +2 -0
  20. data/app/controllers/application_controller.rb +5 -0
  21. data/app/controllers/concerns/.keep +0 -0
  22. data/app/controllers/editor_controller.rb +5 -0
  23. data/app/controllers/source_codes_controller.rb +106 -0
  24. data/app/helpers/application_helper.rb +2 -0
  25. data/app/helpers/editor_helper.rb +2 -0
  26. data/app/mailers/.keep +0 -0
  27. data/app/models/.keep +0 -0
  28. data/app/models/concerns/.keep +0 -0
  29. data/app/models/source_code.rb +49 -0
  30. data/app/views/editor/index.html.erb +23 -0
  31. data/app/views/layouts/application.html.erb +15 -0
  32. data/bin/bundle +3 -0
  33. data/bin/rails +4 -0
  34. data/bin/rake +4 -0
  35. data/bin/smalruby-editor +80 -0
  36. data/config/application.rb +16 -0
  37. data/config/boot.rb +17 -0
  38. data/config/database.yml.mysql2 +48 -0
  39. data/config/database.yml.sqlite3 +31 -0
  40. data/config/database.yml.travis +5 -0
  41. data/config/environment.rb +5 -0
  42. data/config/environments/development.rb +30 -0
  43. data/config/environments/production.rb +86 -0
  44. data/config/environments/standalone.rb +16 -0
  45. data/config/environments/test.rb +46 -0
  46. data/config/initializers/backtrace_silencers.rb +9 -0
  47. data/config/initializers/filter_parameter_logging.rb +4 -0
  48. data/config/initializers/inflections.rb +16 -0
  49. data/config/initializers/mime_types.rb +5 -0
  50. data/config/initializers/secret_token.rb +17 -0
  51. data/config/initializers/session_store.rb +4 -0
  52. data/config/initializers/wrap_parameters.rb +15 -0
  53. data/config/locales/en.yml +23 -0
  54. data/config/routes.rb +68 -0
  55. data/config/unicorn.rb +23 -0
  56. data/config.ru +4 -0
  57. data/db/migrate/20131216121603_create_source_codes.rb +9 -0
  58. data/db/migrate/20131219045113_add_filename_to_source_code.rb +5 -0
  59. data/db/schema.rb +23 -0
  60. data/db/seeds.rb +7 -0
  61. data/lib/assets/.keep +0 -0
  62. data/lib/smalruby_editor/version.rb +3 -0
  63. data/lib/smalruby_editor.rb +46 -0
  64. data/lib/tasks/.keep +0 -0
  65. data/lib/tasks/gem.rake +10 -0
  66. data/lib/tasks/rspec.rake +16 -0
  67. data/lib/tasks/rubocop.rake +3 -0
  68. data/log/.keep +0 -0
  69. data/public/404.html +58 -0
  70. data/public/422.html +58 -0
  71. data/public/500.html +57 -0
  72. data/public/assets/application-759ce4d1ac1e0e3991e6d350c8f98fc5.js +5267 -0
  73. data/public/assets/application-759ce4d1ac1e0e3991e6d350c8f98fc5.js.gz +0 -0
  74. data/public/assets/application-f51ea0e777d97f12a8ce84308f31eb57.css +4791 -0
  75. data/public/assets/application-f51ea0e777d97f12a8ce84308f31eb57.css.gz +0 -0
  76. data/public/assets/favicon-c7ae857bb9d06de8742ae2d337157e83.ico +0 -0
  77. data/public/assets/loading-e8e6dd7833131c92a6c3b9c8ccc6a6ac.gif +0 -0
  78. data/public/assets/manifest-f86249f9779f8f4d7c8fc148e4361b4f.json +1 -0
  79. data/public/assets/progressbar-82023a146fba2a0f6d925629ed2b09c5.gif +0 -0
  80. data/public/favicon.ico +0 -0
  81. data/public/fonts/FontAwesome.otf +0 -0
  82. data/public/fonts/fontawesome-webfont.eot +0 -0
  83. data/public/fonts/fontawesome-webfont.ttf +0 -0
  84. data/public/fonts/fontawesome-webfont.woff +0 -0
  85. data/public/robots.txt +5 -0
  86. data/smalruby-editor.gemspec +81 -0
  87. data/spec/acceptance/readme.md +3 -0
  88. data/spec/acceptance/standalone/save.feature +32 -0
  89. data/spec/acceptance/text_editor/base.feature +24 -0
  90. data/spec/acceptance/text_editor/check.feature +25 -0
  91. data/spec/acceptance/text_editor/load.feature +81 -0
  92. data/spec/acceptance/text_editor/save.feature +34 -0
  93. data/spec/controllers/editor_controller_spec.rb +12 -0
  94. data/spec/controllers/source_codes_controller_spec.rb +469 -0
  95. data/spec/fixtures/files/01.rb +57 -0
  96. data/spec/fixtures/files/favicon.ico +0 -0
  97. data/spec/helpers/editor_helper_spec.rb +14 -0
  98. data/spec/lib/smalruby_editor_spec.rb +66 -0
  99. data/spec/models/source_code_spec.rb +55 -0
  100. data/spec/spec_helper.rb +156 -0
  101. data/spec/steps/ace_steps.rb +59 -0
  102. data/spec/steps/global_variable.rb +39 -0
  103. data/spec/steps/text_editor_steps.rb +183 -0
  104. data/spec/support/assets.rb +18 -0
  105. data/spec/support/capybara.rb +17 -0
  106. data/spec/support/env.rb +15 -0
  107. data/spec/turnip_helper.rb +2 -0
  108. data/vendor/assets/javascripts/.keep +0 -0
  109. data/vendor/assets/stylesheets/.keep +0 -0
  110. metadata +407 -0
@@ -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"}}
File without changes
Binary file
data/public/robots.txt ADDED
@@ -0,0 +1,5 @@
1
+ # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
+ #
3
+ # To ban all spiders from the entire site uncomment the next two lines:
4
+ # User-agent: *
5
+ # Disallow: /
@@ -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,3 @@
1
+ smalruby-editorはRubyのプログラムを作成するためのビジュアルエディタです。 [Scratch](http://scratch.mit.edu/) のようにブロックを使ってプログラムを作成できます。それだけではなく、直接入力してプログラムを作成することもできます。
2
+
3
+ 詳しくは https://github.com/smalruby/smalruby-editor をご覧ください。
@@ -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
+ かつ "メッセージ" に "セーブする前にプログラムに名前をつけてね!" を含むこと
@@ -0,0 +1,12 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'spec_helper'
3
+ require 'nkf'
4
+
5
+ describe EditorController do
6
+ describe 'エディタ画面を表示する (GET index)' do
7
+ it 'returns http success' do
8
+ get :index
9
+ response.should be_success
10
+ end
11
+ end
12
+ end