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 +4 -4
- data/README.md +34 -5
- data/files/karma.conf.js +13 -13
- data/lib/rails_karma/tasks.rb +64 -15
- data/lib/rails_karma/version.rb +1 -1
- data/rails_karma.gemspec +9 -8
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ca4ef8f9506e14c0f599772f6b3edd8256d16fa
|
4
|
+
data.tar.gz: a1c818d3c70eef190e5f252cb5c6bc73dc86b564
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f936e1fd09b9bb412a314cd6b90d31d16b932a27be0816ba40184aea02df3dcd64529765f4cd8abdd7d879b8684b1e48ff3fbefcfd7da2cf74f516cbc4d3fe16
|
7
|
+
data.tar.gz: 0888bae68ca0c82d9e95d093865e5f3c33a2d59edf62a5be6997884dd4a8408cba7420d5a37daa66af30492754072a92e70690e49715fd7294c9b52b0876850c
|
data/README.md
CHANGED
@@ -1,24 +1,47 @@
|
|
1
1
|
# RailsKarma
|
2
2
|
|
3
|
-
|
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
|
-
|
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
|
-
|
34
|
+
and then you can use karma in your rake task e.g.
|
16
35
|
|
17
|
-
|
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
|
-
|
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
|
-
|
5
|
-
|
4
|
+
JASMINE,
|
5
|
+
JASMINE_ADAPTER,
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
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
|
-
|
12
|
-
|
15
|
+
//our app!
|
16
|
+
'app/assets/angular/**',
|
13
17
|
|
14
|
-
|
15
|
-
|
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(' ')
|
data/lib/rails_karma/tasks.rb
CHANGED
@@ -6,23 +6,72 @@ namespace :karma do
|
|
6
6
|
|
7
7
|
desc 'Install karma files'
|
8
8
|
task :install do
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
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
|
-
|
22
|
-
|
23
|
-
|
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 =>
|
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
|
+
|
data/lib/rails_karma/version.rb
CHANGED
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 =
|
7
|
+
spec.name = 'rails_karma'
|
8
8
|
spec.version = RailsKarma::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
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 =
|
14
|
-
spec.license =
|
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 = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency
|
22
|
-
spec.add_development_dependency
|
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.
|
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
|