oojs 0.0.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.
- data/.gitignore +17 -0
- data/.gitmodules +9 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +62 -0
- data/Rakefile +2 -0
- data/lib/generators/oojs/spec/USAGE +9 -0
- data/lib/generators/oojs/spec/spec_generator.rb +26 -0
- data/lib/generators/oojs/spec/templates/fake_ajax_server.js.coffee.erb +26 -0
- data/lib/generators/oojs/spec/templates/spec.js.coffee.erb +28 -0
- data/lib/generators/oojs/spec_helper/USAGE +8 -0
- data/lib/generators/oojs/spec_helper/spec_helper_generator.rb +11 -0
- data/lib/generators/oojs/spec_helper/templates/spec_helper.js.coffee +8 -0
- data/lib/oojs.rb +10 -0
- data/lib/oojs/version.rb +3 -0
- data/oojs.gemspec +22 -0
- data/vendor/assets/javascripts/jasmine-jquery.js +315 -0
- data/vendor/assets/javascripts/jquery.ba-bbq.js +1377 -0
- data/vendor/assets/javascripts/modules.js.coffee +24 -0
- metadata +104 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
prototypes = {}
|
2
|
+
@extendClass = (namespacedClass, methods)->
|
3
|
+
declaredMethods = prototypes[namespacedClass] or= []
|
4
|
+
declaredMethods.push methods
|
5
|
+
modules = namespacedClass.split '.'
|
6
|
+
className = modules.pop()
|
7
|
+
module = extractModuleFrom modules
|
8
|
+
module[className] or= class DynamicClass
|
9
|
+
extend: extend
|
10
|
+
constructor: ->
|
11
|
+
@_className = namespacedClass
|
12
|
+
extendClass this, declaredMethods.shift() while declaredMethods.length
|
13
|
+
@initialize?.apply(this, arguments) # stack-overflow in IE8 if constructor is used instead of initialize
|
14
|
+
|
15
|
+
extendClass = (_this, methods)->
|
16
|
+
methods = methods.call(_this, _this) if methods instanceof Function
|
17
|
+
extend DynamicClass.prototype, methods
|
18
|
+
|
19
|
+
extractModuleFrom = (modules, current = this)->
|
20
|
+
return current unless modules.length
|
21
|
+
current = current[modules.shift()] or= {}
|
22
|
+
extractModuleFrom modules, current
|
23
|
+
|
24
|
+
extend = (target, obj)-> target[k] = v for k, v of obj; target
|
metadata
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: oojs
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Rodrigo Rosenfeld Rosas
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-06-03 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rails_sandbox_jasmine
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: fake-ajax-server
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
description: ! "This is a bundle of tools for helping you\n to create well organized
|
47
|
+
client-side\n code to be run in browsers covered by tests (or specs) in an easy
|
48
|
+
way."
|
49
|
+
email:
|
50
|
+
- rr.rosas@gmail.com
|
51
|
+
executables: []
|
52
|
+
extensions: []
|
53
|
+
extra_rdoc_files: []
|
54
|
+
files:
|
55
|
+
- .gitignore
|
56
|
+
- .gitmodules
|
57
|
+
- Gemfile
|
58
|
+
- LICENSE
|
59
|
+
- README.md
|
60
|
+
- Rakefile
|
61
|
+
- lib/generators/oojs/spec/USAGE
|
62
|
+
- lib/generators/oojs/spec/spec_generator.rb
|
63
|
+
- lib/generators/oojs/spec/templates/fake_ajax_server.js.coffee.erb
|
64
|
+
- lib/generators/oojs/spec/templates/spec.js.coffee.erb
|
65
|
+
- lib/generators/oojs/spec_helper/USAGE
|
66
|
+
- lib/generators/oojs/spec_helper/spec_helper_generator.rb
|
67
|
+
- lib/generators/oojs/spec_helper/templates/spec_helper.js.coffee
|
68
|
+
- lib/oojs.rb
|
69
|
+
- lib/oojs/version.rb
|
70
|
+
- oojs.gemspec
|
71
|
+
- vendor/assets/javascripts/jasmine-jquery.js
|
72
|
+
- vendor/assets/javascripts/jquery.ba-bbq.js
|
73
|
+
- vendor/assets/javascripts/modules.js.coffee
|
74
|
+
homepage: http://github.com/rosenfeld/oojs
|
75
|
+
licenses: []
|
76
|
+
post_install_message:
|
77
|
+
rdoc_options: []
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
hash: -3292733354914937011
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
segments:
|
96
|
+
- 0
|
97
|
+
hash: -3292733354914937011
|
98
|
+
requirements: []
|
99
|
+
rubyforge_project:
|
100
|
+
rubygems_version: 1.8.21
|
101
|
+
signing_key:
|
102
|
+
specification_version: 3
|
103
|
+
summary: Object-oriented JavaScript (or CoffeeScript) for Rails
|
104
|
+
test_files: []
|