test_rails_js 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/js_tests_controller.rb +9 -2
- data/app/helpers/js_tests_helper.rb +17 -0
- data/app/views/js_tests/_tests.html.erb +12 -0
- data/app/views/js_tests/index.html.erb +10 -5
- data/app/views/js_tests/show.html.erb +7 -0
- data/config/routes.rb +2 -1
- data/lib/test_rails_js/version.rb +1 -1
- data/lib/test_rails_js.rb +11 -0
- metadata +8 -6
@@ -10,8 +10,15 @@ class JsTestsController < ActionController::Base
|
|
10
10
|
private
|
11
11
|
def tests
|
12
12
|
@tests ||= Rails.application.config.assets.paths.inject([]){ |tests, path|
|
13
|
-
|
14
|
-
|
13
|
+
asset_path = Pathname(path)
|
14
|
+
tests + (
|
15
|
+
Dir[path + "/*_tests.js"] +
|
16
|
+
Dir[path + "/tests/**/*.js"]
|
17
|
+
).map{ |test|
|
18
|
+
{ :asset => Pathname(test).relative_path_from(asset_path).sub_ext('').to_s,
|
19
|
+
:path => Pathname(test).relative_path_from(Rails.root) }
|
20
|
+
}
|
21
|
+
}
|
15
22
|
end
|
16
23
|
|
17
24
|
def test
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module JsTestsHelper
|
2
|
+
def global_assets
|
3
|
+
Rails.application.config.test_rails_js.global_assets
|
4
|
+
end
|
5
|
+
|
6
|
+
def tests_by_path
|
7
|
+
tests.inject({}) do |acc, test|
|
8
|
+
node = acc
|
9
|
+
path, test_name = test[:path].split
|
10
|
+
path.each_filename do |name|
|
11
|
+
node = (node[name] ||= {})
|
12
|
+
end
|
13
|
+
node[test_name.to_s] = test[:asset]
|
14
|
+
acc
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<% tests.each do |path, tests| %>
|
2
|
+
<% if tests.is_a? Hash %>
|
3
|
+
<dd>
|
4
|
+
<dl>
|
5
|
+
<dt><%= path %></dt>
|
6
|
+
<%= render :partial => 'tests', :locals => { :tests => tests } %>
|
7
|
+
</dl>
|
8
|
+
</dd>
|
9
|
+
<% else %>
|
10
|
+
<dd><%= link_to path, main_app.js_test_path(tests) %></dd>
|
11
|
+
<% end %>
|
12
|
+
<% end %>
|
@@ -1,11 +1,16 @@
|
|
1
1
|
<html>
|
2
2
|
<head>
|
3
|
+
<title>Test Rails JS</title>
|
4
|
+
<style>
|
5
|
+
body { line-height: 1.2; }
|
6
|
+
dl, dt, dd { margin: 0; padding: 0; }
|
7
|
+
body > dd > dl { margin-bottom: 1em; }
|
8
|
+
dl > dd { padding-left: 1em; }
|
9
|
+
</style>
|
3
10
|
</head>
|
4
11
|
<body>
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
<% end %>
|
9
|
-
</ul>
|
12
|
+
<% tests_by_path.each do |path, tests| %>
|
13
|
+
<%= render :partial => 'tests', :locals => { :tests => tests } %>
|
14
|
+
<% end %>
|
10
15
|
</body>
|
11
16
|
</html>
|
@@ -1,8 +1,15 @@
|
|
1
1
|
<html>
|
2
2
|
<head>
|
3
|
+
<title><%= test %> - Test Rails JS</title>
|
4
|
+
<% global_assets.stylesheets.each do |asset| %>
|
5
|
+
<%= stylesheet_link_tag asset %>
|
6
|
+
<% end %>
|
3
7
|
<%= stylesheet_link_tag test %>
|
4
8
|
</head>
|
5
9
|
<body>
|
10
|
+
<% global_assets.javascripts.each do |asset| %>
|
11
|
+
<%= javascript_include_tag asset %>
|
12
|
+
<% end %>
|
6
13
|
<%= javascript_include_tag test %>
|
7
14
|
</body>
|
8
15
|
</html>
|
data/config/routes.rb
CHANGED
data/lib/test_rails_js.rb
CHANGED
@@ -2,4 +2,15 @@ module TestRailsJs
|
|
2
2
|
class Engine < Rails::Engine
|
3
3
|
engine_name "test_rails_js"
|
4
4
|
end
|
5
|
+
|
6
|
+
class Railtie < ::Rails::Railtie
|
7
|
+
module TestRailsJsContext
|
8
|
+
attr_accessor :test_rails_js_config
|
9
|
+
end
|
10
|
+
|
11
|
+
config.test_rails_js = ActiveSupport::OrderedOptions.new
|
12
|
+
config.test_rails_js.global_assets = ActiveSupport::OrderedOptions.new
|
13
|
+
config.test_rails_js.global_assets.javascripts = []
|
14
|
+
config.test_rails_js.global_assets.stylesheets = []
|
15
|
+
end
|
5
16
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test_rails_js
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-09-
|
12
|
+
date: 2011-09-12 00:00:00.000000000 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
|
-
requirement: &
|
17
|
+
requirement: &84479880 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 3.1.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *84479880
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: sqlite3
|
28
|
-
requirement: &
|
28
|
+
requirement: &84479650 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,7 +33,7 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *84479650
|
37
37
|
description: Test your rails JS in-browser.
|
38
38
|
email:
|
39
39
|
- Douglas.Meyer@Centro.net
|
@@ -43,7 +43,9 @@ extra_rdoc_files: []
|
|
43
43
|
files:
|
44
44
|
- app/views/js_tests/index.html.erb
|
45
45
|
- app/views/js_tests/show.html.erb
|
46
|
+
- app/views/js_tests/_tests.html.erb
|
46
47
|
- app/controllers/js_tests_controller.rb
|
48
|
+
- app/helpers/js_tests_helper.rb
|
47
49
|
- config/routes.rb
|
48
50
|
- lib/test_rails_js/version.rb
|
49
51
|
- lib/test_rails_js.rb
|