77 desc 'Install karma files'
88 task :install do
99 puts 'Generating Karma files'
10- RailsKarma ::Installer . karma
11- RailsKarma ::Installer . angular_files
12- RailsKarma ::Installer . karma_config
10+ RailsKarma ::Installer . install_karma_lib
11+ RailsKarma ::Installer . ignore_node_modules
12+ RailsKarma ::Installer . make_vendor_dir
13+ RailsKarma ::Installer . copy_angularjs_files
14+ RailsKarma ::Installer . copy_angularjs_resource_files
15+ RailsKarma ::Installer . copy_karma_config
16+ RailsKarma ::Installer . create_karma_dir
17+ RailsKarma ::Installer . copy_test_spec
1318 end
1419
1520 desc 'Uninstall karma files'
2025
2126 files . each do |f |
2227 if File . exists? f
23- puts f
28+ puts "rm -rf #{ f } "
2429 FileUtils . rm_rf f
2530 end
2631 end
3237
3338module RailsKarma
3439 class Installer
35- def self . karma
40+ def self . install_karma_lib
3641 unless File . exists? ( 'package.json' )
3742 puts './package.json'
3843 File . open ( 'package.json' , 'w' ) { |f | f . write '{}' }
@@ -41,37 +46,71 @@ def self.karma
4146 puts 'installing karma'
4247 puts `npm install karma --save-dev`
4348 end
49+ end
50+
51+ def self . ignore_node_modules
4452 unless File . open ( '.gitignore' ) { |f | f . read . include? 'node_modules' }
4553 puts 'adding node_modules to .gitignore'
4654 File . open ( '.gitignore' , 'a' ) { |f | f . write "node_modules\n " }
4755 end
4856 end
4957
50- def self . angular_files
51- vendor_dir = File . join ( 'vendor' , 'assets' , 'javascripts' , 'rails_karma' )
58+ def self . vendor_dir
59+ File . join ( 'vendor' , 'assets' , 'javascripts' , 'rails_karma' )
60+ end
61+
62+ def self . rails_resource_dir
63+ File . join ( vendor_dir , 'angularjs-rails-resource' )
64+ end
65+
66+ def self . make_vendor_dir
5267 unless Dir . exists? ( vendor_dir )
53- puts vendor_dir
68+ puts "mkdir #{ vendor_dir } "
5469 Dir . mkdir vendor_dir
5570 end
71+ unless Dir . exists? ( rails_resource_dir )
72+ puts "mkdir #{ rails_resource_dir } "
73+ Dir . mkdir rails_resource_dir
74+ end
75+ end
5676
57- angular_glob = File . join ( Gem . loaded_specs [ 'angularjs-rails' ] . full_gem_path , 'vendor' , 'assets' , 'javascripts' , '*.js' )
58- Dir . glob ( angular_glob ) . each do |file |
59- FileUtils . cp file , File . join ( vendor_dir , File . basename ( file ) )
77+ def self . copy_angularjs_files
78+ angular_files = [ 'angular.js' , 'angular-cookies.js' , 'angular-loader.js' , 'angular-resource.js' , 'angular-sanitize.js' , 'angular-mocks.js' ]
79+ angular_files . each do |file_name |
80+ path = File . join ( Gem . loaded_specs [ 'angularjs-rails' ] . full_gem_path , 'vendor' , 'assets' , 'javascripts' , file_name )
81+ FileUtils . cp path , File . join ( vendor_dir , File . basename ( path ) )
6082 end
6183 end
6284
63- def self . karma_config
85+ def self . copy_angularjs_resource_files
86+ rails_resource_lib = File . join ( Gem . loaded_specs [ 'angularjs-rails-resource' ] . full_gem_path , 'vendor' , 'assets' , 'javascripts' , 'angularjs' , 'rails' , 'resource' )
87+ FileUtils . cp_r rails_resource_lib , rails_resource_dir
88+ end
89+
90+ def self . copy_karma_config
6491 config_source = File . join ( Gem . loaded_specs [ 'rails_karma' ] . full_gem_path , 'files' , 'karma.conf.js' )
6592 config_target = File . join ( Rails . root , 'config' , 'karma.conf.js' )
6693 unless File . exists? ( config_target )
6794 puts './config/karma.conf.js'
6895 FileUtils . cp_r config_source , config_target
6996 end
97+ end
98+
99+ def self . create_karma_dir
70100 unless Dir . exists? ( 'karma' )
71101 puts './karma'
72102 Dir . mkdir 'karma'
73103 end
74104 end
105+
106+ def self . copy_test_spec
107+ test_spec = File . join ( Gem . loaded_specs [ 'rails_karma' ] . full_gem_path , 'files' , 'karma_test.coffee' )
108+ target = File . join ( Rails . root , 'karma' , 'karma_test.coffee' )
109+ unless File . exists? ( target )
110+ puts './karma/karma_test.coffee'
111+ FileUtils . cp test_spec , target
112+ end
113+ end
75114 end
76115end
77116
0 commit comments