ruby_es6_module_transpiler 0.0.4 → 0.0.5
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 +4 -4
- data/lib/ruby_es6_module_transpiler.rb +25 -5
- data/lib/ruby_es6_module_transpiler/version.rb +1 -1
- data/lib/support/{es6-module-transpiler.js → es6-module-transpiler.min.js} +0 -0
- data/spec/js-tests/default-amd-name.js +7 -0
- data/spec/js-tests/default-amd-options.js +5 -0
- data/spec/js-tests/default-es6.js +1 -0
- data/spec/js-tests/export-amd.js +2 -2
- data/spec/js-tests/export-cjs.js +12 -0
- data/spec/js-tests/export-globals.js +14 -0
- data/spec/js-tests/export-yui.js +15 -0
- data/spec/ruby_es6_module_transpiler_spec.rb +50 -0
- metadata +15 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0119a4cc3b3e9c36f7ce5e9490c0f6a5f8113e7
|
4
|
+
data.tar.gz: ed05f4f76c9e5eb6fcdf8332c5dae338c2a4b31d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7bf70f76121b7925ec549aa9e5a2dabfb24089ec893e919c83f03f8190f1862a307040621056dfb06d1cdd4207e8ec39cb6d9aa3d17ef56ea415a49397dcf677
|
7
|
+
data.tar.gz: cd9d5b8876c5016dff2357e87b642ddb6609bd6cbb9fe439d531dd1b3943e4dab22ee4d1ad970c7d9fd159c77e400a90c3ee57f8eecdb8069def0cf8a8d01247
|
@@ -22,24 +22,44 @@ module RubyES6ModuleTranspiler
|
|
22
22
|
|
23
23
|
private
|
24
24
|
def transpiler_js_path
|
25
|
-
File.expand_path('../support/es6-module-transpiler.js', __FILE__)
|
25
|
+
File.expand_path('../support/es6-module-transpiler.min.js', __FILE__)
|
26
26
|
end
|
27
27
|
|
28
28
|
def generate_source(options)
|
29
|
-
type = options[:type] || :AMD
|
30
29
|
source = <<-SOURCE
|
31
30
|
var Compiler, compiler, output;
|
32
31
|
Compiler = require("#{transpiler_js_path}").Compiler;
|
33
|
-
compiler = new Compiler(#{::JSON.generate(@js_code, quirks_mode: true)});
|
34
|
-
return output = compiler
|
32
|
+
compiler = new Compiler(#{::JSON.generate(@js_code, quirks_mode: true)}, '#{module_name(options)}', #{options.to_json});
|
33
|
+
return output = compiler.#{compiler_type(options)}();
|
35
34
|
SOURCE
|
36
35
|
end
|
37
36
|
|
38
37
|
def read_js_file(path)
|
39
|
-
file = File.open(
|
38
|
+
file = File.open(path, "rb")
|
40
39
|
data = file.read
|
41
40
|
file.close
|
42
41
|
data
|
43
42
|
end
|
43
|
+
|
44
|
+
def compiler_type(options)
|
45
|
+
available_types = {
|
46
|
+
amd: 'AMD',
|
47
|
+
cjs: 'CJS',
|
48
|
+
yui: 'YUI',
|
49
|
+
globals: 'Globals'
|
50
|
+
}
|
51
|
+
|
52
|
+
if options[:type]
|
53
|
+
type = available_types[options[:type].downcase.to_sym] || 'AMD'
|
54
|
+
else
|
55
|
+
type = 'AMD'
|
56
|
+
end
|
57
|
+
|
58
|
+
"to#{type}"
|
59
|
+
end
|
60
|
+
|
61
|
+
def module_name(options)
|
62
|
+
options[:moduleName]
|
63
|
+
end
|
44
64
|
end
|
45
65
|
end
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
import { get, set } from 'ember';
|
data/spec/js-tests/export-amd.js
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
YUI.add("@NAME@", function(Y, NAME, __imports__, __exports__) {
|
2
|
+
"use strict";
|
3
|
+
var get = function(obj, key) {
|
4
|
+
return obj[key];
|
5
|
+
};
|
6
|
+
|
7
|
+
var set = function(obj, key, value) {
|
8
|
+
obj[key] = value;
|
9
|
+
return obj;
|
10
|
+
};
|
11
|
+
|
12
|
+
__exports__.get = get;
|
13
|
+
__exports__.set = set;
|
14
|
+
return __exports__;
|
15
|
+
}, "@VERSION@", {"es":true,"requires":[]});
|
@@ -1,5 +1,28 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
describe RubyES6ModuleTranspiler do
|
3
|
+
let(:input) { read_file("default-es6.js") }
|
4
|
+
|
5
|
+
describe "for case sensitive cases" do
|
6
|
+
it "should not care whether AMD is capitalized or not" do
|
7
|
+
expect{ RubyES6ModuleTranspiler.transpile(input, { type: "Amd"}) }.to_not raise_error
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "for passing in optional parameters" do
|
12
|
+
it "should allow for specifying module names" do
|
13
|
+
transpiled_file = RubyES6ModuleTranspiler.transpile(input, { type: "AMD", moduleName: "renamed" })
|
14
|
+
expected = read_file("default-amd-name.js")
|
15
|
+
expect(transpiled_file).to eq(expected)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should allow for optional parameter hash" do
|
19
|
+
# overrides default name of "window" with "renamed"
|
20
|
+
transpiled_file = RubyES6ModuleTranspiler.transpile(input, { type: "Globals", global: "renamed" })
|
21
|
+
expected = read_file("default-amd-options.js")
|
22
|
+
expect(transpiled_file).to eq(expected)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
3
26
|
describe "for importing es6" do
|
4
27
|
let(:input) { read_file("import-es6.js") }
|
5
28
|
it "should default to amd" do
|
@@ -26,4 +49,31 @@ describe RubyES6ModuleTranspiler do
|
|
26
49
|
expect(transpiled_file).to eq(expected)
|
27
50
|
end
|
28
51
|
end
|
52
|
+
|
53
|
+
describe "for exporting es6" do
|
54
|
+
let(:input) { read_file("export-es6.js") }
|
55
|
+
it "should default to amd" do
|
56
|
+
transpiled_file = RubyES6ModuleTranspiler.transpile(input)
|
57
|
+
expected = read_file("export-amd.js")
|
58
|
+
expect(transpiled_file).to eq(expected)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should allow for cjs compile" do
|
62
|
+
transpiled_file = RubyES6ModuleTranspiler.transpile(input, { type: "CJS"})
|
63
|
+
expected = read_file("export-cjs.js")
|
64
|
+
expect(transpiled_file).to eq(expected)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should allow for yui compile" do
|
68
|
+
transpiled_file = RubyES6ModuleTranspiler.transpile(input, { type: "YUI"})
|
69
|
+
expected = read_file("export-yui.js")
|
70
|
+
expect(transpiled_file).to eq(expected)
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should allow for globals compile" do
|
74
|
+
transpiled_file = RubyES6ModuleTranspiler.transpile(input, { type: "Globals"})
|
75
|
+
expected = read_file("export-globals.js")
|
76
|
+
expect(transpiled_file).to eq(expected)
|
77
|
+
end
|
78
|
+
end
|
29
79
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_es6_module_transpiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Irvin Zhan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: execjs
|
@@ -81,11 +81,17 @@ files:
|
|
81
81
|
- Rakefile
|
82
82
|
- lib/ruby_es6_module_transpiler.rb
|
83
83
|
- lib/ruby_es6_module_transpiler/version.rb
|
84
|
-
- lib/support/es6-module-transpiler.js
|
84
|
+
- lib/support/es6-module-transpiler.min.js
|
85
85
|
- lib/support/es6-node-runner.js
|
86
86
|
- ruby_es6_module_transpiler.gemspec
|
87
|
+
- spec/js-tests/default-amd-name.js
|
88
|
+
- spec/js-tests/default-amd-options.js
|
89
|
+
- spec/js-tests/default-es6.js
|
87
90
|
- spec/js-tests/export-amd.js
|
91
|
+
- spec/js-tests/export-cjs.js
|
88
92
|
- spec/js-tests/export-es6.js
|
93
|
+
- spec/js-tests/export-globals.js
|
94
|
+
- spec/js-tests/export-yui.js
|
89
95
|
- spec/js-tests/import-amd.js
|
90
96
|
- spec/js-tests/import-cjs.js
|
91
97
|
- spec/js-tests/import-es6.js
|
@@ -120,8 +126,14 @@ specification_version: 4
|
|
120
126
|
summary: Preparing your JS for the next generation ES6. Uses Square's ES6 Module
|
121
127
|
Transpiler (https://github.com/square/es6-module-transpiler)
|
122
128
|
test_files:
|
129
|
+
- spec/js-tests/default-amd-name.js
|
130
|
+
- spec/js-tests/default-amd-options.js
|
131
|
+
- spec/js-tests/default-es6.js
|
123
132
|
- spec/js-tests/export-amd.js
|
133
|
+
- spec/js-tests/export-cjs.js
|
124
134
|
- spec/js-tests/export-es6.js
|
135
|
+
- spec/js-tests/export-globals.js
|
136
|
+
- spec/js-tests/export-yui.js
|
125
137
|
- spec/js-tests/import-amd.js
|
126
138
|
- spec/js-tests/import-cjs.js
|
127
139
|
- spec/js-tests/import-es6.js
|