traceur-rails 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 89d0cda983ca80da5274d724bffcfdc479cb9832
4
- data.tar.gz: bcdbf7ecedc0432c6f46b073cd427f9dcc100a41
3
+ metadata.gz: 701692d3fe09e5b07d6e0d4031d620f3050793d6
4
+ data.tar.gz: 6cab1f31fcc1ec293ad12a6c8d21314c0285a7d5
5
5
  SHA512:
6
- metadata.gz: 105ede05f4b941fb2786c8eb1150b3ec02f1cd8ea0e567a1e7ad4beccd16a7e3593048ffea514fc4c8198dd34bc303929184723dfcd086c7500dce2024b1795e
7
- data.tar.gz: 216e4e09ce235da7716e8fc54bf91fdb5d6fd72d9f4a0d4dea8e00be77fbf23915795f5ac3e4b0276d1ed6c8f07dd91bfbdff3a51925ae2a2bcaa3830c434f0e
6
+ metadata.gz: 74248dfa71342627f69aad2cc3a5257e9917fa2c400cb4bba93086ff1ca8bdea2383c89e0d3513bb8f8f387b08a2a8c6e9da96ee50229c56c56d874e65ab4db1
7
+ data.tar.gz: 77ddf64a3d835c0afee7c6388bcda9e6d2cb85c7535e26224f859e4b03b055426183fa4efc45adaeaa5c9f58c52731a12b9d0f0e802a0939dc3484d194a09088
data/README.md CHANGED
@@ -4,13 +4,23 @@
4
4
  gem install traceur-rails
