xooie 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,169 @@
1
+ /*
2
+ * Copyright 2012 Comcast
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ var $X, Xooie;
18
+
19
+ $X = Xooie = (function(static_config) {
20
+ var config = {
21
+ modules: {},
22
+ addons: {}
23
+ },
24
+ obj = function() {
25
+ return false;
26
+ },
27
+ gcTimer = null;
28
+
29
+ function copyObj(dst, src) {
30
+ var name;
31
+
32
+ for (name in src) {
33
+ if (src.hasOwnProperty(name)) {
34
+ dst[name] = src[name];
35
+ }
36
+ }
37
+ }
38
+
39
+ function gcCallback() {
40
+ if (typeof Xooie.garbageCollect !== 'undefined') {
41
+ Xooie.garbageCollect();
42
+ }
43
+ }
44
+
45
+ obj.config = function(cfg) {
46
+ var name;
47
+
48
+ for (name in cfg) {
49
+ if (cfg.hasOwnProperty(name)) {
50
+ if (name === 'modules' || name == 'addons') {
51
+ copyObj(config[name], cfg[name]);
52
+ } else {
53
+ config[name] = cfg[name];
54
+ }
55
+ }
56
+ }
57
+
58
+ if (typeof cfg.gcInterval !== 'undefined') {
59
+ if (config.gcInterval) {
60
+ gcTimer = setInterval(gcCallback, config.gcInterval);
61
+ } else {
62
+ if (gcTimer) {
63
+ clearInterval(gcTimer);
64
+ }
65
+ gcTimer = null;
66
+ }
67
+ }
68
+ };
69
+
70
+ obj.mapName = function(name, type, root) {
71
+ if (typeof config[type][name] === 'undefined') {
72
+ return root + name;
73
+ } else {
74
+ return config[type][name];
75
+ }
76
+ };
77
+
78
+ obj.config({
79
+ gcInterval: 0
80
+ });
81
+
82
+ if (static_config) {
83
+ obj.config(static_config);
84
+ }
85
+
86
+ return obj;
87
+ }(Xooie));
88
+
89
+ define('xooie', ['jquery'], function($){
90
+ var config = Xooie.config,
91
+ mapName = Xooie.mapName,
92
+ loadedModules = {};
93
+
94
+ $X = Xooie = function(element){
95
+ element = $(element);
96
+
97
+ var widgetElements = element.find('[data-widget-type]');
98
+
99
+ if (element.is('[data-widget-type]')){
100
+ widgetElements = widgetElements.add(element);
101
+ }
102
+
103
+ widgetElements.each(function(){
104
+ var node = $(this),
105
+ module_name,
106
+ types = node.data('widgetType').split(/\s+/),
107
+ require_handler = function(Widget) {
108
+ new Widget(node);
109
+ };
110
+
111
+ for (var i = 0; i < types.length; i++) {
112
+ module_name = $X.mapName(types[i], 'modules', 'xooie/');
113
+
114
+ $X._requireShim(module_name, require_handler);
115
+ }
116
+ });
117
+ };
118
+
119
+ Xooie.config = config;
120
+ Xooie.mapName = mapName;
121
+
122
+ Xooie._requireShim = function(module, callback) {
123
+ var moduleSpec;
124
+
125
+ if (typeof loadedModules[module] === 'undefined') {
126
+ moduleSpec = loadedModules[module] = {
127
+ content: null,
128
+ loaded: false,
129
+ callbacks: []
130
+ };
131
+
132
+ require([module], function(Module) {
133
+ var i;
134
+
135
+ moduleSpec.content = Module;
136
+ moduleSpec.loaded = true;
137
+
138
+ for (i = 0; i < moduleSpec.callbacks.length; i++) {
139
+ moduleSpec.callbacks[i](Module);
140
+ }
141
+
142
+ moduleSpec.callbacks = [];
143
+ });
144
+ } else {
145
+ moduleSpec = loadedModules[module];
146
+ }
147
+
148
+ if (moduleSpec.loaded) {
149
+ callback(moduleSpec.content);
150
+ } else {
151
+ moduleSpec.callbacks.push(callback);
152
+ }
153
+ };
154
+
155
+ Xooie.registeredClasses = [];
156
+ Xooie.garbageCollect = function() {
157
+ for (var i = 0; i < this.registeredClasses.length; i++) {
158
+ this.registeredClasses[i].garbageCollect();
159
+ }
160
+ };
161
+
162
+ return Xooie;
163
+ });
164
+
165
+ require(['jquery', 'xooie'], function($, $X){
166
+ $(document).ready(function() {
167
+ $X($(this));
168
+ });
169
+ });
metadata CHANGED
@@ -1,75 +1,70 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: xooie
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.0.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.5
6
5
  platform: ruby
7
- authors:
8
- - Andrew Larkin
6
+ authors:
7
+ - Andrew Larkin
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
-
13
- date: 2013-11-20 00:00:00 Z
11
+ date: 2013-11-30 00:00:00.000000000 Z
14
12
  dependencies: []
15
-
16
- description: A highly modular, extensible, and accessible JavaScript UI framework.
13
+ description: A highly modular, extensible JavaScript UI framework.
17
14
  email: andrewlarkin2@gmail.com
18
15
  executables: []
19
-
20
16
  extensions: []
21
-
22
17
  extra_rdoc_files: []
23
-
24
- files:
25
- - vendor/assets/javascripts/xooie/event_handler.js
26
- - vendor/assets/javascripts/xooie/helpers.js
27
- - vendor/assets/javascripts/xooie/keyboard_navigation.js
28
- - vendor/assets/javascripts/xooie/shared.js
29
- - vendor/assets/javascripts/xooie/stylesheet.js
30
- - vendor/assets/javascripts/xooie/xooie.js
31
- - vendor/assets/javascripts/xooie/addons/base.js
32
- - vendor/assets/javascripts/xooie/addons/carousel_lentils.js
33
- - vendor/assets/javascripts/xooie/addons/carousel_pagination.js
34
- - vendor/assets/javascripts/xooie/addons/tab_animation.js
35
- - vendor/assets/javascripts/xooie/widgets/accordion.js
36
- - vendor/assets/javascripts/xooie/widgets/base.js
37
- - vendor/assets/javascripts/xooie/widgets/carousel.js
38
- - vendor/assets/javascripts/xooie/widgets/dialog.js
39
- - vendor/assets/javascripts/xooie/widgets/dropdown.js
40
- - vendor/assets/javascripts/xooie/widgets/tab.js
41
- - lib/xooie.rb
42
- - README.md
43
- - License.txt
18
+ files:
19
+ - vendor/assets/javascripts/xooie.js
20
+ - vendor/assets/javascripts/xooie/addons/base.js
21
+ - vendor/assets/javascripts/xooie/addons/carousel_lentils.js
22
+ - vendor/assets/javascripts/xooie/addons/carousel_pagination.js
23
+ - vendor/assets/javascripts/xooie/addons/dropdown_accordion.js
24
+ - vendor/assets/javascripts/xooie/addons/tab_animation.js
25
+ - vendor/assets/javascripts/xooie/addons/tab_automation.js
26
+ - vendor/assets/javascripts/xooie/base.js
27
+ - vendor/assets/javascripts/xooie/carousel.js
28
+ - vendor/assets/javascripts/xooie/dialog.js
29
+ - vendor/assets/javascripts/xooie/dropdown.js
30
+ - vendor/assets/javascripts/xooie/event_handler.js
31
+ - vendor/assets/javascripts/xooie/helpers.js
32
+ - vendor/assets/javascripts/xooie/keyboard_navigation.js
33
+ - vendor/assets/javascripts/xooie/shared.js
34
+ - vendor/assets/javascripts/xooie/stylesheet.js
35
+ - vendor/assets/javascripts/xooie/tab.js
36
+ - vendor/assets/javascripts/xooie/widgets/accordion.js
37
+ - vendor/assets/javascripts/xooie/widgets/base.js
38
+ - vendor/assets/javascripts/xooie/widgets/carousel.js
39
+ - vendor/assets/javascripts/xooie/widgets/dialog.js
40
+ - vendor/assets/javascripts/xooie/widgets/dropdown.js
41
+ - vendor/assets/javascripts/xooie/widgets/tab.js
42
+ - vendor/assets/javascripts/xooie/xooie.js
43
+ - lib/xooie.rb
44
+ - README.md
45
+ - License.txt
44
46
  homepage: http://www.xooie.net
45
- licenses:
46
- - Apache
47
+ licenses:
48
+ - Apache
49
+ metadata: {}
47
50
  post_install_message:
48
51
  rdoc_options: []
49
-
50
- require_paths:
51
- - lib
52
- required_ruby_version: !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 2
58
- segments:
59
- - 0
60
- version: "0"
61
- required_rubygems_version: !ruby/object:Gem::Requirement
62
- none: false
63
- requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: "0"
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
67
64
  requirements: []
68
-
69
65
  rubyforge_project:
70
- rubygems_version: 1.8.9
66
+ rubygems_version: 2.1.9
71
67
  signing_key:
72
- specification_version: 3
73
- summary: A highly modular, extensible, and accessible JavaScript UI framework.
68
+ specification_version: 4
69
+ summary: A highly modular, extensible JavaScript UI framework.
74
70
  test_files: []
75
-