rails-sandbox-assets 0.0.1 → 0.0.2

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.
data/README.md CHANGED
@@ -8,19 +8,66 @@ Add this line to your application's Gemfile:
8
8
 
9
9
  gem 'rails-sandbox-assets'
10
10
 
11
+ Or if you prefer to use the master branch:
12
+
13
+ gem 'rails-sandbox-assets', git: 'git://github.com/rosenfeld/rails-sandbox-assets' # or:
14
+ gem 'rails-sandbox-assets', github: 'rosenfeld/rails-sandbox-assets' # Bundler-pre syntax
15
+
11
16
  And then execute:
12
17
 
13
18
  $ bundle
14
19
 
15
20
  ## Usage
16
21
 
22
+ Place your tests under _test/javascripts/\*\_test.js_ or _specs/javascripts/\*\_spec.js.coffee_.
23
+ Use JavaScript or CoffeeScript.
24
+
25
+ You can add your test assets to _test/assets/javascripts_, _test/assets/stylesheets_,.
26
+ _specs/assets/javascripts_ and _specs/assets/stylesheets_.
27
+
17
28
  $ rake sandbox_assets:serve
18
29
 
19
30
  Follow the instructions in http://localhost:5000 for how to override the void bundled test-runner.
20
31
 
32
+ You can run a subset of your tests by specifying a path like _http://localhost:5000/products_.
33
+
34
+ This will only run your tests which path starts with _test/javascripts/products_, for example.
35
+
21
36
  ## Settings
22
37
 
23
- TODO: Talk about the engine config options
38
+ You can change your settings directly from config/application.rb, if you want to:
39
+
40
+ config.sandbox_assets.template = 'spec_runner/runner'
41
+
42
+ By default this setting is nil, which will follow the Rails convention and use
43
+ _app/views/sandbox_assets/test_runner/index.html.erb_. You could actually use HAML if you prefer.
44
+
45
+ Just create such file in your application to override the default one. With the option in the
46
+ example above, you should create your view in _app/views/spec_runner/runner.html.erb_.
47
+
48
+ Or you can create a separate initializer if you prefer:
49
+
50
+ # config/initializers/setup_sandbox_assets.rb
51
+ SandboxAssets::Engine.config.sandbox_assets.tap do |c|
52
+ c.template = 'test_runner/index' # set the runner template path
53
+ c.disable_template_param = true
54
+ end
55
+
56
+ Default settings:
57
+
58
+ c.port = 5000
59
+ # By default, sandbox_assets will look for your tests in test/javascripts and specs/javascripts
60
+ c.tests_roots = %w(test/javascripts specs/javascripts)
61
+ # Add to Rails assets path. Besides your tests/specs, any assets in those paths will be served
62
+ # by the asset pipeline:
63
+ c.assets_paths = c.tests_roots +
64
+ %w(test/assets/javascripts test/assets/stylesheets
65
+ specs/assets/javascripts specs/assets/stylesheets)
66
+ # Pattern to find your tests or specs inside the tests_roots directories:
67
+ c.tests_patterns = %w(**/*_{test,spec}.{js,coffee}*)
68
+ # By default, you can override which template to use in the params, like:
69
+ # http://localhost:5000/?template=spec_runner/runner
70
+ c.disable_template_param = false
24
71
 
25
72
  ## Examples
26
73
 
@@ -2,9 +2,36 @@ require "sandbox_assets/test_asset"
2
2
 
3
3
  module SandboxAssets
4
4
  class BaseController < ActionController::Base
5
- def index
5
+ before_filter :find_tests
6
+ before_filter :extract_template_from_params
7
+ before_filter :render_template
8
+
9
+ # additional before_filters can use this
10
+ def template=(template)
11
+ @template = template
12
+ end
13
+
14
+ protected
15
+
16
+ def find_tests
6
17
  @tests = TestAsset.find_tests(params)
7
18
  end
19
+
20
+ def extract_template_from_params
21
+ @template ||= params[:template] unless cfg.disable_template_param
22
+ end
23
+
24
+ def render_template
25
+ render @template if template
26
+ end
27
+
28
+ def template
29
+ @template ||= cfg.template
30
+ end
31
+
32
+ def cfg
33
+ @cfg ||= Engine.config.sandbox_assets
34
+ end
8
35
  end
9
36
  end
10
37
 
@@ -1,14 +1,17 @@
1
1
  module SandboxAssets
2
2
  class Settings
3
3
  attr_reader :options
4
- attr_accessor :tests_roots, :assets_paths, :tests_patterns, :port
4
+ attr_accessor :tests_roots, :assets_paths, :tests_patterns, :port,
5
+ :template, :disable_template_param
5
6
 
6
7
  def initialize
7
8
  @tests_roots = %w(test/javascripts specs/javascripts)
8
- @assets_paths = @tests_roots +
9
- %w(test/assets/javascripts test/assets/stylesheets)
9
+ @assets_paths = @tests_roots +
10
+ %w(test/assets/javascripts test/assets/stylesheets
11
+ specs/assets/javascripts specs/assets/stylesheets)
10
12
  @tests_patterns = %w(**/*_{test,spec}.{js,coffee}*)
11
13
  @port = 5000
14
+ @disable_template_param = false
12
15
  @options = {}
13
16
  end
14
17
  end
@@ -1,3 +1,3 @@
1
1
  module SandboxAssets
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-sandbox-assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -65,7 +65,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
65
65
  version: '0'
66
66
  segments:
67
67
  - 0
68
- hash: -2162416191991109472
68
+ hash: -3281811653558395831
69
69
  required_rubygems_version: !ruby/object:Gem::Requirement
70
70
  none: false
71
71
  requirements:
@@ -74,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
74
74
  version: '0'
75
75
  segments:
76
76
  - 0
77
- hash: -2162416191991109472
77
+ hash: -3281811653558395831
78
78
  requirements: []
79
79
  rubyforge_project:
80
80
  rubygems_version: 1.8.21