From 8447a51eeb9f37bc19c003c1c69a8b2d21f150e5 Mon Sep 17 00:00:00 2001 From: Joel Van Horn Date: Fri, 25 Sep 2015 11:49:52 -0400 Subject: [PATCH 1/3] Reference Rails Engine path (when mounted inside one) --- lib/generators/casino/install/install_generator.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/generators/casino/install/install_generator.rb b/lib/generators/casino/install/install_generator.rb index c2628277..f30c63ef 100644 --- a/lib/generators/casino/install/install_generator.rb +++ b/lib/generators/casino/install/install_generator.rb @@ -27,11 +27,11 @@ def copy_config_files return unless options['config_files'] copy_file 'cas.yml', 'config/cas.yml' - copy_file 'casino_and_overrides.scss', 'app/assets/stylesheets/casino_and_overrides.scss' + copy_file 'casino_and_overrides.scss', build_file_path('app/assets/stylesheets', '/casino_and_overrides.scss') end def insert_assets_loader - insert_into_file 'app/assets/javascripts/application.js', :after => %r{//= require +['"]?jquery_ujs['"]?} do + insert_into_file build_file_path('app/assets/javascripts', '/application.js'), :after => %r{//= require +['"]?jquery_ujs['"]?} do "\n//= require casino" end end @@ -43,5 +43,14 @@ def insert_engine_routes def show_readme readme 'README' end + + private + def build_file_path(root, path) + engine_name = Rails::Generators.namespace.to_s.underscore + engine_path = "/#{engine_name}" unless engine_name.blank? + + [root, engine_path, path].compact.join + end + end end From 94afb63b7c73fc7403767ff596c2c79c41af0557 Mon Sep 17 00:00:00 2001 From: Joel Van Horn Date: Fri, 25 Sep 2015 11:50:28 -0400 Subject: [PATCH 2/3] Copy migrations with a generator because `rake casino:install:migrations` doesn't work from Rails Engine --- .../casino/install/install_generator.rb | 2 +- lib/generators/casino/migration_generator.rb | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 lib/generators/casino/migration_generator.rb diff --git a/lib/generators/casino/install/install_generator.rb b/lib/generators/casino/install/install_generator.rb index f30c63ef..d823486a 100644 --- a/lib/generators/casino/install/install_generator.rb +++ b/lib/generators/casino/install/install_generator.rb @@ -20,7 +20,7 @@ class InstallGenerator < Rails::Generators::Base def install_migrations return unless options['migration'] - rake 'casino:install:migrations' + generate 'casino:migration' end def copy_config_files diff --git a/lib/generators/casino/migration_generator.rb b/lib/generators/casino/migration_generator.rb new file mode 100644 index 00000000..46885edd --- /dev/null +++ b/lib/generators/casino/migration_generator.rb @@ -0,0 +1,25 @@ +require 'rails/generators/active_record' + +module CASino + class MigrationGenerator < ::Rails::Generators::Base + include Rails::Generators::Migration + source_root File.expand_path('../../../../db/migrate', __FILE__) + + namespace 'casino:migration' + + desc 'Installs CASino migration files.' + + def install + source_paths.each do |source_path| + Dir["#{source_path}/*.rb"].each do |filename| + puts "MIGRATION TEMPLATE: #{File.basename(filename)}" + migration_template File.basename(filename), "db/migrate/#{File.basename(filename).sub(/^\d+_/, '')}" + end + end + end + + def self.next_migration_number(dirname) + ActiveRecord::Generators::Base.next_migration_number(dirname) + end + end +end \ No newline at end of file From 9f3a930ce9342b4d8d177ef40bd1471b497b3131 Mon Sep 17 00:00:00 2001 From: Joel Van Horn Date: Sat, 26 Sep 2015 13:51:09 -0400 Subject: [PATCH 3/3] Simplified adding namespace to paths --- lib/generators/casino/install/install_generator.rb | 11 ++++------- lib/generators/casino/migration_generator.rb | 1 - 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/generators/casino/install/install_generator.rb b/lib/generators/casino/install/install_generator.rb index d823486a..16c10ea5 100644 --- a/lib/generators/casino/install/install_generator.rb +++ b/lib/generators/casino/install/install_generator.rb @@ -27,11 +27,11 @@ def copy_config_files return unless options['config_files'] copy_file 'cas.yml', 'config/cas.yml' - copy_file 'casino_and_overrides.scss', build_file_path('app/assets/stylesheets', '/casino_and_overrides.scss') + copy_file 'casino_and_overrides.scss', "app/assets/stylesheets/#{namespace_name}/casino_and_overrides.scss".squeeze('/') end def insert_assets_loader - insert_into_file build_file_path('app/assets/javascripts', '/application.js'), :after => %r{//= require +['"]?jquery_ujs['"]?} do + insert_into_file "app/assets/javascripts/#{namespace_name}/application.js".squeeze('/'), :after => %r{//= require +['"]?jquery_ujs['"]?} do "\n//= require casino" end end @@ -45,11 +45,8 @@ def show_readme end private - def build_file_path(root, path) - engine_name = Rails::Generators.namespace.to_s.underscore - engine_path = "/#{engine_name}" unless engine_name.blank? - - [root, engine_path, path].compact.join + def namespace_name + Rails::Generators.namespace.to_s.underscore end end diff --git a/lib/generators/casino/migration_generator.rb b/lib/generators/casino/migration_generator.rb index 46885edd..868b43b9 100644 --- a/lib/generators/casino/migration_generator.rb +++ b/lib/generators/casino/migration_generator.rb @@ -12,7 +12,6 @@ class MigrationGenerator < ::Rails::Generators::Base def install source_paths.each do |source_path| Dir["#{source_path}/*.rb"].each do |filename| - puts "MIGRATION TEMPLATE: #{File.basename(filename)}" migration_template File.basename(filename), "db/migrate/#{File.basename(filename).sub(/^\d+_/, '')}" end end