jasmine-rjs 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6df84a0baa0297e90fea11b3c5570bbbccf5adb9
4
+ data.tar.gz: 27e2c9c08150f5529d664eb9efe54f23a094e685
5
+ SHA512:
6
+ metadata.gz: 66060221dadf20070c11f3e074684825604a166244c9732cd170e31bd35d9ba7edb573f37a3fd2a95e264e6851b3c78b1b74095c6e44b02ebcbb1377954dba8d
7
+ data.tar.gz: d5efbd94758fed423fef06bf944e3eb149721425a5bd519b7f907e57e15457d8b5b45f04d79ef8fbcf85ae55f8e6354d07cafea0c6d30de9592bff846516b207
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.1
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in jasmine-rjs.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,56 @@
1
+ # Jasmine + Require.js + Karma
2
+
3
+ Rails plugin to integrate Jasmine, Require.js and Karma.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your Rails application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'jasmine-rjs', group: [:development, :test] # Jasmine testing
11
+ gem 'requirejs-rails' # For helper methods and rake tasks
12
+ ```
13
+
14
+ And then execute:
15
+
16
+ ```bash
17
+ rails g jasmine:install # Install default jasmine configuration
18
+ npm install karma karma-cli \
19
+ karma-jasmine karma-requirejs \
20
+ karma-phantomjs-launcher -g # To test with karma
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ To start karma watcher:
26
+
27
+ ```bash
28
+ rake jasmine:karma
29
+ ```
30
+
31
+ To test from cli:
32
+
33
+ ```bash
34
+ rake jasmine:ci
35
+ ```
36
+
37
+ ## Configuration
38
+
39
+ To override karma configuration, create file `karma.conf.js`:
40
+
41
+ ```javascript
42
+ module.exports = function(config) {
43
+ config.set({
44
+ logLevel: config.LOG_INFO,
45
+ browsers: ['Chrome', 'PhantomJS']
46
+ });
47
+ };
48
+ ```
49
+
50
+ ## Contributing
51
+
52
+ 1. Fork it ( https://github.com/siddick/jasmine-rjs/fork )
53
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
54
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
55
+ 4. Push to the branch (`git push origin my-new-feature`)
56
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'jasmine/rjs/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "jasmine-rjs"
8
+ spec.version = Jasmine::Rjs::VERSION
9
+ spec.authors = ["siddick"]
10
+ spec.email = ["siddick@gmail.com"]
11
+
12
+ spec.summary = %q{Rails plugin to integrate Jasmine, Require.js and Karma.}
13
+ spec.description = %q{Rails plugin to integrate Jasmine, Require.js and Karma.}
14
+ spec.homepage = "https://github.com/siddick/jasmine-rjs"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.require_paths = ["lib"]
18
+
19
+ spec.add_dependency "jasmine", ">= 2.2.0"
20
+ spec.add_dependency "requirejs-rails", ">= 0.9.5"
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.8"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency "rspec", ">= 3.2.0"
25
+ end
@@ -0,0 +1,4 @@
1
+ require "jasmine/rjs/version"
2
+ require "jasmine/rjs/helper"
3
+ require "jasmine/rjs/railtie" if defined?(Rails)
4
+
@@ -0,0 +1,25 @@
1
+ require 'jasmine'
2
+ require 'requirejs-rails'
3
+
4
+ module Jasmine
5
+ class Configuration
6
+ def js_files
7
+ map(@jasmine_files, :jasmine) +
8
+ map(@boot_files, :boot) +
9
+ map(@runner_boot_files, :runner_boot) +
10
+ map(@src_files, :src)
11
+ end
12
+
13
+ def spec_files
14
+ map(@spec_files, :spec).map do |file|
15
+ file.sub(/\.js/, '')
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ module Jasmine
22
+ def self.runner_template
23
+ File.read(File.join(File.dirname(__FILE__), "run.html.erb"))
24
+ end
25
+ end
@@ -0,0 +1,11 @@
1
+ module Jasmine
2
+ module Rjs
3
+ class Railtie < Rails::Railtie
4
+ railtie_name :jasmine_rjs
5
+
6
+ rake_tasks do
7
+ load 'tasks/karma.rake'
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2
+ <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta content="text/html;charset=UTF-8" http-equiv="Content-Type"/>
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
6
+ <title>Jasmine suite</title>
7
+ <link rel="shortcut icon" type="image/png" href="/__images__/jasmine_favicon.png">
8
+ <% css_files.each do |css_file| %>
9
+ <link rel="stylesheet" href="<%= css_file %>" type="text/css" media="screen"/>
10
+ <% end %>
11
+ <script src="/assets/require.js" type="text/javascript"></script>
12
+ <% js_files.each do |js_file| %>
13
+ <script src="<%= js_file %>" type="text/javascript"></script>
14
+ <% end %>
15
+ <script>
16
+ require.config({ baseUrl: '/assets' });
17
+ require(<%= spec_files.to_json.html_safe %>, window.onload);
18
+ window.onload = null;
19
+ </script>
20
+ </head>
21
+ <!-- TODO: turbolinks breaks spec filter links -->
22
+ <body data-no-turbolink>
23
+ <div id="jasmine_content"></div>
24
+ </body>
25
+ </html>
@@ -0,0 +1,5 @@
1
+ module Jasmine
2
+ module Rjs
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
@@ -0,0 +1,32 @@
1
+ var path = require('path'),
2
+ configFile = process.env.CONFIG_FILE,
3
+ port = process.env.JASMINE_PORT || 8888;
4
+ rjsConfigFile = path.join(__dirname, "rjs-config.js"),
5
+ configDir = configFile ? path.dirname(configFile) : process.cwd();
6
+
7
+ module.exports = function(config) {
8
+ if (configFile) {
9
+ require(configFile)(config);
10
+ }
11
+
12
+ config.set({
13
+ basePath: path.resolve(configDir, config.basePath || '')
14
+ });
15
+
16
+ if (config.proxies['/assets'] === undefined) {
17
+ config.proxies['/assets'] = 'http://localhost:' + port + '/assets';
18
+ }
19
+
20
+ if (config.browsers.length === 0) {
21
+ config.browsers.push('PhantomJS');
22
+ }
23
+
24
+ if (config.frameworks.length === 0) {
25
+ config.frameworks.push('jasmine');
26
+ config.frameworks.push('requirejs');
27
+ }
28
+
29
+ config.files.push(rjsConfigFile);
30
+ config.files.push({pattern: 'spec/javascripts/**/*Spec.js', included: false});
31
+ config.files.push({pattern: 'app/assets/javascripts/**/*.js', included: false});
32
+ };
@@ -0,0 +1,28 @@
1
+ require 'jasmine'
2
+
3
+ BaseConfigFile = File.expand_path('../karma-config.js', __FILE__)
4
+ DefaultConfigFile = 'karma.conf.js'
5
+
6
+ namespace :jasmine do
7
+ task :run_karma, [:config_file] do |t, args|
8
+ config_file = args[:config_file]
9
+ port = Jasmine.config.port(:server)
10
+
11
+ if config_file
12
+ config_file = File.expand_path(config_file)
13
+ elsif File.exist? DefaultConfigFile
14
+ config_file = File.expand_path(DefaultConfigFile)
15
+ end
16
+
17
+ Jasmine::wait_for_listener(Jasmine.config.port(:server), 'jasmine server')
18
+
19
+ if config_file
20
+ system("JASMINE_PORT=#{port} CONFIG_FILE=#{config_file} karma start #{BaseConfigFile}")
21
+ else
22
+ system("JASMINE_PORT=#{port} karma start #{BaseConfigFile}")
23
+ end
24
+ end
25
+
26
+ desc 'run karma & jasmine service'
27
+ multitask(:karma, [:config_file] => [:server, :run_karma])
28
+ end
@@ -0,0 +1,24 @@
1
+ var allTestFiles = [],
2
+ TEST_REGEXP = /(spec|test)\.js$/i,
3
+ files = window.__karma__.files,
4
+ deps = [];
5
+
6
+ Object.keys(files).forEach(function(file) {
7
+ if (TEST_REGEXP.test(file)) {
8
+ allTestFiles.push(file);
9
+ }
10
+ });
11
+
12
+ requirejs.config({
13
+ baseUrl: '/assets'
14
+ });
15
+
16
+ if (files['/base/app/assets/javascripts/config.js']) {
17
+ deps.push('config');
18
+ } else if (files['/base/app/assets/javascripts/application.js']) {
19
+ deps.push('application');
20
+ }
21
+
22
+ require(deps, function () {
23
+ require(allTestFiles, window.__karma__.start);
24
+ });
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jasmine-rjs
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - siddick
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jasmine
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.2.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: requirejs-rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.5
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.9.5
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.8'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.8'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 3.2.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 3.2.0
83
+ description: Rails plugin to integrate Jasmine, Require.js and Karma.
84
+ email:
85
+ - siddick@gmail.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".gitignore"
91
+ - ".rspec"
92
+ - ".travis.yml"
93
+ - Gemfile
94
+ - README.md
95
+ - Rakefile
96
+ - jasmine-rjs.gemspec
97
+ - lib/jasmine/rjs.rb
98
+ - lib/jasmine/rjs/helper.rb
99
+ - lib/jasmine/rjs/railtie.rb
100
+ - lib/jasmine/rjs/run.html.erb
101
+ - lib/jasmine/rjs/version.rb
102
+ - lib/tasks/karma-config.js
103
+ - lib/tasks/karma.rake
104
+ - lib/tasks/rjs-config.js
105
+ homepage: https://github.com/siddick/jasmine-rjs
106
+ licenses: []
107
+ metadata: {}
108
+ post_install_message:
109
+ rdoc_options: []
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ requirements: []
123
+ rubyforge_project:
124
+ rubygems_version: 2.4.6
125
+ signing_key:
126
+ specification_version: 4
127
+ summary: Rails plugin to integrate Jasmine, Require.js and Karma.
128
+ test_files: []