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