From 0515d9017eaef9d5adf61baa2c9ff79766a77b66 Mon Sep 17 00:00:00 2001 From: mhirtie Date: Wed, 17 Dec 2014 17:11:38 +0200 Subject: [PATCH 1/2] Added generating of typescript files for controller and scaffold generators. --- .../typescript/assets/assets_generator.rb | 13 +++++++++++++ .../typescript/assets/templates/javascript.ts | 0 lib/typescript/rails/engine.rb | 5 ++++- test/asset_generator_test.rb | 15 +++++++++++++++ test/controller_generator_test.rb | 19 +++++++++++++++++++ test/scaffold_generator_test.rb | 19 +++++++++++++++++++ test/support/routes.rb | 0 7 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 lib/rails/generators/typescript/assets/assets_generator.rb create mode 100644 lib/rails/generators/typescript/assets/templates/javascript.ts create mode 100644 test/asset_generator_test.rb create mode 100644 test/controller_generator_test.rb create mode 100644 test/scaffold_generator_test.rb create mode 100644 test/support/routes.rb diff --git a/lib/rails/generators/typescript/assets/assets_generator.rb b/lib/rails/generators/typescript/assets/assets_generator.rb new file mode 100644 index 0000000..1fef1eb --- /dev/null +++ b/lib/rails/generators/typescript/assets/assets_generator.rb @@ -0,0 +1,13 @@ +require "rails/generators/named_base" + +module Typescript + module Generators + class AssetsGenerator < ::Rails::Generators::NamedBase + source_root File.expand_path("../templates", __FILE__) + + def copy_coffee + template "javascript.ts", File.join('app/assets/javascripts', class_path, "#{file_name}.ts") + end + end + end +end diff --git a/lib/rails/generators/typescript/assets/templates/javascript.ts b/lib/rails/generators/typescript/assets/templates/javascript.ts new file mode 100644 index 0000000..e69de29 diff --git a/lib/typescript/rails/engine.rb b/lib/typescript/rails/engine.rb index 40b0e90..ce4eb3f 100644 --- a/lib/typescript/rails/engine.rb +++ b/lib/typescript/rails/engine.rb @@ -1,6 +1,9 @@ require 'rails/engine' class Typescript::Rails::Engine < Rails::Engine - # For now, let's not be the default generator ... # config.app_generators.javascript_engine :ts + + if config.respond_to?(:annotations) + config.annotations.register_extensions("ts") { |annotation| /#\s*(#{annotation}):?\s*(.*)$/ } + end end \ No newline at end of file diff --git a/test/asset_generator_test.rb b/test/asset_generator_test.rb new file mode 100644 index 0000000..699e7b0 --- /dev/null +++ b/test/asset_generator_test.rb @@ -0,0 +1,15 @@ +require 'test_helper' +require 'rails/generators/typescript/assets/assets_generator' + +class AssetGeneratorTest < Rails::Generators::TestCase + tests Typescript::Generators::AssetsGenerator + + destination File.expand_path("../tmp", __FILE__) + setup :prepare_destination + + def test_assets + run_generator %w(posts) + assert_no_file "app/assets/javascripts/posts.js" + assert_file "app/assets/javascripts/posts.ts" + end +end diff --git a/test/controller_generator_test.rb b/test/controller_generator_test.rb new file mode 100644 index 0000000..c2db1cc --- /dev/null +++ b/test/controller_generator_test.rb @@ -0,0 +1,19 @@ +require 'test_helper' +require 'rails/generators/rails/controller/controller_generator' +require 'rails/generators/typescript/assets/assets_generator' + +class ControllerGeneratorTest < Rails::Generators::TestCase + tests Rails::Generators::ControllerGenerator + + destination File.expand_path("../tmp", __FILE__) + setup do + prepare_destination + copy_routes + end + + def test_assets + run_generator %w(posts --javascript-engine=typescript --orm=false) + assert_no_file "app/assets/javascripts/posts.js" + assert_file "app/assets/javascripts/posts.ts" + end +end diff --git a/test/scaffold_generator_test.rb b/test/scaffold_generator_test.rb new file mode 100644 index 0000000..67e85d2 --- /dev/null +++ b/test/scaffold_generator_test.rb @@ -0,0 +1,19 @@ +require 'test_helper' +require 'rails/generators/rails/scaffold/scaffold_generator' +require 'rails/generators/typescript/assets/assets_generator' + +class ScaffoldGeneratorTest < Rails::Generators::TestCase + tests Rails::Generators::ScaffoldGenerator + + destination File.expand_path("../tmp", __FILE__) + setup do + prepare_destination + copy_routes + end + + def test_assets + run_generator %w(posts --javascript-engine=typescript --orm=false) + assert_no_file "app/assets/javascripts/posts.js" + assert_file "app/assets/javascripts/posts.ts" + end +end diff --git a/test/support/routes.rb b/test/support/routes.rb new file mode 100644 index 0000000..e69de29 From 08e943b90d583782b0a3ec0d364bee2b27113389 Mon Sep 17 00:00:00 2001 From: mhirtie Date: Wed, 17 Dec 2014 17:20:18 +0200 Subject: [PATCH 2/2] Fixed generator name. --- README.md | 5 +++++ lib/typescript/rails/engine.rb | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4109442..2d71af4 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,11 @@ Configurations: Typescript::Rails::Compiler.default_options = [ ... ] ``` +To use typescript template generator, add to your config file: + +``` +config.app_generators.javascript_engine :typescript +``` ## Contributing diff --git a/lib/typescript/rails/engine.rb b/lib/typescript/rails/engine.rb index ce4eb3f..2015c08 100644 --- a/lib/typescript/rails/engine.rb +++ b/lib/typescript/rails/engine.rb @@ -1,7 +1,7 @@ require 'rails/engine' class Typescript::Rails::Engine < Rails::Engine - # config.app_generators.javascript_engine :ts + # config.app_generators.javascript_engine :typescript if config.respond_to?(:annotations) config.annotations.register_extensions("ts") { |annotation| /#\s*(#{annotation}):?\s*(.*)$/ } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy