jasmine-rjs 0.1.0

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 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: []