rails_karma 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 399d813fb08719aa0a77095b19bb8a9ac979d7e3
4
- data.tar.gz: 944e5036e96f45953df51c9bf26d4e89d9da78ab
3
+ metadata.gz: 3ca4ef8f9506e14c0f599772f6b3edd8256d16fa
4
+ data.tar.gz: a1c818d3c70eef190e5f252cb5c6bc73dc86b564
5
5
  SHA512:
6
- metadata.gz: 37b3640d3503fd33b5ff03ebb20141e5ab229cf9841273bfafa4666f1cecdc90f73bb66ca1a1cb81a4af6075a0848553d29637c828d84f3798ce86a10a1e0938
7
- data.tar.gz: 6b4ff8ce4d5c46c919c78d1036213c5c12d60715e36bef26e6c4f86aa40c0f810aca5810c2498c1f7169d31a4831eb94378cb182489618e990a35dbfae514b26
6
+ metadata.gz: f936e1fd09b9bb412a314cd6b90d31d16b932a27be0816ba40184aea02df3dcd64529765f4cd8abdd7d879b8684b1e48ff3fbefcfd7da2cf74f516cbc4d3fe16
7
+ data.tar.gz: 0888bae68ca0c82d9e95d093865e5f3c33a2d59edf62a5be6997884dd4a8408cba7420d5a37daa66af30492754072a92e70690e49715fd7294c9b52b0876850c
data/README.md CHANGED
@@ -1,24 +1,47 @@
1
1
  # RailsKarma
2
2
 
3
- TODO: Write a gem description
3
+ This is a simple gem which integrates [Karma](http://karma-runner.github.io/) with Rails
4
4
 
5
5
  ## Installation
6
6
 
7
+ You will need npm to install karma so if you don't have node you can [get it here](http://nodejs.org/download/)
8
+
7
9
  Add this line to your application's Gemfile:
8
10
 
9
11
  gem 'rails_karma'
10
12
 
11
- And then execute:
13
+ Then execute:
12
14
 
13
15
  $ bundle
16
+ $ rake karma:install
17
+
18
+ This will install a sample config file in config/karma.conf.js and install karma via npm
19
+
20
+ If you are using travis you will need `npm install` in your before_script to install karma e.g.
21
+
22
+ #sample .travis.yml file
23
+ language: ruby
24
+ env:
25
+ - DB=postgres
26
+ rvm:
27
+ - 2.0.0
28
+ bundler_args: --without development
29
+ before_script:
30
+ - cp config/database.yml.travis config/database.yml
31
+ - bundle exec rake db:setup
32
+ - npm install
14
33
 
15
- Or install it yourself as:
34
+ and then you can use karma in your rake task e.g.
16
35
 
17
- $ gem install rails_karma
36
+ #lib/tasks/ci.rake
37
+ desc "Run all the tests, called by the CI server"
38
+ task :ci => [:spec, :cucumber, :karma] do
39
+
40
+ end
18
41
 
19
42
  ## Usage
20
43
 
21
- TODO: Write usage instructions here
44
+ Update config/karma.conf.js to load the files you want to test and run `rake karma` to run your tests
22
45
 
23
46
  ## Contributing
24
47
 
@@ -27,3 +50,9 @@ TODO: Write usage instructions here
27
50
  3. Commit your changes (`git commit -am 'Add some feature'`)
28
51
  4. Push to the branch (`git push origin my-new-feature`)
29
52
  5. Create new Pull Request
53
+
54
+
55
+ ## Changelog
56
+
57
+ ### 0.1.1
58
+ - initial release
data/files/karma.conf.js CHANGED
@@ -1,22 +1,22 @@
1
1
  basePath = '../';
2
2
 
3
3
  files = [
4
- JASMINE,
5
- JASMINE_ADAPTER,
4
+ JASMINE,
5
+ JASMINE_ADAPTER,
6
6
 
7
- //libs
8
- 'vendor/assets/javascripts/angular/angular.js',
9
- 'vendor/assets/javascripts/angular/angular-*.js',
7
+ //libs
8
+ 'vendor/assets/javascripts/rails_karma/angular.js',
9
+ 'vendor/assets/javascripts/rails_karma/angular-cookies.js',
10
+ 'vendor/assets/javascripts/rails_karma/angular-loader.js',
11
+ 'vendor/assets/javascripts/rails_karma/angular-resource.js',
12
+ 'vendor/assets/javascripts/rails_karma/angular-sanitize.js',
13
+ 'vendor/assets/javascripts/rails_karma/angular-mocks.js',
10
14
 
11
- //angularjs-rails-resource files, need to manually keep up to date
12
- 'vendor/assets/javascripts/angularjs/**/*.js',
15
+ //our app!
16
+ 'app/assets/angular/**',
13
17
 
14
- //our app!
15
- 'app/assets/angular/**',
16
-
17
- // and our tests
18
- 'karma/lib/angular/angular-mocks.js',
19
- 'karma/**/*.coffee',
18
+ //and our tests
19
+ 'karma/**/*',
20
20
  ];
21
21
 
22
22
  browsers = 'PhantomJS'.split(' ')
@@ -6,23 +6,72 @@ namespace :karma do
6
6
 
7
7
  desc 'Install karma files'
8
8
  task :install do
9
- sh 'echo "{}" > package.json' unless File.exists?('package.json')
10
- sh 'npm install karma --save-dev'
11
- unless File.exists?('karma')
12
- sh 'mkdir karma'
13
- sh 'mkdir karma/lib'
14
- sh 'mkdir karma/lib/angular'
15
-
16
- mocks_source = File.join(Gem.loaded_specs["rails_karma"].full_gem_path, 'files', 'angular-mocks.js')
17
- mocks_target = File.join(Rails.root, 'karma', 'lib', 'angular', 'angular-mocks.js')
18
- FileUtils.cp_r mocks_source, mocks_target
19
- end
9
+ puts 'Generating Karma files'
10
+ RailsKarma::Installer.karma
11
+ RailsKarma::Installer.angular_files
12
+ RailsKarma::Installer.karma_config
13
+ end
20
14
 
21
- config_source = File.join(Gem.loaded_specs["rails_karma"].full_gem_path, 'files', 'karma.conf.js')
22
- config_target = File.join(Rails.root, 'config', 'karma.conf.js')
23
- FileUtils.cp_r config_source, config_target unless File.exists?(config_target)
15
+ desc 'Uninstall karma files'
16
+ task :uninstall do
17
+ files = ['./config/karma.conf.js', './karma', './vendor/assets/javascripts/rails_karma']
18
+ #FileUtils.rm 'package.json'
19
+ puts 'Removing files...'
20
+
21
+ files.each do |f|
22
+ if File.exists? f
23
+ puts f
24
+ FileUtils.rm_rf f
25
+ end
26
+ end
24
27
  end
25
28
  end
26
29
 
27
30
  desc 'Alias for karma:run'
28
- task :karma => "karma:run"
31
+ task :karma => 'karma:run'
32
+
33
+ module RailsKarma
34
+ class Installer
35
+ def self.karma
36
+ unless File.exists?('package.json')
37
+ puts './package.json'
38
+ File.open('package.json', 'w') {|f| f.write '{}'}
39
+ end
40
+ unless File.open('package.json') {|f| f.read.include? 'karma'}
41
+ puts 'installing karma'
42
+ sh 'npm install karma --save-dev'
43
+ end
44
+ unless File.open('.gitignore') {|f| f.read.include? 'node_modules'}
45
+ puts 'adding node_modules to .gitignore'
46
+ File.open('.gitignore', 'a') {|f| f.write "node_modules\n"}
47
+ end
48
+ end
49
+
50
+ def self.angular_files
51
+ vendor_dir = File.join('vendor', 'assets', 'javascripts', 'rails_karma')
52
+ unless Dir.exists?(vendor_dir)
53
+ puts vendor_dir
54
+ Dir.mkdir vendor_dir
55
+ end
56
+
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))
60
+ end
61
+ end
62
+
63
+ def self.karma_config
64
+ config_source = File.join(Gem.loaded_specs['rails_karma'].full_gem_path, 'files', 'karma.conf.js')
65
+ config_target = File.join(Rails.root, 'config', 'karma.conf.js')
66
+ unless File.exists?(config_target)
67
+ puts './config/karma.conf.js'
68
+ FileUtils.cp_r config_source, config_target
69
+ end
70
+ unless Dir.exists?('karma')
71
+ puts './karma'
72
+ Dir.mkdir 'karma'
73
+ end
74
+ end
75
+ end
76
+ end
77
+
@@ -1,3 +1,3 @@
1
1
  module RailsKarma
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/rails_karma.gemspec CHANGED
@@ -4,20 +4,21 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'rails_karma/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "rails_karma"
7
+ spec.name = 'rails_karma'
8
8
  spec.version = RailsKarma::VERSION
9
- spec.authors = ["Joshua Vial"]
10
- spec.email = ["joshua@enspiral.com"]
9
+ spec.authors = ['Joshua Vial']
10
+ spec.email = ['joshua@enspiral.com']
11
11
  spec.summary = %q{Integrate Karma javascript test runner with rails}
12
12
  spec.description = %q{A simple gem which installs Karma config files and rake tasks}
13
- spec.homepage = "https://github.com/enspiral/rails_karma"
14
- spec.license = "MIT"
13
+ spec.homepage = 'https://github.com/enspiral/rails_karma'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake"
21
+ spec.add_development_dependency 'bundler', '~> 1.3'
22
+ spec.add_development_dependency 'rake'
23
+ spec.add_dependency 'angularjs-rails', '~>1.0.7'
23
24
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_karma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Vial
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: angularjs-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 1.0.7
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.7
41
55
  description: A simple gem which installs Karma config files and rake tasks
42
56
  email:
43
57
  - joshua@enspiral.com