modularity-rails 0.8.1 → 0.9.0

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/.travis.yml CHANGED
@@ -3,6 +3,8 @@ before_script:
3
3
  - "sh -e /etc/init.d/xvfb start"
4
4
  language: ruby
5
5
  rvm:
6
+ - 1.8.7
7
+ - 1.9.2
6
8
  - 1.9.3
7
9
  script: bundle exec evergreen run
8
10
 
@@ -1,3 +1,3 @@
1
1
  module ModularityRails
2
- VERSION = "0.8.1"
2
+ VERSION = "0.9.0"
3
3
  end
@@ -7,8 +7,8 @@ describe 'test environment setup', ->
7
7
  loadCS "/vendor/assets/javascripts/mixins/closable.coffee"
8
8
 
9
9
  # A standard closable module.
10
- class window.ClosableModule1 extends Module
11
- @mixin closable
10
+ class window.ClosableModule1 extends modularity.Module
11
+ @mixin modularity.closable
12
12
 
13
13
 
14
14
  describe 'Closable', ->
@@ -37,8 +37,8 @@ describe 'Closable', ->
37
37
  it "calls the closable_closing hook on the object if it exists", ->
38
38
 
39
39
  # A closable module with the 'closing' hook.
40
- class ClosableModule extends Module
41
- @mixin closable
40
+ class ClosableModule extends modularity.Module
41
+ @mixin modularity.closable
42
42
 
43
43
  constructor: ->
44
44
  super
@@ -55,8 +55,8 @@ describe 'Closable', ->
55
55
  it "calls the closable_closed hook on the object if it exists", ->
56
56
 
57
57
  # A closable module with the 'closed' hook.
58
- class ClosableModule extends Module
59
- @mixin closable
58
+ class ClosableModule extends modularity.Module
59
+ @mixin modularity.closable
60
60
 
61
61
  constructor: ->
62
62
  super
@@ -72,8 +72,8 @@ describe 'Closable', ->
72
72
 
73
73
  it "aborts the close operation if the closable_closing method returns false", ->
74
74
 
75
- class ClosableModuleWithHookThatReturnsFalse extends Module
76
- @mixin closable
75
+ class ClosableModuleWithHookThatReturnsFalse extends modularity.Module
76
+ @mixin modularity.closable
77
77
  closable_closing: -> false
78
78
 
79
79
  module = new ClosableModuleWithHookThatReturnsFalse('#test #closable1')
@@ -7,7 +7,7 @@ describe 'setting up test environment', ->
7
7
 
8
8
  it 'defining test classes', ->
9
9
 
10
- class window.TestModule extends Module
10
+ class window.TestModule extends modularity.Module
11
11
  constructor: (container) ->
12
12
  super
13
13
 
@@ -22,7 +22,7 @@ describe 'modularity', ->
22
22
  spyOn window, 'alert'
23
23
 
24
24
  it "is defined on the 'window' object", ->
25
- expect(window.Module).not.toBeUndefined()
25
+ expect(modularity.Module).not.toBeUndefined()
26
26
 
27
27
  it 'shows an error if no container is given', ->
28
28
  new TestModule()
@@ -55,34 +55,34 @@ describe 'modularity', ->
55
55
  spyOn window, 'alert'
56
56
 
57
57
  it 'shows an alert with the given message if the given condition is false', ->
58
- Module.assert false, 'Message'
58
+ modularity.assert false, 'Message'
59
59
  expect(alert).toHaveBeenCalledWith("Message")
60
60
 
61
61
  it 'fails when the condition is null', ->
62
- Module.assert null, 'Message'
62
+ modularity.assert null, 'Message'
63
63
  expect(alert).toHaveBeenCalledWith("Message")
64
64
 
65
65
  it 'fails when the condition is undefined', ->
66
- Module.assert undefined, 'Message'
66
+ modularity.assert undefined, 'Message'
67
67
  expect(alert).toHaveBeenCalledWith("Message")
68
68
 
69
69
  it 'fails when the condition is an empty array', ->
70
- Module.assert [], 'Message'
70
+ modularity.assert [], 'Message'
71
71
  expect(alert).toHaveBeenCalledWith("Message")
72
72
 
73
73
  it 'fails when the condition is an empty string', ->
74
- Module.assert '', 'Message'
74
+ modularity.assert '', 'Message'
75
75
  expect(alert).toHaveBeenCalledWith("Message")
76
76
 
77
77
  it 'passes when the condition is a string', ->
78
- Module.assert '123', 'Message'
78
+ modularity.assert '123', 'Message'
79
79
  expect(alert).not.toHaveBeenCalled()
80
80
 
81
81
  it "returns false if the condition doesn't pass", ->
82
- expect(Module.assert(false)).toBeFalsy()
82
+ expect(modularity.assert(false)).toBeFalsy()
83
83
 
84
84
  it "returns true if the condition passes", ->
85
- expect(Module.assert('123')).toBeTruthy()
85
+ expect(modularity.assert('123')).toBeTruthy()
86
86
 
87
87
 
88
88
  describe 'jQuery Integration', ->
@@ -95,7 +95,7 @@ describe 'modularity', ->
95
95
  expect(alert).not.toHaveBeenCalled()
96
96
 
97
97
  it 'returns the created instance', ->
98
- result = $('#test #module_container').module(Module)
98
+ result = $('#test #module_container').module(modularity.Module)
99
99
  expect(result).toBeDefined()
100
100
  expect(typeof result).toEqual('object')
101
101
 
@@ -104,7 +104,7 @@ describe 'modularity', ->
104
104
  expect(alert).toHaveBeenCalled()
105
105
 
106
106
  it 'returns an error if the jQuery object is empty.', ->
107
- $('#test #zonk').module(Module)
107
+ $('#test #zonk').module(modularity.Module)
108
108
  expect(alert).toHaveBeenCalled()
109
109
 
110
110
 
@@ -195,7 +195,7 @@ describe 'modularity', ->
195
195
 
196
196
  beforeEach ->
197
197
  mockGlobalContainer = $('#test #module_container')
198
- spyOn(Module, 'global_event_container').andReturn(mockGlobalContainer)
198
+ spyOn(modularity, 'global_event_container').andReturn(mockGlobalContainer)
199
199
 
200
200
  describe 'bind_global_event', ->
201
201
 
@@ -204,31 +204,31 @@ describe 'modularity', ->
204
204
 
205
205
  it 'binds the given event type and callback method to the global event container', ->
206
206
  callback = ->
207
- Module.bind_global_event '123', callback
207
+ modularity.bind_global_event '123', callback
208
208
  expect(mockGlobalContainer.bind).toHaveBeenCalledWith('123', callback)
209
209
 
210
210
  it "throws an error if no parameters are given", ->
211
- Module.bind_global_event()
211
+ modularity.bind_global_event()
212
212
  expect(window.alert).toHaveBeenCalled()
213
213
  expect(mockGlobalContainer.bind).not.toHaveBeenCalled()
214
214
 
215
215
  it "throws an error if the given event type doesn't exist", ->
216
- Module.bind_global_event undefined, ->
216
+ modularity.bind_global_event undefined, ->
217
217
  expect(window.alert).toHaveBeenCalled()
218
218
  expect(mockGlobalContainer.bind).not.toHaveBeenCalled()
219
219
 
220
220
  it 'throws an error if the given event type is not a string', ->
221
- Module.bind_global_event {}, ->
221
+ modularity.bind_global_event {}, ->
222
222
  expect(window.alert).toHaveBeenCalled()
223
223
  expect(mockGlobalContainer.bind).not.toHaveBeenCalled()
224
224
 
225
225
  it "throws an error if the given callback doesn't exist", ->
226
- Module.bind_global_event '123'
226
+ modularity.bind_global_event '123'
227
227
  expect(window.alert).toHaveBeenCalled()
228
228
  expect(mockGlobalContainer.bind).not.toHaveBeenCalled()
229
229
 
230
230
  it 'throws an error if the given callback is not a function', ->
231
- Module.bind_global_event '123', {}
231
+ modularity.bind_global_event '123', {}
232
232
  expect(window.alert).toHaveBeenCalled()
233
233
  expect(mockGlobalContainer.bind).not.toHaveBeenCalled()
234
234
 
@@ -239,30 +239,31 @@ describe 'modularity', ->
239
239
  spyOn mockGlobalContainer, 'trigger'
240
240
 
241
241
  it 'triggers a custom jQuery event with the given event type on the global event container object', ->
242
- Module.fire_global_event 'event type', 'event data'
242
+ modularity.fire_global_event 'event type', 'event data'
243
243
  expect(mockGlobalContainer.trigger).toHaveBeenCalledWith('event type', 'event data')
244
244
 
245
245
  describe 'when no payload is given', ->
246
246
  it 'provides an empty object as payload', ->
247
- Module.fire_global_event 'event type'
247
+ modularity.fire_global_event 'event type'
248
248
  expect(mockGlobalContainer.trigger).toHaveBeenCalled()
249
249
  expect(mockGlobalContainer.trigger.argsForCall[0][1]).toEqual({})
250
250
 
251
251
  it "doesn't change the original payload variable", ->
252
252
  data = undefined
253
- Module.fire_global_event 'event type', data
253
+ modularity.fire_global_event 'event type', data
254
254
  expect(data).toBeUndefined
255
255
 
256
256
  it 'provides 0 as payload if 0 is given', ->
257
- Module.fire_global_event 'event type', 0
257
+ modularity.fire_global_event 'event type', 0
258
258
  expect(mockGlobalContainer.trigger).toHaveBeenCalled()
259
259
  expect(mockGlobalContainer.trigger.argsForCall[0][1]).toEqual(0)
260
260
 
261
261
  it 'throws an error if the given event type is not a string', ->
262
- Module.fire_global_event {}
262
+ modularity.fire_global_event {}
263
263
  expect(mockGlobalContainer.trigger).not.toHaveBeenCalled()
264
264
  expect(window.alert).toHaveBeenCalled()
265
265
 
266
+
266
267
  describe 'mixins', ->
267
268
 
268
269
  myMixin = instance = recordedSelf = Test = null
@@ -272,7 +273,7 @@ describe 'modularity', ->
272
273
  method2: ->
273
274
 
274
275
  beforeEach ->
275
- class Test extends Module
276
+ class Test extends modularity.Module
276
277
  @mixin myMixin
277
278
 
278
279
 
@@ -14,7 +14,7 @@ describe 'Button', ->
14
14
  describe 'manual clicks', ->
15
15
 
16
16
  it 'fires when clicking on the container directly', ->
17
- button = new window.Button($('#test #button1'))
17
+ button = new modularity.Button($('#test #button1'))
18
18
  button.bind_event('clicked', (spy = jasmine.createSpy()))
19
19
 
20
20
  button.container.click()
@@ -24,7 +24,7 @@ describe 'Button', ->
24
24
 
25
25
 
26
26
  it 'fires when clicking embedded elements of the button', ->
27
- button = new window.Button($('#test #button2'))
27
+ button = new modularity.Button($('#test #button2'))
28
28
  button.bind_event('clicked', (spy = jasmine.createSpy()))
29
29
 
30
30
  button.container.find('.embedded').click()
@@ -36,7 +36,7 @@ describe 'Button', ->
36
36
  describe 'programmatic clicks', ->
37
37
 
38
38
  it 'programmatically clicks the button', ->
39
- button = new window.Button($('#test #button2'))
39
+ button = new modularity.Button($('#test #button2'))
40
40
  spy = jasmine.createSpy()
41
41
  button.bind_event('clicked', spy)
42
42
 
@@ -17,7 +17,7 @@ describe 'CounterButton', ->
17
17
  describe 'manual clicks', ->
18
18
 
19
19
  it 'fires when clicking on the container directly', ->
20
- button = new window.CounterButton('#test #button1')
20
+ button = new modularity.CounterButton('#test #button1')
21
21
  button.bind_event('clicked', (spy = jasmine.createSpy()))
22
22
 
23
23
  button.container.click()
@@ -27,7 +27,7 @@ describe 'CounterButton', ->
27
27
 
28
28
 
29
29
  it 'fires when clicking embedded elements of the button', ->
30
- button = new window.CounterButton('#test #button2')
30
+ button = new modularity.CounterButton('#test #button2')
31
31
  button.bind_event('clicked', (spy = jasmine.createSpy()))
32
32
 
33
33
  button.container.find('.embedded').click()
@@ -38,7 +38,7 @@ describe 'CounterButton', ->
38
38
  describe 'programmatic clicks', ->
39
39
 
40
40
  it 'programmatically clicks the button', ->
41
- button = new window.CounterButton('#test #button2')
41
+ button = new modularity.CounterButton('#test #button2')
42
42
  spy = jasmine.createSpy()
43
43
  button.bind_event('clicked', spy)
44
44
 
@@ -49,7 +49,7 @@ describe 'CounterButton', ->
49
49
  describe 'CounterButton specific functionality', ->
50
50
 
51
51
  it 'provides the click counter as the event payload', ->
52
- button = new window.CounterButton('#test #button1')
52
+ button = new modularity.CounterButton('#test #button1')
53
53
  button.bind_event('clicked', (spy = jasmine.createSpy()))
54
54
 
55
55
  button.container.click()
@@ -1,30 +1,31 @@
1
- #= require spec_helper
2
-
3
1
  describe 'test environment setup', ->
4
2
 
5
3
   it 'loading libraries', ->
6
4
  load_modularity()
5
+    loadCS "/vendor/assets/javascripts/tools/cache.coffee"
7
6
     loadCS "/vendor/assets/javascripts/tools/ajax_loader.coffee"
8
7
 
9
8
 
10
9
  describe 'ajax_loader', ->
11
10
   
11
+ ajax_loader = null
12
+ beforeEach ->
13
+ ajax_loader = new modularity.AjaxLoader()
14
+
12
15
   describe 'get', ->
16
+
17
+ url = "/users/4"
13
18
  spy = null
14
19
  beforeEach ->
15
20
  spyOn(jQuery, 'get')
16
21
  spy = jasmine.createSpy()
17
- Module.loader.cache = {}
18
-
19
- url = "user/4"
20
22
 
21
23
  describe 'the data has already been loaded', ->
24
+
22
25
     it 'calls the callback with the cached data', ->
23
- spy = jasmine.createSpy()
24
- url = "/users/4"
26
+ ajax_loader.cache.add url, "my data"
25
27
 
26
- Module.loader.cache[url] = "my data"
27
- Module.loader.get(url, spy)
28
+ ajax_loader.get(url, spy)
28
29
 
29
30
  expect(spy).toHaveBeenCalled()
30
31
  expect(spy.argsForCall[0][0]).toEqual("my data")
@@ -33,13 +34,12 @@ describe 'ajax_loader', ->
33
34
  describe 'the request is already in progress', ->
34
35
 
35
36
  beforeEach ->
36
- Module.loader.cache[url] = []
37
- Module.loader.get(url, spy)
37
+ ajax_loader.cache.cache[url] = [spy]
38
38
 
39
39
 
40
40
  it 'adds the callback to the callback array', ->
41
- expect(Module.loader.cache[url].length).toEqual(1)
42
- expect(Module.loader.cache[url][0]).toEqual(spy)
41
+ expect(ajax_loader.cache.get(url).length).toEqual(1)
42
+ expect(ajax_loader.cache.get(url)[0]).toEqual(spy)
43
43
 
44
44
 
45
45
  it 'returns without calling the callback', ->
@@ -54,15 +54,15 @@ describe 'ajax_loader', ->
54
54
  describe 'first time request', ->
55
55
 
56
56
  beforeEach ->
57
- Module.loader.get(url, spy)
57
+ ajax_loader.get(url, spy)
58
58
 
59
59
  it 'makes an ajax request', ->
60
60
  expect(jQuery.get).toHaveBeenCalled()
61
61
 
62
62
 
63
63
  it 'saves the callback for later', ->
64
- expect(Module.loader.cache[url].length).toEqual(1)
65
- expect(Module.loader.cache[url][0]).toEqual(spy)
64
+ expect(ajax_loader.cache.get(url).length).toEqual(1)
65
+ expect(ajax_loader.cache.get(url)[0]).toEqual(spy)
66
66
 
67
67
  it 'returns without calling the callback', ->
68
68
  expect(spy).not.toHaveBeenCalled()
@@ -74,7 +74,7 @@ describe 'ajax_loader', ->
74
74
  beforeEach ->
75
75
  jquery_callback = null
76
76
  jQuery.get = (url, callback) -> jquery_callback = callback
77
- Module.loader.get url, spy
77
+ ajax_loader.get url, spy
78
78
  jquery_callback('result')
79
79
 
80
80
  it 'calls the given callbacks', ->
@@ -82,4 +82,4 @@ describe 'ajax_loader', ->
82
82
  expect(spy.argsForCall[0][0]).toEqual('result')
83
83
 
84
84
  it 'replaces the cache callbacks with returned data', ->
85
- expect(Module.loader.cache[url]).toEqual('result')
85
+ expect(ajax_loader.cache.get(url)).toEqual('result')
@@ -11,7 +11,7 @@ describe 'Cache', ->
11
11
 
12
12
  cache = null
13
13
  beforeEach ->
14
- cache = new window.Cache()
14
+ cache = new modularity.Cache()
15
15
 
16
16
 
17
17
  describe 'constructor', ->
@@ -1,6 +1,6 @@
1
1
  # This mixin adds a 'clickable' aspect to modules.
2
2
  # This means clicking anywhere on the module fires the 'clicked' event.
