oojs 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []