ember-es6_template 0.1.0.1 → 0.1.1

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: 1c0b45001d31e2dde1626d4430d29b62fae8636b
4
- data.tar.gz: 9e653d602755f2df6fce34d8ee001b6574abf552
3
+ metadata.gz: 661c005dad918587ad5ffa2a738b4a826f484a3a
4
+ data.tar.gz: 1d6dc39a2036f8eadc4cde6b0e58b0068b557969
5
5
  SHA512:
6
- metadata.gz: 83584ea6e61b636bd7600274240bbdb3ca1efc0e4dc14fcdef35fa87f0ad6d78897a5970179da45fff13fd696d67e48986570fe13667bd9f431e57e5f0c3408d
7
- data.tar.gz: 57ca2e240cd9bf04c033db0319c8bbfaaf694387a62564e430dc6dd9ea1b5628d9b5033b189f0eaa7429ec8cf245eccaea989975c2974e63b51255c3c3c2a921
6
+ metadata.gz: 27e48a0469752c936954eb165ec13b517080a631c6f68d5487866177d0fced2e04c01342f1393ac8f6ba25c7cd898a8c764d65d2a379ca76e49425e5a83fb3a5
7
+ data.tar.gz: 360ded629dfb2979ae65a1801abd8391d893c421781a6da735f0fb5077b4b3219ca4ae9daddb4f3b51d34acaa56fb79b920af4b5fd08e32c40756e0564127ba5
@@ -25,4 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency 'rake', '~> 10.0'
26
26
  spec.add_development_dependency 'minitest', '~> 5.0'
27
27
  spec.add_development_dependency 'minitest-power_assert'
28
+ spec.add_development_dependency 'coffee-script', '~> 2.3'
28
29
  end
@@ -9,18 +9,26 @@ module Ember
9
9
  when /^2\./
10
10
  autoload :ES6, 'ember/es6_template/es6_sprockets2'
11
11
  autoload :ES6Module, 'ember/es6_template/es6module_sprockets2'
12
+ autoload :CoffeeScript, 'ember/es6_template/coffee_script_sprockets2'
12
13
 
13
14
  def self.setup(env)
14
15
  env.register_engine '.es6', ES6
15
16
  env.register_engine '.module', ES6Module
17
+ env.register_engine '.coffee', CoffeeScript
16
18
  end
17
19
  when /^3\./
18
20
  autoload :ES6, 'ember/es6_template/es6'
19
21
  autoload :ES6Module, 'ember/es6_template/es6module'
22
+ autoload :CoffeeScript, 'ember/es6_template/coffee_script'
23
+ autoload :CoffeeScriptModule, 'ember/es6_template/coffee_script_module'
24
+ autoload :CoffeeScriptHelper, 'ember/es6_template/coffee_script_helper'
20
25
 
21
26
  def self.setup(env)
22
27
  env.register_engine '.es6', ES6, mime_type: 'application/javascript'
23
28
  env.register_engine '.module.es6', ES6Module, mime_type: 'application/javascript'
29
+ env.register_engine '.module.coffee', CoffeeScriptModule, mime_type: 'application/javascript'
30
+ env.register_engine '.coffee', CoffeeScript, mime_type: 'application/javascript' # Force parse as ES6
31
+
24
32
  end
25
33
  else
26
34
  raise "Unsupported sprockets version: #{Sprockets::VERSION}"