3
- window.clickable =
3
+ window.modularity.clickable =
4
4
 
5
5
  constructor: ->
6
6
  @container.click @container_clicked
@@ -17,5 +17,5 @@ window.clickable =
17
17
 
18
18
 
19
19
  # Event handler for clicks on this clickable element.
20
- container_clicked: -> @fire_event clickable.events.clicked
20
+ container_clicked: -> @fire_event modularity.clickable.events.clicked
21
21
 
@@ -1,4 +1,4 @@
1
- window.closable =
1
+ window.modularity.closable =
2
2
 
3
3
  constructor: (container) ->
4
4
  close_button = @container.find('.CloseButton')
@@ -5,7 +5,35 @@
5
5
  # Please see https://github.com/kevgo/modularity for more information.
6
6
 
7
7
 
8
- window.modularity or= {}
8
+ window.modularity = {
9
+
10
+ # Checks whether the given condition is true.
11
+ # Shows an alert with the given message if not.
12
+ assert: (condition, message) ->
13
+ condition_ok = condition?.length > 0
14
+ alert(message) unless condition_ok
15
+ condition_ok
16
+
17
+
18
+ # GLOBAL EVENTS.
19
+
20
+ # Subscribes to the given global event,
21
+ # i.e. calls the given function when the given global event type happens.
22
+ bind_global_event: (event_type, callback) ->
23
+ return unless modularity.assert event_type, "modularity.bind_global_event: parameter 'event_type' is empty"
24
+ return alert "modularity.bind_global_event: parameter 'callback' must be a function, #{callback} (#{typeof callback}) given." unless typeof callback == 'function'
25
+ modularity.global_event_container().bind event_type, callback
26
+
27
+ # Fires the given global event with the given data payload.
28
+ fire_global_event: (event_type, data) ->
29
+ modularity.assert event_type, 'Module.fire_global_event: You must provide the event type to fire.'
30
+ return alert("Module.fire_global_event: Event type must be a string, #{event_type} (#{typeof event_type}) given.") unless typeof event_type == 'string'
31
+ modularity.global_event_container().trigger event_type, data ?= []
32
+
33
+ # Returns the DOM object that is used to fire global events on.
34
+ global_event_container: -> modularity.global_event_container_cache or= $(window)
35
+ }
36
+
9
37
 
10
38
  class window.modularity.Module
11
39
 
@@ -34,24 +62,17 @@ class window.modularity.Module
34
62
  mixin_data.mixin.constructor.apply @, arguments
35
63
 
36
64
 
37
- # Checks whether the given condition is true.
38
- # Shows an alert with the given message if not.
39
- @assert: (condition, message) ->
40
- condition_ok = condition?.length > 0
41
- alert(message) unless condition_ok
42
- condition_ok
43
-
44
65
  # MODULE EVENTS.
45
66
 
46
67
  # Calls the given function when this widget fires the given local event.
47
68
  bind_event: (event_type, callback) =>
48
- return unless Module.assert event_type, "Module.bind_event: parameter 'event_type' is empty"
69
+ return unless modularity.assert event_type, "Module.bind_event: parameter 'event_type' is empty"
49
70
  return alert "Module.bind_event: parameter 'callback' must be a function, #{callback} (#{typeof callback}) given." unless typeof callback == 'function'
50
71
  @container.bind event_type, callback
51
72
 
52
73
  # Fires the given local event with the given data payload.
53
74
  fire_event: (event_type, data) =>
54
- Module.assert event_type, 'Module.fire_event: You must provide the event type to fire.'
75
+ modularity.assert event_type, 'Module.fire_event: You must provide the event type to fire.'
55
76
  return alert("Module.fire_event: Event type must be a string, #{event_type} (#{typeof event_type}) given.") unless typeof event_type == 'string'
56
77
  @container.trigger event_type, data ?= {}
57
78
 
@@ -63,25 +84,6 @@ class window.modularity.Module
63
84
  @prototype.mixins.push({mixin: mixin, params: p})
64
85
 
65
86
 
