typescript-rails 0.6.2.3 → 0.6.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.md +4 -0
- data/README.md +17 -0
- data/lib/rails/generators/typescript/assets/assets_generator.rb +13 -0
- data/lib/rails/generators/typescript/assets/templates/javascript.ts +3 -0
- data/lib/typescript/rails/engine.rb +15 -3
- data/lib/typescript/rails/js_hook.rb +15 -0
- data/lib/typescript/rails/version.rb +1 -1
- data/test/assets_generator_test.rb +15 -0
- data/test/controller_generator_test.rb +19 -0
- data/test/scaffold_generator_test.rb +19 -0
- data/test/support/routes.rb +1 -0
- data/test/test_helper.rb +3 -0
- metadata +13 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ba55625d79bfc90c48a9f2ffc7bff39451b9fc9
|
4
|
+
data.tar.gz: fba7be46b49d00e0176cfb3c10b1246336c516bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16013c661b36ad9e59afa8b048c50f2927bf30db9bf4a0fc7b8d29cdb66075d421f0fa3c6f9a9ff322c89a08daf427c38ef18d7f36c51f4ed4bc32237f047f48
|
7
|
+
data.tar.gz: 06ca3adb3994e6a532c04910dd6373abc0c6b150e94857b175e54703ae3f06775a82643aab58c97db29fb2c3c5545ba84b8a180124602ccbccb0e7fb275168d5
|
data/CHANGES.md
CHANGED
data/README.md
CHANGED
@@ -43,6 +43,23 @@ Configurations:
|
|
43
43
|
Typescript::Rails::Compiler.default_options = [ ... ]
|
44
44
|
```
|
45
45
|
|
46
|
+
## Default Javascript Compilation
|
47
|
+
|
48
|
+
Add this line to your `config/application.rb` as show below, above the `config.assets.enabled = true`:
|
49
|
+
|
50
|
+
```ruby
|
51
|
+
config.app_generators.javascript_engine :typescript
|
52
|
+
|
53
|
+
# Enable the asset pipeline
|
54
|
+
config.assets.enabled = true
|
55
|
+
```
|
56
|
+
|
57
|
+
If you don't want it to be the default javascript engine, you can also use it adhoc as show below:
|
58
|
+
|
59
|
+
```ruby
|
60
|
+
rails g controller MyController --javascript_engine=typescript
|
61
|
+
```
|
62
|
+
|
46
63
|
## Referenced TypeScript dependencies
|
47
64
|
|
48
65
|
`typescript-rails` recurses through all [TypeScript-style](https://github.com/teppeis/typescript-spec-md/blob/master/en/ch11.md#1111-source-files-dependencies) referenced files and tells its [`Sprockets::Context`](https://github.com/sstephenson/sprockets/blob/master/lib/sprockets/context.rb) that the TS file being processed [`depend`s`_on`](https://github.com/sstephenson/sprockets#the-depend_on-directive) each file listed as a reference. This activates Sprocket’s cache-invalidation behavior when any of the descendant references of the root TS file is changed.
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require "rails/generators/named_base"
|
2
|
+
|
3
|
+
module Typescript
|
4
|
+
module Generators
|
5
|
+
class AssetsGenerator < ::Rails::Generators::NamedBase
|
6
|
+
source_root File.expand_path("../templates", __FILE__)
|
7
|
+
|
8
|
+
def copy_typescript
|
9
|
+
template "javascript.ts", File.join('app/assets/javascripts', class_path, "#{file_name}.ts")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -1,6 +1,18 @@
|
|
1
1
|
require 'rails/engine'
|
2
|
+
require 'rails/generators'
|
3
|
+
require 'typescript/rails/js_hook'
|
2
4
|
|
3
5
|
class Typescript::Rails::Engine < Rails::Engine
|
4
|
-
#
|
5
|
-
# config.app_generators.javascript_engine :
|
6
|
-
|
6
|
+
# To become the default generator...
|
7
|
+
# config.app_generators.javascript_engine :typescript
|
8
|
+
|
9
|
+
if config.respond_to?(:annotations)
|
10
|
+
config.annotations.register_extensions(".ts") { |annotation| /#\s*(#{annotation}):?\s*(.*)$/ }
|
11
|
+
end
|
12
|
+
|
13
|
+
initializer 'override js_template hook' do |app|
|
14
|
+
if app.config.generators.rails[:javascript_engine] == :typescript
|
15
|
+
::Rails::Generators::NamedBase.send :include, Typescript::Rails::JsHook
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Typescript
|
2
|
+
module Rails
|
3
|
+
module JsHook
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
included do
|
7
|
+
no_tasks do
|
8
|
+
redefine_method :js_template do |source, destination|
|
9
|
+
template(source + '.ts', destination + '.ts')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'rails/generators/typescript/assets/assets_generator'
|
3
|
+
|
4
|
+
class AssetGeneratorTest < Rails::Generators::TestCase
|
5
|
+
tests Typescript::Generators::AssetsGenerator
|
6
|
+
|
7
|
+
destination File.expand_path("../tmp", __FILE__)
|
8
|
+
setup :prepare_destination
|
9
|
+
|
10
|
+
def test_assets
|
11
|
+
run_generator %w(posts)
|
12
|
+
assert_no_file "app/assets/javascripts/posts.js"
|
13
|
+
assert_file "app/assets/javascripts/posts.ts"
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'rails/generators/rails/controller/controller_generator'
|
3
|
+
require 'rails/generators/typescript/assets/assets_generator'
|
4
|
+
|
5
|
+
class ControllerGeneratorTest < Rails::Generators::TestCase
|
6
|
+
tests Rails::Generators::ControllerGenerator
|
7
|
+
|
8
|
+
destination File.expand_path("../tmp", __FILE__)
|
9
|
+
setup do
|
10
|
+
prepare_destination
|
11
|
+
copy_routes
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_assets
|
15
|
+
run_generator %w(posts --javascript-engine=typescript --orm=false)
|
16
|
+
assert_no_file "app/assets/javascripts/posts.js"
|
17
|
+
assert_file "app/assets/javascripts/posts.ts"
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'rails/generators/rails/scaffold/scaffold_generator'
|
3
|
+
require 'rails/generators/typescript/assets/assets_generator'
|
4
|
+
|
5
|
+
class ScaffoldGeneratorTest < Rails::Generators::TestCase
|
6
|
+
tests Rails::Generators::ScaffoldGenerator
|
7
|
+
|
8
|
+
destination File.expand_path("../tmp", __FILE__)
|
9
|
+
setup do
|
10
|
+
prepare_destination
|
11
|
+
copy_routes
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_assets
|
15
|
+
run_generator %w(posts --javascript-engine=typescript --orm=false)
|
16
|
+
assert_no_file "app/assets/javascripts/posts.js"
|
17
|
+
assert_file "app/assets/javascripts/posts.ts"
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
# routes dummy file
|
data/test/test_helper.rb
CHANGED
@@ -18,6 +18,9 @@ require 'rails'
|
|
18
18
|
require 'rails/test_help'
|
19
19
|
require 'minitest-power_assert'
|
20
20
|
|
21
|
+
# For generators
|
22
|
+
require 'rails/generators/test_case'
|
23
|
+
|
21
24
|
def copy_routes
|
22
25
|
routes = File.expand_path('../support/routes.rb', __FILE__)
|
23
26
|
destination = File.join(destination_root, 'config')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: typescript-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.2.
|
4
|
+
version: 0.6.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- FUJI, Goro
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-09-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: typescript-node
|
@@ -70,16 +70,21 @@ files:
|
|
70
70
|
- README.md
|
71
71
|
- Rakefile
|
72
72
|
- lib/assets/javascripts/typescript.js.erb
|
73
|
+
- lib/rails/generators/typescript/assets/assets_generator.rb
|
74
|
+
- lib/rails/generators/typescript/assets/templates/javascript.ts
|
73
75
|
- lib/typescript-rails.rb
|
74
76
|
- lib/typescript/rails.rb
|
75
77
|
- lib/typescript/rails/compiler.rb
|
76
78
|
- lib/typescript/rails/engine.rb
|
79
|
+
- lib/typescript/rails/js_hook.rb
|
77
80
|
- lib/typescript/rails/railtie.rb
|
78
81
|
- lib/typescript/rails/template.rb
|
79
82
|
- lib/typescript/rails/template_handler.rb
|
80
83
|
- lib/typescript/rails/transformer.rb
|
81
84
|
- lib/typescript/rails/version.rb
|
85
|
+
- test/assets_generator_test.rb
|
82
86
|
- test/assets_test.rb
|
87
|
+
- test/controller_generator_test.rb
|
83
88
|
- test/fixtures/assets/javascripts/hello.js.ts
|
84
89
|
- test/fixtures/assets/javascripts/included.ts
|
85
90
|
- test/fixtures/assets/javascripts/reference.ts
|
@@ -93,6 +98,8 @@ files:
|
|
93
98
|
- test/fixtures/site/ref3_1.js.ts
|
94
99
|
- test/fixtures/site/ref3_2.ts
|
95
100
|
- test/fixtures/site/ref3_3.ts
|
101
|
+
- test/scaffold_generator_test.rb
|
102
|
+
- test/support/routes.rb
|
96
103
|
- test/template_handler_test.rb
|
97
104
|
- test/test_helper.rb
|
98
105
|
- typescript-rails.gemspec
|
@@ -120,7 +127,9 @@ signing_key:
|
|
120
127
|
specification_version: 4
|
121
128
|
summary: Adds Typescript to the Rails Asset pipeline
|
122
129
|
test_files:
|
130
|
+
- test/assets_generator_test.rb
|
123
131
|
- test/assets_test.rb
|
132
|
+
- test/controller_generator_test.rb
|
124
133
|
- test/fixtures/assets/javascripts/hello.js.ts
|
125
134
|
- test/fixtures/assets/javascripts/included.ts
|
126
135
|
- test/fixtures/assets/javascripts/reference.ts
|
@@ -134,6 +143,8 @@ test_files:
|
|
134
143
|
- test/fixtures/site/ref3_1.js.ts
|
135
144
|
- test/fixtures/site/ref3_2.ts
|
136
145
|
- test/fixtures/site/ref3_3.ts
|
146
|
+
- test/scaffold_generator_test.rb
|
147
|
+
- test/support/routes.rb
|
137
148
|
- test/template_handler_test.rb
|
138
149
|
- test/test_helper.rb
|
139
150
|
has_rdoc:
|