5
5
  ```
6
6
 
7
+ [Here on rubygems.org](https://rubygems.org/gems/traceur-rails)
8
+
7
9
  ## Requirements
8
10
 
9
- Requires `node` to be installed.
11
+ Requires [`node`](http://nodejs.org) to be installed.
10
12
 
11
13
  ## Usage
12
14
 
13
- Despite being named `traceur-rails` this gem can be used with any project that uses `sprockets`. Use `.tc` as the extension for any file that would normally use a `.js` extension and the file will be compiled with `traceur`.
15
+ Despite being named `traceur-rails` this gem can be used with any project that uses [`sprockets`](https://github.com/sstephenson/sprockets). Use `.tc` as the extension for any file that would normally use a `.js` extension and the file will be compiled with `traceur`.
16
+
17
+ ## traceur modules
18
+
19
+ Tracuer offers a `modules` configuration option. Generally this will be set in an initializer. This allows you to specify how modules should be compiled. The options are available in the [traceur-compiler wiki](https://github.com/google/traceur-compiler/wiki/Options-for-Compiling)
20
+
21
+ ```ruby
22
+ Traceur::Config.compile_to :amd
23
+ ```
14
24
 
15
25
  ## Author
16
26
 
@@ -2,7 +2,7 @@ module Traceur
2
2
  module Config
3
3
  class << self
4
4
  def compile_to
5
- @compile_to || :amd
5
+ @compile_to || :register
6
6
  end
7
7
 
8
8
  def compile_to=(target)
@@ -22,14 +22,6 @@ module Traceur
22
22
  prefix
23
23
  end
24
24
 
25
- def transform=(transform)
26
- @transform = transform
27
- end
28
-
29
- def transform
30
- @transform
31
- end
32
-
33
25
  def compiler_options
34
26
  @compiler_options ||= {}
35
27
  end
@@ -28,11 +28,11 @@ module Traceur
28
28
  var traceur = require("#{traceur_path}");
29
29
  var result = traceur.compile(#{::JSON.generate(data, quirks_mode: true)}, {
30
30
  filename: '#{module_name(scope.root_path, scope.logical_path)}',
31
- modules: 'register'
31
+ modules: '#{Traceur::Config.compile_to}'
32
32
  });
33
33
 
34
- if (result.error) {
35
- throw result.error;
34
+ if (result.errors && result.errors.length) {
35
+ throw "\\n" + result.errors.join("\\n");
36
36
  }
37
37
 
38
38
  return result.js;
@@ -40,18 +40,11 @@ module Traceur
40
40
  end
41
41
 
42
42
  def module_name(root_path, logical_path)
43
- path = ''
44
43
  if prefix = Traceur::Config.lookup_prefix(File.join(root_path, logical_path))
45
- path = File.join(prefix, logical_path)
44
+ File.join(prefix, logical_path)
46
45
  else
47
- path = logical_path
46
+ logical_path
48
47
  end
49
-
50
- if Traceur::Config.transform
51
- path = Traceur::Config.transform.call(path)
52
- end
53
-
54
- path
55
48
  end
56
49
 
57
50
  def traceur_path
@@ -1,3 +1,3 @@
1
1
  module Traceur
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -0,0 +1,12 @@
1
+ System.register("foo", [], function() {
2
+ "use strict";
3
+ var __moduleName = "foo";
4
+ var dep = $traceurRuntime.assertObject(System.get("dep")).default;
5
+ var foo = function() {
6
+ console.log('bar');
7
+ };
8
+ var $__default = foo;
9
+ return {get default() {
10
+ return $__default;
11
+ }};
12
+ });
@@ -0,0 +1,7 @@
1
+ import dep from 'dep';
2
+
3
+ var foo = function() {
4
+ console.log('bar');
5
+ };
6
+
7
+ export default foo;
@@ -3,43 +3,19 @@ require 'traceur-rails'
3
3
  require 'execjs'
4
4
 
5
5
  describe Traceur::Template do
6
+ Scope = Struct.new('Scope', :root_path, :logical_path)
6
7
 
7
- Scope = Struct.new('Scope', :root_path, :logical_path)
8
-
9
- before do
10
- @source = <<-JS
11
- import dep from 'dep';
12
-
13
- var foo = function() {
14
- console.log('bar');
15
- };
16
-
17
- export default foo;
18
- JS
8
+ before do
9
+ @source = fixture('source.tc')
19
10
  @source.strip!
20
11
  @scope = Scope.new('', 'foo')
21
12
  end
22
13
 
23
- it 'transpiles tc files' do
24
- expected = <<-JS
25
- System.register("foo", [], function() {
26
- "use strict";
27
- var __moduleName = "foo";
28
- var dep = $traceurRuntime.assertObject(System.get("dep")).default;
29
- var foo = function() {
30
- console.log('bar');
31
- };
32
- var $__default = foo;
33
- return {get default() {
34
- return $__default;
35
- }};
36
- });
37
- JS
14
+ it 'transpiles tc files' do
15
+ expected = fixture('compiled_register.js')
38
16
  expected.lstrip!
39
17
 
40
18
  template = Traceur::Template.new { @source }
41
- template.render(@scope).must_equal expected
19
+ template.render(@scope).must_equal(expected)
42
20
  end
43
-
44
-
45
21
  end
data/test/test_helper.rb CHANGED
@@ -11,3 +11,7 @@ class MiniTest::Spec
11
11
  alias :context :describe
12
12
  end
13
13
  end
14
+
15
+ def fixture(filename)
16
+ IO.read("test/fixtures/#{filename}")
17
+ end
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ['Aaron Ackerman']
10
10
  spec.email = ['theron17@gmail.com']
11
11
  spec.summary = %q{Traceur Compiler integration with Sprockets}
12
- spec.description = %q{Compile Traceur Compiler supported Javascript with Sprockets}
12
+ spec.description = %q{Traceur Compiler supported Javascript with Sprockets}
13
13
  spec.homepage = ''
14
14
  spec.license = 'MIT'
15
15
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: traceur-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Ackerman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-11 00:00:00.000000000 Z
11
+ date: 2014-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: execjs
@@ -80,7 +80,7 @@ dependencies:
80
80
  - - ">"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 2.0.0
83
- description: Compile Traceur Compiler supported Javascript with Sprockets
83
+ description: Traceur Compiler supported Javascript with Sprockets
84
84
  email:
85
85
  - theron17@gmail.com
86
86
  executables: []
@@ -119,6 +119,8 @@ files:
119
119
  - lib/traceur/template.rb
120
120
  - lib/traceur/tilt.rb
121
121
  - lib/traceur/version.rb
122
+ - test/fixtures/compiled_register.js
123
+ - test/fixtures/source.tc
122
124
  - test/template_test.rb
123
125
  - test/test_helper.rb
124
126
  - traceur-rails.gemspec
@@ -147,5 +149,7 @@ signing_key:
147
149
  specification_version: 4
148
150
  summary: Traceur Compiler integration with Sprockets
149
151
  test_files:
152
+ - test/fixtures/compiled_register.js
153
+ - test/fixtures/source.tc
150
154
  - test/template_test.rb
151
155
  - test/test_helper.rb