66
- # GLOBAL EVENTS.
67
-
68
- # Subscribes to the given global event,
69
- # i.e. calls the given function when the given global event type happens.
70
- @bind_global_event: (event_type, callback) =>
71
- return unless @assert event_type, "Module.bind_global_event: parameter 'event_type' is empty"
72
- return alert "Module.bind_global_event: parameter 'callback' must be a function, #{callback} (#{typeof callback}) given." unless typeof callback == 'function'
73
- @global_event_container().bind event_type, callback
74
-
75
- # Fires the given global event with the given data payload.
76
- @fire_global_event: (event_type, data) =>
77
- @assert event_type, 'Module.fire_global_event: You must provide the event type to fire.'
78
- return alert("Module.fire_global_event: Event type must be a string, #{event_type} (#{typeof event_type}) given.") unless typeof event_type == 'string'
79
- @global_event_container().trigger event_type, data ?= []
80
-
81
- # Returns the DOM object that is used to fire global events on.
82
- @global_event_container: => @global_event_container_cache or= $(window)
83
-
84
-
85
87
  # jQuery integration for creating Modules.
86
88
  #
87
89
  # Call like this: myModule = $('...').module(MyModuleClass)
@@ -3,6 +3,6 @@
3
3
  # A button module.
4
4
  # Responds to clicks on the container element.
5
5
  # The container element is expected to already be populated.
6
- class window.modularity.Button extends Module
7
- @mixin clickable
6
+ class window.modularity.Button extends window.modularity.Module
7
+ @mixin window.modularity.clickable
8
8
 
@@ -1,7 +1,7 @@
1
1
  # A button that counts how often it is clicked.
2
2
  # This is implemented as a subclass of Button,
3
3
  # to take advantage of the already existing functionality there.
4
- class window.modularity.CounterButton extends Button
4
+ class window.modularity.CounterButton extends modularity.Button
5
5
 
6
6
  constructor: ->
7
7
  super
@@ -1,3 +1,6 @@
1
+ #= require tools/cache
2
+
3
+
1
4
  # A generic ajax loader for parallel GET requests.
2
5
  # Prevents duplicate requests, caches the responses
3
6
  # to answer subsequent requests immediately
@@ -5,24 +8,26 @@
5
8
  #
6
9
  # Warning: Caches the responses, so once a request is cached,
7
10
  # any new content on the same URL will not be visible!
8
- Module.loader =
11
+ class modularity.AjaxLoader
12
+
13
+ constructor: ->
14
+ @cache = new modularity.Cache()
9
15
 
10
- cache: {}
11
16
 
12
17
  get: (url, callback) ->
13
- cache = Module.loader.cache[url]
18
+ cached_value = @cache.get url
14
19
 
15
20
  # New request --> start GET call, store callback.
16
- unless cache?
17
- Module.loader.cache[url] = [callback]
18
- return jQuery.get url, (data) ->
19
- cb(data) for cb in Module.loader.cache[url]
20
- Module.loader.cache[url] = data
21
+ unless cached_value?
22
+ @cache.add url, [callback]
23
+ return jQuery.get url, (data) =>
24
+ cb(data) for cb in @cache.get(url)
25
+ @cache.add url, data
21
26
 
22
27
  # Request while the GET call is still pending -->
23
28
  # add the given callback to the list of waiting callbacks.
24
- if cache.constructor is Array
25
- return cache.push callback
29
+ if cached_value.constructor is Array
30
+ return cached_value.push callback
26
31
 
27
32
  # There is a cached response for this request --> answer the request immediately.
28
- callback(cache)
33
+ callback(cached_value)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modularity-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-10 00:00:00.000000000 Z
12
+ date: 2012-05-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70325015499260 !ruby/object:Gem::Requirement
16
+ requirement: &70160283637480 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70325015499260
24
+ version_requirements: *70160283637480
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: capybara-webkit
27
- requirement: &70325015480180 !ruby/object:Gem::Requirement
27
+ requirement: &70160283637020 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70325015480180
35
+ version_requirements: *70160283637020
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: evergreen
38
- requirement: &70325015479500 !ruby/object:Gem::Requirement
38
+ requirement: &70160283636560 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70325015479500
46
+ version_requirements: *70160283636560
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rb-fsevent
49
- requirement: &70325015478760 !ruby/object:Gem::Requirement
49
+ requirement: &70160283635920 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70325015478760
57
+ version_requirements: *70160283635920
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: guard-livereload
60
- requirement: &70325015478160 !ruby/object:Gem::Requirement
60
+ requirement: &70160283635300 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70325015478160
68
+ version_requirements: *70160283635300
69
69
  description: Description of ModularityRails.
70
70
  email:
71
71
  - kevin.goslar@gmail.com
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  version: '0'
126
126
  requirements: []
127
127
  rubyforge_project:
128
- rubygems_version: 1.8.10
128
+ rubygems_version: 1.8.15
129
129
  signing_key:
130
130
  specification_version: 3
131
131
  summary: Summary of ModularityRails.