modularity-rails 0.12.1 → 0.12.2
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/demo/spec/javascripts/data/ajax_loader_spec.coffee +8 -0
- data/demo/spec/javascripts/data/persistence_manager_spec.coffee +8 -0
- data/lib/modularity-rails/version.rb +1 -1
- data/vendor/assets/javascripts/modularity/data/ajax_loader.coffee +6 -0
- data/vendor/assets/javascripts/modularity/data/persistence_manager.coffee +7 -2
- metadata +12 -12
@@ -42,6 +42,8 @@ describe 'ajax_loader', ->
|
|
42
42
|
it 'returns without calling the callback', ->
|
43
43
|
spy.should.not.have.been.called
|
44
44
|
|
45
|
+
it 'fires the LOADING event'
|
46
|
+
|
45
47
|
describe 'the request is already in progress', ->
|
46
48
|
|
47
49
|
beforeEach ->
|
@@ -60,6 +62,8 @@ describe 'ajax_loader', ->
|
|
60
62
|
it 'does not make another ajax request', ->
|
61
63
|
jQuery.get.should.not.have.been.called
|
62
64
|
|
65
|
+
it "doesn't fire the LOADING event again"
|
66
|
+
|
63
67
|
describe 'ajax request successful', ->
|
64
68
|
|
65
69
|
beforeEach ->
|
@@ -74,6 +78,8 @@ describe 'ajax_loader', ->
|
|
74
78
|
it 'replaces the cache callbacks with returned data', ->
|
75
79
|
ajax_loader.cache.get(url).should.equal 'result'
|
76
80
|
|
81
|
+
it 'fires the LOADED event'
|
82
|
+
|
77
83
|
describe 'the data has already been loaded', ->
|
78
84
|
|
79
85
|
it 'calls the callback with the cached data', ->
|
@@ -84,6 +90,8 @@ describe 'ajax_loader', ->
|
|
84
90
|
spy.should.have.been.called
|
85
91
|
spy.should.have.been.calledWith "my data"
|
86
92
|
|
93
|
+
it "doesn't fire any events"
|
94
|
+
|
87
95
|
|
88
96
|
describe 'with caching disabled', ->
|
89
97
|
|
@@ -33,6 +33,14 @@ describe 'PersistenceManager', ->
|
|
33
33
|
persistence_manager.key.should.equal 'id'
|
34
34
|
|
35
35
|
|
36
|
+
describe 'add_all', ->
|
37
|
+
|
38
|
+
it 'adds the given data to the server_data cache', ->
|
39
|
+
spy = sinon.spy persistence_manager.server_data, 'add_all'
|
40
|
+
data = [{id: 1}, {id: 2}]
|
41
|
+
persistence_manager.add_all data
|
42
|
+
spy.should.have.been.calledOnce
|
43
|
+
|
36
44
|
describe 'create', ->
|
37
45
|
new_obj = {value: 'foo'}
|
38
46
|
|
@@ -18,6 +18,12 @@ class window.modularity.AjaxLoader
|
|
18
18
|
@caching = params.caching
|
19
19
|
|
20
20
|
|
21
|
+
# The different events that this widget can fire.
|
22
|
+
@events =
|
23
|
+
AJAX_LOADING: 'AJAX_LOADING' # Called when an AJAX request starts.
|
24
|
+
AJAX_LOADED: 'AJAX_LOADED' # Called when an AJAX request finishes.
|
25
|
+
|
26
|
+
|
21
27
|
get: (url, callback) ->
|
22
28
|
cached_value = @cache.get url
|
23
29
|
|
@@ -22,6 +22,11 @@ class modularity.PersistenceManager
|
|
22
22
|
@loader = new modularity.AjaxLoader { cache: no }
|
23
23
|
|
24
24
|
|
25
|
+
# Adds the given data objects to the server cache.
|
26
|
+
add_all: (data) ->
|
27
|
+
@server_data.add_all data
|
28
|
+
|
29
|
+
|
25
30
|
# Returns the URL to access the collection of objects.
|
26
31
|
collection_url: ->
|
27
32
|
"#{@base_url}.json"
|
@@ -65,14 +70,14 @@ class modularity.PersistenceManager
|
|
65
70
|
# No data in client cache --> try to use server cache.
|
66
71
|
server_obj = @server_data.get key
|
67
72
|
if server_obj
|
68
|
-
client_obj =
|
73
|
+
client_obj = modularity.clone_hash server_obj
|
69
74
|
@client_data.add client_obj
|
70
75
|
return callback client_obj
|
71
76
|
|
72
77
|
# No data on client at all --> load data from server.
|
73
78
|
@loader.get "#{@base_url}/#{key}", (server_entry) =>
|
74
79
|
@server_data.add server_entry
|
75
|
-
client_entry =
|
80
|
+
client_entry = modularity.clone_hash server_entry
|
76
81
|
@client_data.add client_entry
|
77
82
|
callback client_entry
|
78
83
|
|
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.12.
|
4
|
+
version: 0.12.2
|
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-
|
12
|
+
date: 2012-05-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70099005263540 !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: *
|
24
|
+
version_requirements: *70099005263540
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: capybara-webkit
|
27
|
-
requirement: &
|
27
|
+
requirement: &70099005262660 !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: *
|
35
|
+
version_requirements: *70099005262660
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: evergreen
|
38
|
-
requirement: &
|
38
|
+
requirement: &70099005261600 !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: *
|
46
|
+
version_requirements: *70099005261600
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rb-fsevent
|
49
|
-
requirement: &
|
49
|
+
requirement: &70099005260620 !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: *
|
57
|
+
version_requirements: *70099005260620
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: guard-livereload
|
60
|
-
requirement: &
|
60
|
+
requirement: &70099005276020 !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: *
|
68
|
+
version_requirements: *70099005276020
|
69
69
|
description: Description of ModularityRails.
|
70
70
|
email:
|
71
71
|
- kevin.goslar@gmail.com
|