rails_karma 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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