modjs-architecture 0.3.3 → 0.3.5

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/Gemfile CHANGED
@@ -12,8 +12,8 @@ group :test do
12
12
  end
13
13
 
14
14
  group :development do
15
- gem "rspec", "~> 2.8.0"
16
- gem "bundler", "~> 1.0.0"
15
+ gem "rspec"
16
+ gem "bundler"
17
17
  gem "jeweler", "~> 1.8.3"
18
- gem "jasmine", "~> 1.1.2"
18
+ gem "jasmine"
19
19
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.3
1
+ 0.3.5
@@ -4,7 +4,7 @@ module ArchitectureJS
4
4
  path ||= File.expand_path(Dir.getwd)
5
5
  filename = filename.gsub(/\.js$/, '.module.js')
6
6
  File.open("#{path}/#{filename}", "w+") { |f| f.write template }
7
- puts ArchitectureJS::Notification.added "#{filename} #{template} added" if File.exists?("#{path}/#{filename}")
7
+ puts ArchitectureJS::Notification.added "#{filename} added" if File.exists?("#{path}/#{filename}")
8
8
  end
9
9
  end
10
10
  end
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "modjs-architecture"
8
- s.version = "0.3.3"
8
+ s.version = "0.3.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dayton Nolan"]
@@ -69,28 +69,6 @@ Gem::Specification.new do |s|
69
69
  "spec/modjs-architecture_spec.rb",
70
70
  "spec/spec_helper.rb",
71
71
  "spec/templates_spec.rb",
72
- "spec/tmp/application/myapp.js",
73
- "spec/tmp/application/test.js",
74
- "spec/tmp/application/test.module.js",
75
- "spec/tmp/foo-elements.js",
76
- "spec/tmp/foo.js",
77
- "spec/tmp/foo_all.js",
78
- "spec/tmp/foo_elements.js",
79
- "spec/tmp/foo_model.js",
80
- "spec/tmp/lib/mod.js",
81
- "spec/tmp/modules/test.module.js",
82
- "spec/tmp/myapp.architecture",
83
- "spec/tmp/myapp.blueprint",
84
- "spec/tmp/spec/application_spec.js",
85
- "spec/tmp/spec/dom_spec.js",
86
- "spec/tmp/spec/existence_spec.js",
87
- "spec/tmp/spec/jasmine/MIT.LICENSE",
88
- "spec/tmp/spec/jasmine/index.html",
89
- "spec/tmp/spec/jasmine/jasmine-html.js",
90
- "spec/tmp/spec/jasmine/jasmine.css",
91
- "spec/tmp/spec/jasmine/jasmine.js",
92
- "spec/tmp/spec/jasmine/jasmine_favicon.png",
93
- "spec/tmp/spec/module_spec.js",
94
72
  "templates/model.js",
95
73
  "templates/module.js"
96
74
  ]
@@ -105,25 +83,25 @@ Gem::Specification.new do |s|
105
83
 
106
84
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
107
85
  s.add_runtime_dependency(%q<architecture-js>, [">= 0"])
108
- s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
109
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
86
+ s.add_development_dependency(%q<rspec>, [">= 0"])
87
+ s.add_development_dependency(%q<bundler>, [">= 0"])
110
88
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
111
- s.add_development_dependency(%q<jasmine>, ["~> 1.1.2"])
89
+ s.add_development_dependency(%q<jasmine>, [">= 0"])
112
90
  s.add_runtime_dependency(%q<architecture-js>, [">= 0"])
113
91
  else
114
92
  s.add_dependency(%q<architecture-js>, [">= 0"])
115
- s.add_dependency(%q<rspec>, ["~> 2.8.0"])
116
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
93
+ s.add_dependency(%q<rspec>, [">= 0"])
94
+ s.add_dependency(%q<bundler>, [">= 0"])
117
95
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
118
- s.add_dependency(%q<jasmine>, ["~> 1.1.2"])
96
+ s.add_dependency(%q<jasmine>, [">= 0"])
119
97
  s.add_dependency(%q<architecture-js>, [">= 0"])
120
98
  end
121
99
  else
122
100
  s.add_dependency(%q<architecture-js>, [">= 0"])
123
- s.add_dependency(%q<rspec>, ["~> 2.8.0"])
124
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
101
+ s.add_dependency(%q<rspec>, [">= 0"])
102
+ s.add_dependency(%q<bundler>, [">= 0"])
125
103
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
126
- s.add_dependency(%q<jasmine>, ["~> 1.1.2"])
104
+ s.add_dependency(%q<jasmine>, [">= 0"])
127
105
  s.add_dependency(%q<architecture-js>, [">= 0"])
128
106
  end
129
107
  end
@@ -22,12 +22,12 @@ describe "ModJS templates" do
22
22
  filename: 'foo',
23
23
  options: {}
24
24
  }
25
-
26
- @project.generator.generate(config)
27
- File.exists?("#{TMP_DIR}/foo.js").should be_true
25
+
26
+ suppress_output { @project.generator.generate(config) }
27
+ File.exists?("#{TMP_DIR}/foo.module.js").should be_true
28
28
  "#{TMP_DIR}/foo.module.js".should be_same_file_as "#{FIXTURES}/foo.js"
29
29
  end
30
-
30
+
31
31
  it 'should render a module with elements' do
32
32
  config = {
33
33
  arguments: ['module', 'foo_elements', '-e'],
@@ -35,12 +35,12 @@ describe "ModJS templates" do
35
35
  filename: 'foo_elements',
36
36
  options: { e: true }
37
37
  }
38
-
39
- @project.generator.generate(config)
38
+
39
+ suppress_output { @project.generator.generate(config) }
40
40
  File.exists?("#{TMP_DIR}/foo_elements.module.js").should be_true
41
41
  "#{TMP_DIR}/foo_elements.module.js".should be_same_file_as "#{FIXTURES}/foo_elements.js"
42
42
  end
43
-
43
+
44
44
  it 'should render a module with a model' do
45
45
  config = {
46
46
  arguments: ['module', 'foo_model', '-m'],
@@ -48,12 +48,12 @@ describe "ModJS templates" do
48
48
  filename: 'foo_model',
49
49
  options: { m: true }
50
50
  }
51
-
52
- @project.generator.generate(config)
51
+
52
+ suppress_output { @project.generator.generate(config) }
53
53
  File.exists?("#{TMP_DIR}/foo_model.module.js").should be_true
54
54
  "#{TMP_DIR}/foo_model.module.js".should be_same_file_as "#{FIXTURES}/foo_model.js"
55
55
  end
56
-
56
+
57
57
  it 'should render a module with both a model and elements' do
58
58
  config = {
59
59
  arguments: ['module', 'foo_all', '-e', '-m'],
@@ -61,10 +61,22 @@ describe "ModJS templates" do
61
61
  filename: 'foo_all',
62
62
  options: { e: true, m: true }
63
63
  }
64
-
65
- @project.generator.generate(config)
64
+
65
+ suppress_output { @project.generator.generate(config) }
66
66
  File.exists?("#{TMP_DIR}/foo_all.module.js").should be_true
67
67
  "#{TMP_DIR}/foo_all.module.js".should be_same_file_as "#{FIXTURES}/foo_all.js"
68
68
  end
69
69
 
70
+ it 'should render a module partial with the correct module name' do
71
+ config = {
72
+ arguments: ['module', '_foo'],
73
+ template: 'module',
74
+ filename: '_foo',
75
+ options: {}
76
+ }
77
+
78
+ suppress_output { @project.generator.generate(config) }
79
+ File.exists?("#{TMP_DIR}/_foo.module.js").should be_true
80
+ "#{TMP_DIR}/_foo.module.js".should be_same_file_as "#{FIXTURES}/foo.js"
81
+ end
70
82
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modjs-architecture
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -32,33 +32,33 @@ dependencies:
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
- - - ~>
35
+ - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
- version: 2.8.0
37
+ version: '0'
38
38
  type: :development
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ~>
43
+ - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
- version: 2.8.0
45
+ version: '0'
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: bundler
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - ~>
51
+ - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
- version: 1.0.0
53
+ version: '0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - ~>
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.0
61
+ version: '0'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: jeweler
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -80,17 +80,17 @@ dependencies:
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
83
- - - ~>
83
+ - - ! '>='
84
84
  - !ruby/object:Gem::Version
85
- version: 1.1.2
85
+ version: '0'
86
86
  type: :development
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
- - - ~>
91
+ - - ! '>='
92
92
  - !ruby/object:Gem::Version
93
- version: 1.1.2
93
+ version: '0'
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: architecture-js
96
96
  requirement: !ruby/object:Gem::Requirement
@@ -169,28 +169,6 @@ files:
169
169
  - spec/modjs-architecture_spec.rb
170
170
  - spec/spec_helper.rb
171
171
  - spec/templates_spec.rb
172
- - spec/tmp/application/myapp.js
173
- - spec/tmp/application/test.js
174
- - spec/tmp/application/test.module.js
175
- - spec/tmp/foo-elements.js
176
- - spec/tmp/foo.js
177
- - spec/tmp/foo_all.js
178
- - spec/tmp/foo_elements.js
179
- - spec/tmp/foo_model.js
180
- - spec/tmp/lib/mod.js
181
- - spec/tmp/modules/test.module.js
182
- - spec/tmp/myapp.architecture
183
- - spec/tmp/myapp.blueprint
184
- - spec/tmp/spec/application_spec.js
185
- - spec/tmp/spec/dom_spec.js
186
- - spec/tmp/spec/existence_spec.js
187
- - spec/tmp/spec/jasmine/MIT.LICENSE
188
- - spec/tmp/spec/jasmine/index.html
189
- - spec/tmp/spec/jasmine/jasmine-html.js
190
- - spec/tmp/spec/jasmine/jasmine.css
191
- - spec/tmp/spec/jasmine/jasmine.js
192
- - spec/tmp/spec/jasmine/jasmine_favicon.png
193
- - spec/tmp/spec/module_spec.js
194
172
  - templates/model.js
195
173
  - templates/module.js
196
174
  homepage: http://github.com/daytonn/modjs-architecture
@@ -208,7 +186,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
208
186
  version: '0'
209
187
  segments:
210
188
  - 0
211
- hash: -3541363974514670302
189
+ hash: -4571541150195370455
212
190
  required_rubygems_version: !ruby/object:Gem::Requirement
213
191
  none: false
214
192
  requirements:
@@ -1,322 +0,0 @@
1
- is_defined = function(suspect) {
2
- return typeof suspect == "undefined" ? false : true;
3
- };
4
-
5
- is_undefined = function(suspect) {
6
- return typeof suspect == "undefined" ? true : false;
7
- };
8
-
9
- is_typeof = function(type, suspect) {
10
- if (is_undefined(type)) {
11
- throw new Error("is_typeof(Type, suspect): type is undefined");
12
- }
13
-
14
- if (is_undefined(suspect)) {
15
- throw new Error("is_typeof(Type, suspect): suspect is undefined");
16
- }
17
-
18
- return suspect.constructor == type ? true : false;
19
- };
20
-
21
- is_numeric = function(suspect) {
22
- if (isNaN(suspect)) {
23
- return false;
24
- }
25
- return !isNaN(parseFloat(suspect)) && isFinite(suspect);
26
- };
27
-
28
- is_string = function(suspect) {
29
- return is_typeof(String, suspect);
30
- };
31
-
32
- is_array = function(suspect) {
33
- return is_typeof(Array, suspect);
34
- };
35
-
36
- is_number = function(suspect) {
37
- return is_typeof(Number, suspect);
38
- };
39
-
40
- is_date = function(suspect) {
41
- return is_typeof(Date, suspect);
42
- };
43
-
44
- is_bool = function(suspect) {
45
- return is_typeof(Boolean, suspect);
46
- };
47
-
48
- is_regex = function(suspect) {
49
- return is_typeof(RegExp, suspect);
50
- };
51
-
52
- is_empty = function(suspect) {
53
- if (is_undefined(suspect)) {
54
- return true;
55
- }
56
-
57
- return suspect.length === 0;
58
- };
59
-
60
- is_not_empty = function(suspect) {
61
- return suspect.length >= 1;
62
- };
63
- if (!Element.prototype.addEventListener) {
64
- var oListeners = {};
65
-
66
- function runListeners(oEvent) {
67
- if (!oEvent) {
68
- oEvent = window.event;
69
- }
70
-
71
- for (var iLstId = 0, iElId = 0, oEvtListeners = oListeners[oEvent.type]; iElId < oEvtListeners.aEls.length; iElId++) {
72
- if (oEvtListeners.aEls[iElId] === this) {
73
- for (iLstId; iLstId < oEvtListeners.aEvts[iElId].length; iLstId++) {
74
- oEvtListeners.aEvts[iElId][iLstId].call(this, oEvent);
75
- }
76
-
77
- break;
78
- }
79
- }
80
- }
81
-
82
- Element.prototype.addEventListener = function (sEventType, fListener) {
83
- if (oListeners.hasOwnProperty(sEventType)) {
84
- var oEvtListeners = oListeners[sEventType];
85
-
86
- for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {
87
- if (oEvtListeners.aEls[iElId] === this) {
88
- nElIdx = iElId; break;
89
- }
90
- }
91
-
92
- if (nElIdx === -1) {
93
- oEvtListeners.aEls.push(this);
94
- oEvtListeners.aEvts.push([fListener]);
95
- this["on" + sEventType] = runListeners;
96
- }
97
- else {
98
- var aElListeners = oEvtListeners.aEvts[nElIdx];
99
-
100
- if (this["on" + sEventType] !== runListeners) {
101
- aElListeners.splice(0);
102
- this["on" + sEventType] = runListeners;
103
- }
104
-
105
- for (var iLstId = 0; iLstId < aElListeners.length; iLstId++) {
106
- if (aElListeners[iLstId] === fListener) {
107
- return;
108
- }
109
- }
110
-
111
- aElListeners.push(fListener);
112
- }
113
- }
114
- else {
115
- oListeners[sEventType] = {
116
- aEls: [this],
117
- aEvts: [[fListener]]
118
- };
119
-
120
- this["on" + sEventType] = runListeners;
121
- }
122
- };
123
-
124
- Element.prototype.removeEventListener = function (sEventType) {
125
- if (!oListeners.hasOwnProperty(sEventType)) {
126
- return;
127
- }
128
-
129
- var oEvtListeners = oListeners[sEventType];
130
-
131
- for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {
132
- if (oEvtListeners.aEls[iElId] === this) {
133
- nElIdx = iElId;
134
- break;
135
- }
136
- }
137
-
138
- if (nElIdx === -1) {
139
- return;
140
- }
141
-
142
- for (var iLstId = 0, aElListeners = oEvtListeners.aEvts[nElIdx]; iLstId < aElListeners.length; iLstId++) {
143
- aElListeners.splice(iLstId, 1);
144
- }
145
- };
146
- }
147
-
148
- var Mod = {};
149
-
150
- Mod.DOM = (function() {
151
-
152
- var timer,
153
- queue = [];
154
-
155
- function DOM() {
156
- this.cache = {};
157
- this.is_ready = false;
158
- }
159
-
160
- DOM.prototype.add_event = function(element, type, fn, capture) {
161
- if (is_undefined(capture)) {
162
- capture = false;
163
- }
164
-
165
- if (is_string(element)) {
166
- element = this.cache[element];
167
- }
168
-
169
- element.addEventListener(type, fn, capture);
170
- };
171
-
172
- DOM.prototype.remove_event = function(element, type, fn, capture) {
173
- if (is_undefined(capture)) {
174
- capture = false;
175
- }
176
-
177
- if (is_string(element)) {
178
- element = this.cache[element];
179
- }
180
-
181
- element.removeEventListener(type, fn, capture);
182
- };
183
-
184
- DOM.prototype.call_when_ready = function(func) {
185
- if (this.is_ready) {
186
- return func();
187
- }
188
-
189
- if (timer) {
190
- queue.push(func);
191
- }
192
- else {
193
- this.add_event(window, 'load', this.execute_ready_queue);
194
- queue.push(func);
195
- timer = setInterval(this.execute_ready_queue, 13);
196
- }
197
- };
198
-
199
- DOM.prototype.execute_ready_queue = function() {
200
- if (this.is_ready) {
201
- return false;
202
- }
203
-
204
- if (document && document.getElementsByTagName && document.getElementById && document.body) {
205
- clearInterval(timer);
206
- timer = null;
207
- for(var i = 0, j = queue.length; i < j; i++) {
208
- queue[i]();
209
- }
210
-
211
- queue = [];
212
- this.is_ready = true;
213
- }
214
- };
215
-
216
- DOM.prototype.add_elements = function(elements) {
217
- for(var key in elements) {
218
- if (elements.hasOwnProperty(key)) {
219
- this.add_element(key, elements[key]);
220
- }
221
- }
222
- };
223
-
224
- DOM.prototype.add_element = function(key, element) {
225
- this.cache[key] = element;
226
- };
227
-
228
- return DOM;
229
- })();
230
- Mod.Module = (function() {
231
-
232
- function Module(name) {
233
- if (is_undefined(name)) {
234
- throw new Error("Mod.Module(name): name is undefined");
235
- }
236
-
237
- this.dom = new Mod.DOM;
238
- this.data = {};
239
- this.name = name;
240
- }
241
-
242
- Module.prototype.actions = function() {};
243
-
244
- Module.prototype.run = function() {
245
- var mod = this;
246
- this.dom.call_when_ready(function() {
247
- mod.execute();
248
- });
249
- };
250
-
251
- Module.prototype.execute = function() {
252
- this.actions();
253
- };
254
-
255
- Module.prototype.elements = function(elements) {
256
- if (is_undefined(elements)) {
257
- return this.dom.cache;
258
- }
259
-
260
- if (is_string(elements)) {
261
- var name = elements;
262
- return this.dom.cache[name];
263
- }
264
- else {
265
- this.dom.add_elements(elements);
266
- }
267
- };
268
-
269
- Module.prototype.set_data = function(key, value) {
270
- if (is_undefined(key)) {
271
- throw new Error(this.name + '.set_data(key, value): key is undefined');
272
- }
273
-
274
- if (is_typeof(String, key) && is_undefined(value)) {
275
- throw new SyntaxError(this.name + 'Module.set_data(key, value): value is undefined');
276
- }
277
-
278
- if (is_typeof(String, key)) {
279
- this.data[key] = value;
280
- }
281
- else if (is_typeof(Object, key)) {
282
- var data = key;
283
- for(var property in data) {
284
- this.data[property] = data[property];
285
- }
286
- }
287
-
288
- return this;
289
- };
290
-
291
- return Module;
292
- })();
293
- Mod.Application = (function() {
294
-
295
- function Application(name) {
296
- if (is_undefined(name)) {
297
- throw new Error("new Mod.Application(name): name is undefined");
298
- }
299
-
300
- this.name = name
301
- };
302
-
303
- Application.prototype.add_module = function(name) {
304
- if (is_undefined(name)) {
305
- throw new Error("Mod.Application.add_module(name): name is undefined");
306
- }
307
-
308
- if (is_defined(this[name])) {
309
- throw new Error("Mod.Application.add_module('" + name + "'): '" + name + "' already declared");
310
- }
311
-
312
- if (this.name === name) {
313
- throw new Error("Mod.Application.add_module('" + name + "'): a module cannot have the same name as the application. It's bad idea. Do you really want to write " + name + "." + name + "? It's confusing.'");
314
- }
315
-
316
- return this[name] = new Mod.Module(name);
317
- };
318
-
319
- return Application;
320
- })();
321
-
322
- var myapp = new Mod.Application('myapp');