@@ -0,0 +1,7 @@
1
+ module Ember
2
+ module ES6Template
3
+ class CoffeeScript < ES6
4
+ include CoffeeScriptHelper
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,30 @@
1
+ module Ember
2
+ module ES6Template
3
+ module CoffeeScriptHelper
4
+ def call(input)
5
+ data = input[:data]
6
+
7
+ result = input[:cache].fetch(cache_key + [data]) do
8
+ transform(
9
+ Sprockets::Autoload::CoffeeScript.compile(data, bare: true),
10
+ input
11
+ )
12
+ end
13
+
14
+ result['code']
15
+ end
16
+
17
+ private
18
+
19
+ def cache_key
20
+ [
21
+ self.class.name,
22
+ VERSION,
23
+ Babel::Transpiler.version,
24
+ Babel::Transpiler.source_version,
25
+ Sprockets::Autoload::CoffeeScript.version
26
+ ]
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,7 @@
1
+ module Ember
2
+ module ES6Template
3
+ class CoffeeScriptModule < ES6Module
4
+ include CoffeeScriptHelper
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,45 @@
1
+ module Ember
2
+ module ES6Template
3
+ class CoffeeScript < Tilt::CoffeeScriptTemplate
4
+ def evaluate(scope, locals, &block)
5
+ env = scope.environment
6
+
7
+ filename = scope.pathname.to_s
8
+
9
+ if es6_module?(filename)
10
+ result = Babel::Transpiler.transform(
11
+ ::CoffeeScript.compile(data, bare: true),
12
+ 'modules' => 'amd',
13
+ 'moduleIds' => true,
14
+ 'sourceRoot' => env.root,
15
+ 'moduleRoot' => '',
16
+ 'filename' => scope.logical_path,
17
+ 'blacklist' => ['es6.modules'] # Next precessor transpile module syntax
18
+ )
19
+ elsif es6?(filename)
20
+ result = Babel::Transpiler.transform(
21
+ ::CoffeeScript.compile(data, bare: true),
22
+ 'sourceRoot' => env.root,
23
+ 'moduleRoot' => '',
24
+ 'filename' => scope.logical_path
25
+ )
26
+ else
27
+ return super
28
+ end
29
+
30
+ result['code']
31
+ end
32
+
33
+ private
34
+
35
+ def es6_module?(filename)
36
+ filename =~ /\.module\.(?:es6\.)?coffee/
37
+ end
38
+
39
+ def es6?(filename)
40
+ filename =~ /\.(?:es6\.)?coffee/
41
+ end
42
+ end
43
+ end
44
+ end
45
+
@@ -13,11 +13,7 @@ module Ember
13
13
  data = input[:data]
14
14
 
15
15
  result = input[:cache].fetch(cache_key + [data]) do
16
- Babel::Transpiler.transform(data,
17
- 'sourceRoot' => input[:load_path],
18
- 'moduleRoot' => '',
19
- 'filename' => input[:filename]
20
- )
16
+ transform(data, input)
21
17
  end
22
18
 
23
19
  result['code']
@@ -25,6 +21,14 @@ module Ember
25
21
 
26
22
  private
27
23
 
24
+ def transform(data, input)
25
+ Babel::Transpiler.transform(data,
26
+ 'sourceRoot' => input[:load_path],
27
+ 'moduleRoot' => '',
28
+ 'filename' => input[:filename]
29
+ )
30
+ end
31
+
28
32
  def cache_key
29
33
  [
30
34
  self.class.name,
@@ -13,13 +13,7 @@ module Ember
13
13
  data = input[:data]
14
14
 
15
15
  result = input[:cache].fetch(cache_key + [data]) do
16
- Babel::Transpiler.transform(data,
17
- 'modules' => 'amd',
18
- 'moduleIds' => true,
19
- 'sourceRoot' => input[:load_path],
20
- 'moduleRoot' => '',
21
- 'filename' => input[:name]
22
- )
16
+ transform(data, input)
23
17
  end
24
18
 
25
19
  result['code']
@@ -27,6 +21,16 @@ module Ember
27
21
 
28
22
  private
29
23
 
24
+ def transform(data, input)
25
+ Babel::Transpiler.transform(data,
26
+ 'modules' => 'amd',
27
+ 'moduleIds' => true,
28
+ 'sourceRoot' => input[:load_path],
29
+ 'moduleRoot' => '',
30
+ 'filename' => input[:name]
31
+ )
32
+ end
33
+
30
34
  def cache_key
31
35
  [
32
36
  self.class.name,
@@ -1,5 +1,5 @@
1
1
  module Ember
2
2
  module ES6Template
3
- VERSION = '0.1.0.1'
3
+ VERSION = '0.1.1'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ember-es6_template
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryunosuke SATO
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-03-31 00:00:00.000000000 Z
11
+ date: 2015-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: babel-transpiler
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: coffee-script
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.3'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.3'
97
111
  description: The tilt template for Ember specified ES6.
98
112
  email:
99
113
  - tricknotes.rs@gmail.com
@@ -111,6 +125,10 @@ files:
111
125
  - bin/setup
112
126
  - ember-es6_template.gemspec
113
127
  - lib/ember/es6_template.rb
128
+ - lib/ember/es6_template/coffee_script.rb
129
+ - lib/ember/es6_template/coffee_script_helper.rb
130
+ - lib/ember/es6_template/coffee_script_module.rb
131
+ - lib/ember/es6_template/coffee_script_sprockets2.rb
114
132
  - lib/ember/es6_template/es6.rb
115
133
  - lib/ember/es6_template/es6_sprockets2.rb
116
134
  - lib/ember/es6_template/es6module.rb