traceur-rails 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.
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