joosy 1.2.0.alpha.54 → 1.2.0.alpha.55

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6dcc12f195bd622073b8f775a078d59cd88c457f
4
- data.tar.gz: 4abf8429b170d5727e50591e3bc57097bdeabf83
3
+ metadata.gz: 25d487304e9ce59d6de2a9dc4801fb801777239f
4
+ data.tar.gz: 27ccb7c1ed82c621247e9e00a155845711636ffe
5
5
  SHA512:
6
- metadata.gz: 530bec08fe78811958c419372b6cb5aa2615418788b24abc03cd852aa4185140fa43dd28556f65fd3ef238c9d622a8c09eacef8f8747f7560a10b56bf372551b
7
- data.tar.gz: 7e7c805a6ec51aa6ace2a386306ca0f0870b84a48476ae0dae875016067ac14dedc07fa38174414e4523617541bc8a5ad20d13ae25e73c18e96b115c5c53fe99
6
+ metadata.gz: d98c25370509ebb3abf2ade548ecf7d0da6f99304c7e9bd8ac7a83509903edffb46cee46d049b6f9c83a974e8ca479912aa59a89ff9ffd1cef4997115c8122e9
7
+ data.tar.gz: 39056008866151263195f9888e34c9ddcac102d3c3c58aa8eee62af7eefec1e4f0f65a9c461a2cb9338147090f9a060174b15d73a839ac26d3ff8e8e088fc7b9
@@ -0,0 +1,2 @@
1
+ --output-dir ./doc.tmp
2
+ source
data/.gitignore CHANGED
@@ -6,3 +6,5 @@ spec/*.html
6
6
  *.gem
7
7
  Gemfile.lock
8
8
  .idea/
9
+ doc
10
+ doc.tmp
@@ -1,9 +1,9 @@
1
1
  language: node_js
2
2
  node_js:
3
- - 0.8
3
+ - 0.10
4
4
  before_script:
5
5
  - npm install -g grunt-cli
6
- - ./node_modules/.bin/bower install
6
+ - ./node_modules/.bin/bower -V install
7
7
  script: "grunt test"
8
8
  branches:
9
9
  except:
@@ -3,6 +3,7 @@ module.exports = (grunt) ->
3
3
  Sugar = require 'sugar'
4
4
  Mincer = require 'mincer'
5
5
  FS = require 'fs'
6
+ semver = require 'semver'
6
7
 
7
8
  #
8
9
  # Locations
@@ -135,7 +136,30 @@ module.exports = (grunt) ->
135
136
  locations.source.extensions(x).build
136
137
 
137
138
  #
138
- # Tasks
139
+ # Preparations
140
+ #
141
+ grunt.registerTask 'prepare', ->
142
+ complete = @async()
143
+
144
+ base = process.cwd()
145
+ git = (args, callback) ->
146
+ grunt.util.spawn {cmd: "git", args: args, opts: {stdio: [0,1,2]}}, callback
147
+
148
+ if grunt.file.exists 'doc'
149
+ grunt.fatal "Documentation directory exists. Please remove it"
150
+
151
+ git ["clone", "git@github.com:joosy/joosy.git", "doc"], (error, result) ->
152
+ grunt.fatal "Erorr cloning repo" if error
153
+ process.chdir 'doc'
154
+
155
+ git ["checkout", "gh-pages"], (error, result) ->
156
+ grunt.fatal "Erorr checking branch out" if error
157
+
158
+ process.chdir base
159
+ complete()
160
+
161
+ #
162
+ # Builders
139
163
  #
140
164
  grunt.registerMultiTask 'mince', ->
141
165
  Mincer.CoffeeEngine.configure bare: false
@@ -156,6 +180,65 @@ module.exports = (grunt) ->
156
180
  bower.version = meta.version
157
181
  FS.writeFileSync 'bower.json', JSON.stringify(bower, null, 2)
158
182
 
183
+ #
184
+ # Documentation
185
+ #
186
+ grunt.registerTask 'doc', ->
187
+ complete = @async()
188
+ version = require('./package.json').version.split('-')
189
+ version = version[0]+'-'+version[1]?.split('.')[0]
190
+ destination = "doc/#{version}"
191
+ args = ['source', '--output-dir', destination]
192
+
193
+ git = (args, callback) ->
194
+ grunt.util.spawn {cmd: "git", args: args, opts: {stdio: [0,1,2], cwd: 'doc'}}, callback
195
+
196
+ date = (version) ->
197
+ return undefined unless version
198
+ Date.create(grunt.file.read "doc/#{version}/DATE").format "{d} {Month} {yyyy}"
199
+
200
+ git ['pull'], (error, result) ->
201
+ grunt.fatal "Error pulling from git" if error
202
+
203
+ grunt.file.delete destination if grunt.file.exists destination
204
+ grunt.util.spawn {cmd: "codo", args: args, opts: {stdio: [0,1,2]}}, (error, result) ->
205
+ grunt.fatal "Error generating docs" if error
206
+ grunt.file.write "#{destination}/DATE", (new Date).toISOString()
207
+
208
+ versions = []
209
+ for version in grunt.file.expand({cwd: 'doc'}, '*')
210
+ versions.push version if semver.valid(version)
211
+
212
+ versions = versions.sort(semver.rcompare)
213
+ edge = versions.find (x) -> x.has('-')
214
+ stable = versions.find (x) -> !x.has('-')
215
+ versions = versions.remove edge, stable
216
+
217
+ versions = {
218
+ edge:
219
+ version: edge
220
+ date: date(edge)
221
+ stable:
222
+ version: stable
223
+ date: date(stable)
224
+ versions: versions.map (x) -> { version: x, date: date(x) }
225
+ }
226
+ grunt.file.write 'doc/versions.js', "window.versions = #{JSON.stringify(versions)}"
227
+
228
+ git ['add', '-A'], (error, result) ->
229
+ grunt.fatal "Error adding files" if error
230
+
231
+ git ['commit', '-m', "Updated at #{(new Date).toISOString()}"], (error, result) ->
232
+ grunt.fatal "Error commiting" if error
233
+
234
+ git ['push', 'origin', 'gh-pages'], (error, result) ->
235
+ grunt.fatal "Error pushing" if error
236
+ complete()
237
+
238
+
239
+ #
240
+ # Publishing
241
+ #
159
242
  grunt.registerTask 'publish:ensureCommits', ->
160
243
  complete = @async()
161
244
 
@@ -184,4 +267,4 @@ module.exports = (grunt) ->
184
267
  grunt.file.delete gem
185
268
  complete(true)
186
269
 
187
- grunt.registerTask 'publish', ['test', 'publish:ensureCommits', 'release', 'publish:gem']
270
+ grunt.registerTask 'publish', ['test', 'publish:ensureCommits', 'doc', 'release', 'publish:gem']
data/bower.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "joosy",
3
- "version": "1.2.0-alpha.54",
3
+ "version": "1.2.0-alpha.55",
4
4
  "main": "lib/joosy.js",
5
5
  "ignore": [
6
6
  "bin",
@@ -539,14 +539,6 @@
539
539
  _ref.unbind().off();
540
540
  }
541
541
  return this.$container = $();
542
- },
543
- __loadData: function(done) {
544
- var _this = this;
545
- this.data = {};
546
- return this.__runFetchs([], function() {
547
- _this.dataFetched = true;
548
- return done();
549
- });
550
542
  }
551
543
  };
552
544
 
@@ -1207,6 +1199,12 @@
1207
1199
  this.__intervals.push(timer);
1208
1200
  return timer;
1209
1201
  },
1202
+ clearTimeout: function(timer) {
1203
+ return window.clearTimeout(timer);
1204
+ },
1205
+ clearInterval: function(timer) {
1206
+ return window.clearInterval(timer);
1207
+ },
1210
1208
  __clearTime: function() {
1211
1209
  var entry, _i, _j, _len, _len1, _ref, _ref1, _results;
1212
1210
  if (this.__intervals) {
@@ -2306,13 +2304,20 @@
2306
2304
 
2307
2305
  }).call(this);
2308
2306
  (function() {
2309
- Joosy.Application = {
2310
- Pages: {},
2311
- Layouts: {},
2312
- Controls: {},
2313
- initialized: false,
2314
- loading: true,
2315
- config: {
2307
+ Joosy.Application = (function() {
2308
+ function Application() {}
2309
+
2310
+ Application.Pages = {};
2311
+
2312
+ Application.Layouts = {};
2313
+
2314
+ Application.Controls = {};
2315
+
2316
+ Application.initialized = false;
2317
+
2318
+ Application.loading = true;
2319
+
2320
+ Application.config = {
2316
2321
  test: false,
2317
2322
  debug: false,
2318
2323
  templater: {
@@ -2323,8 +2328,9 @@
2323
2328
  base: '',
2324
2329
  prefix: ''
2325
2330
  }
2326
- },
2327
- initialize: function(selector, options) {
2331
+ };
2332
+
2333
+ Application.initialize = function(selector, options) {
2328
2334
  var _this = this;
2329
2335
  this.selector = selector;
2330
2336
  if (options == null) {
@@ -2352,8 +2358,9 @@
2352
2358
  }
2353
2359
  });
2354
2360
  return this.initialized = true;
2355
- },
2356
- reset: function() {
2361
+ };
2362
+
2363
+ Application.reset = function() {
2357
2364
  var _ref;
2358
2365
  Joosy.Router.reset();
2359
2366
  Joosy.templater(false);
@@ -2364,15 +2371,13 @@
2364
2371
  delete this.page;
2365
2372
  this.loading = true;
2366
2373
  return this.initialized = false;
2367
- },
2368
- navigate: function() {
2369
- var _ref;
2370
- return (_ref = this.router).navigate.apply(_ref, arguments);
2371
- },
2372
- content: function() {
2374
+ };
2375
+
2376
+ Application.content = function() {
2373
2377
  return $(this.selector);
2374
- },
2375
- changePage: function(page, params) {
2378
+ };
2379
+
2380
+ Application.changePage = function(page, params) {
2376
2381
  var attempt;
2377
2382
  attempt = new page(params, this.page);
2378
2383
  if (!attempt.halted) {
@@ -2383,8 +2388,9 @@
2383
2388
  }
2384
2389
  return this.page = attempt;
2385
2390
  }
2386
- },
2387
- forceSandbox: function() {
2391
+ };
2392
+
2393
+ Application.forceSandbox = function() {
2388
2394
  var sandbox;
2389
2395
  sandbox = Joosy.uid();
2390
2396
  this.selector = "#" + sandbox;
@@ -2393,8 +2399,11 @@
2393
2399
  width: '0px',
2394
2400
  overflow: 'hidden'
2395
2401
  }));
2396
- }
2397
- };
2402
+ };
2403
+
2404
+ return Application;
2405
+
2406
+ })();
2398
2407
 
2399
2408
  if ((typeof define !== "undefined" && define !== null ? define.amd : void 0) != null) {
2400
2409
  define('joosy/application', function() {
@@ -15,7 +15,10 @@ module.exports = (grunt) ->
15
15
  # config: require('./config.json')
16
16
 
17
17
  # Setup built-in development proxy to workaround Cross-Origin
18
- # proxy: [ {'/joosy': 'http://joosy.ws'} ]
18
+ # server:
19
+ # proxy: [
20
+ # {src: '/joosy', dest: 'http://joosy.ws'}
21
+ # ]
19
22
 
20
23
  assets:
21
24
  application:
@@ -4,7 +4,7 @@
4
4
  "keywords": [
5
5
  "joosy"
6
6
  ],
7
- "version": "1.2.0-alpha.54",
7
+ "version": "1.2.0-alpha.55",
8
8
  "author": "Boris Staal <boris@staal.io>",
9
9
  "homepage": "http://joosy.ws/",
10
10
  "repository": {
@@ -24,11 +24,10 @@
24
24
  "command-router": "0.0.5",
25
25
  "resolve": "~0.4.0",
26
26
  "ejs": "~0.8.4",
27
- "commander": "~2.0.0",
28
27
  "commander": "~1.2.0",
29
28
  "colors": "~0.6.0-1",
30
29
  "grunt": "~0.4.1",
31
- "mincer": "0.5.2",
30
+ "mincer": ">= 0.5.5",
32
31
  "connect": "~2.7.11",
33
32
  "haml-coffee": "~1.11.1",
34
33
  "proxy-middleware": "~0.4.0",
@@ -42,6 +41,7 @@
42
41
  "grunt-contrib-coffee": "~0.7.0",
43
42
  "grunt-contrib-connect": "~0.3.0",
44
43
  "grunt-coffeelint": "0.0.6",
45
- "grunt-release": "~0.3.5"
44
+ "grunt-release": "~0.3.5",
45
+ "semver": "~2.1.0"
46
46
  }
47
47
  }
@@ -7,17 +7,15 @@
7
7
  #
8
8
  # Joosy Application container
9
9
  #
10
- # @mixin
11
- #
12
- Joosy.Application =
13
- Pages: {}
14
- Layouts: {}
15
- Controls: {}
10
+ class Joosy.Application
11
+ @Pages: {}
12
+ @Layouts: {}
13
+ @Controls: {}
16
14
 
17
- initialized: false
18
- loading: true
15
+ @initialized: false
16
+ @loading: true
19
17
 
20
- config:
18
+ @config:
21
19
  test: false
22
20
  debug: false
23
21
  templater:
@@ -34,7 +32,7 @@ Joosy.Application =
34
32
  # @param [String] selector jQuery-compatible selector of root application element
35
33
  # @param [Object] options
36
34
  #
37
- initialize: (@selector, options={}) ->
35
+ @initialize: (@selector, options={}) ->
38
36
  if @initialized
39
37
  throw new Error 'Attempted to initialize Application twice'
40
38
 
@@ -56,7 +54,10 @@ Joosy.Application =
56
54
 
57
55
  @initialized = true
58
56
 
59
- reset: ->
57
+ #
58
+ # Shuts down current application and clears state
59
+ #
60
+ @reset: ->
60
61
  Joosy.Router.reset()
61
62
  Joosy.templater false
62
63
  Joosy.debug false
@@ -67,13 +68,10 @@ Joosy.Application =
67
68
  @loading = true
68
69
  @initialized = false
69
70
 
70
- navigate: ->
71
- @router.navigate arguments...
72
-
73
71
  #
74
72
  # Gets current application root node
75
73
  #
76
- content: ->
74
+ @content: ->
77
75
  $(@selector)
78
76
 
79
77
  #
@@ -82,7 +80,7 @@ Joosy.Application =
82
80
  # @param [Joosy.Page] page The class (not object) of page to load
83
81
  # @param [Object] params Hash of page params
84
82
  #
85
- changePage: (page, params) ->
83
+ @changePage: (page, params) ->
86
84
  attempt = new page params, @page
87
85
 
88
86
  unless attempt.halted
@@ -93,7 +91,8 @@ Joosy.Application =
93
91
 
94
92
  @page = attempt
95
93
 
96
- forceSandbox: ->
94
+ # @private
95
+ @forceSandbox: ->
97
96
  sandbox = Joosy.uid()
98
97
  @selector = "##{sandbox}"
99
98
  $('body').append $('<div/>').attr('id', sandbox).css
@@ -4,6 +4,7 @@
4
4
  # Creates unified collection of bindings to a particular instance
5
5
  # that can be unbinded alltogether
6
6
  #
7
+ # @see Joosy.Modules.Events
7
8
  # @example
8
9
  # namespace = Joosy.Events.Namespace(something)
9
10
  #
@@ -47,6 +47,7 @@ Joosy.Modules.DOM =
47
47
  # Converts '$...' notation to selector from 'elements'
48
48
  #
49
49
  # @param [String] selector Selector to convert
50
+ # @private
50
51
  #
51
52
  __extractSelector: (selector) ->
52
53
  selector = selector.replace /(\$[A-z0-9\.\$]+)/g, (path) =>
@@ -63,6 +64,7 @@ Joosy.Modules.DOM =
63
64
  #
64
65
  # Assigns elements defined in 'elements'
65
66
  #
67
+ # @private
66
68
  # @example Sample elements
67
69
  # @mapElements
68
70
  # foo: '.foo'
@@ -85,6 +87,8 @@ Joosy.Modules.DOM =
85
87
  #
86
88
  # Wraps actual element closures. Required to clear context to avoid circular reference
87
89
  #
90
+ # @private
91
+ #
88
92
  __wrapElement: (value) ->
89
93
  (filter) =>
90
94
  return @$(value) unless filter
@@ -93,6 +97,7 @@ Joosy.Modules.DOM =
93
97
  #
94
98
  # Binds events defined in 'events' to container
95
99
  #
100
+ # @private
96
101
  # @example Sample events
97
102
  # @mapEvents
98
103
  # 'click': -> # this will raise on container click
@@ -124,20 +129,12 @@ Joosy.Modules.DOM =
124
129
  @$container.on eventName, selector, callback
125
130
  Joosy.Modules.Log.debugAs @, "#{eventName} binded on #{selector}"
126
131
 
132
+ # @private
127
133
  __clearContainer: ->
128
134
  @$container?.unbind().off()
129
135
  @$container = $()
130
136
 
131
137
 
132
- # This is not clearly related for container management
133
- # But it will be later common for all containers
134
- # See https://github.com/joosy/joosy/issues/102
135
- __loadData: (done) ->
136
- @data = {}
137
- @__runFetchs [], =>
138
- @dataFetched = true
139
- done()
140
-
141
138
  # AMD wrapper
142
139
  if define?.amd?
143
140
  define 'joosy/modules/dom', -> Joosy.Modules.DOM
@@ -1,6 +1,7 @@
1
1
  #= require joosy/joosy
2
2
  #= require_tree ../events
3
3
 
4
+ # @private
4
5
  class SynchronizationContext
5
6
  constructor: -> @actions = []
6
7
  do: (action) -> @actions.push action
@@ -1,3 +1,4 @@
1
+ # @mixin
1
2
  Joosy.Modules.Page_Scrolling =
2
3
 
3
4
  included: ->
@@ -1,3 +1,4 @@
1
+ # @mixin
1
2
  Joosy.Modules.Page_Title =
2
3
 
3
4
  #
@@ -12,6 +12,7 @@ Joosy.Modules.TimeManager =
12
12
  #
13
13
  # @param [Integer] timeout Miliseconds to wait
14
14
  # @param [Function] action Action to run on timeout
15
+ # @return [Integer] Timer
15
16
  #
16
17
  setTimeout: (timeout, action) ->
17
18
  @__timeouts ||= []
@@ -26,6 +27,7 @@ Joosy.Modules.TimeManager =
26
27
  #
27
28
  # @param [Integer] delay Miliseconds between runs
28
29
  # @param [Function] action Action to run
30
+ # @return [Integer] Timer
29
31
  #
30
32
  setInterval: (delay, action) ->
31
33
  @__intervals ||= []
@@ -35,6 +37,22 @@ Joosy.Modules.TimeManager =
35
37
 
36
38
  timer
37
39
 
40
+ #
41
+ # Clears tmeout preventing callback from execution
42
+ #
43
+ # @param [Integer] timer Timer
44
+ #
45
+ clearTimeout: (timer) ->
46
+ window.clearTimeout timer
47
+
48
+ #
49
+ # Clears inteval preventing callback from execution
50
+ #
51
+ # @param [Integer] timer Timer
52
+ #
53
+ clearInterval: (timer) ->
54
+ window.clearInterval timer
55
+
38
56
  #
39
57
  # Drops all registered timeouts and intervals for this object
40
58
  #
@@ -27,8 +27,8 @@ class Joosy.Page extends Joosy.Widget
27
27
  @extend Joosy.Modules.Page_Title
28
28
 
29
29
  #
30
- # @params [Hash] params Route params
31
- # @params [Joosy.Page] previous Previous page to unload
30
+ # @param [Hash] params Route params
31
+ # @param [Joosy.Page] previous Previous page to unload
32
32
  #
33
33
  constructor: (@params, @previous) ->
34
34
  @layoutShouldChange = @previous?.__layoutClass != @__layoutClass
@@ -7,13 +7,14 @@
7
7
  # Router. Reacts on URI change event and loads proper pages
8
8
  #
9
9
  # Internal storage rules:
10
- # * HTML5 Prefix option is stored with both leading and trailing slashes
11
- # * Helpers pathes are stored without leading trailing slash
12
- # * Route matchers declare leading and trailing slashes as optional
13
10
  #
14
- # Example:
11
+ # * HTML5 Prefix option is stored with both leading and trailing slashes
12
+ # * Helpers pathes are stored without leading trailing slash
13
+ # * Route matchers declare leading and trailing slashes as optional
14
+ #
15
+ # @example
15
16
  # Joosy.Router.map
16
- # 404 : (path) -> alert "Page '#{path}' was not found :("
17
+ # 404 : (path) -> alert "Page was not found :("
17
18
  # '/' : Welcome.IndexPage
18
19
  # '/resources' :
19
20
  # '/' : Resource.IndexPage
@@ -21,8 +22,6 @@
21
22
  # '/:id/edit' : Resource.EditPage
22
23
  # '/new' : Resource.EditPage
23
24
  #
24
- # @mixin
25
- #
26
25
  class Joosy.Router extends Joosy.Module
27
26
  @extend Joosy.Modules.Events
28
27
 
@@ -40,6 +39,7 @@ class Joosy.Router extends Joosy.Module
40
39
 
41
40
  #
42
41
  # Rails-like wrapper around internal raw routes representation
42
+ # @private
43
43
  #
44
44
  class Drawer
45
45
  @run: (block, namespace='', alias='') ->
@@ -10,11 +10,13 @@
10
10
  # Base class for all Joosy Widgets.
11
11
  #
12
12
  # Joosy expects you to perceive your actual application as a tree of widgets. Internally all high-level
13
- # containers like {Layout} and {Page} are inheriting from Widget. Widget contains logic for:
13
+ # containers like {Joosy.Layout} and {Joosy.Page} are inheriting from Widget. Widget contains logic for:
14
14
  #
15
- # * Recursive nesting (widgets can contain widgets, etc.)
16
- # * Loading and Unloading flows (proper initializations, destructions and replacements)
17
- # * Filtering (afterLoad, beforeLoad and the family of paint filters)
15
+ # * Recursive nesting (widgets can contain widgets, etc.)
16
+ #
17
+ # * Loading and Unloading flows (proper initializations, destructions and replacements)
18
+ #
19
+ # * Filtering (afterLoad, beforeLoad and the family of paint filters)
18
20
  #
19
21
  # During the bootstrap, widgets can take either dependent or independent strategy. Dependent widgets form
20
22
  # "dependent chains" that will be rendered together (HTML will be injected into DOM atomically). Such chains
@@ -31,16 +33,76 @@
31
33
  # Then total chain of asynchronous callbacks goes with the following scenario.
32
34
  #
33
35
  # 1. A collects all the fetches from the whole tree recursively and starts them in parallel.
34
- # 2. A runs erase on the previous same-level widget (attribute `@previos`) if one is given.
36
+ #
37
+ # 2. A runs erase on the previous same-level widget (attribute `@previous`) if one is given.
38
+ #
35
39
  # 3. A runs beforePaint on itself when 2 is done.
40
+ #
36
41
  # 4. A waits for step 3 and all fetches of containers in recursive dependency chain (equal to B) to complete.
42
+ #
37
43
  # 5. A builds resulting HTML using:
44
+ #
38
45
  # * HTML of dependency chain (B)
46
+ #
39
47
  # * HTML of independent containers that are ready to be rendered (their own recursive dependency chain is fetched completely).
48
+ #
40
49
  # 5. A forks every independent container that was not rendered (C).
50
+ #
41
51
  # 6. A starts paint on itself and injects HTML into DOM.
52
+ #
42
53
  # 7. C repeats steps 2-7 using itself as a base and D as its own recursive dependency chain
43
54
  #
55
+ # @method .beforeLoad(callback)
56
+ # Initialization hook that runs in the very begining of bootstrap process.
57
+ # Call it multiple times to attach several hooks.
58
+ #
59
+ # @method .afterLoad(callback)
60
+ # Hook that runs after the section was properly loaded and injected into DOM.
61
+ # Call it multiple times to attach several hooks.
62
+ #
63
+ # @method .beforeUnload(callback)
64
+ # Hook that finalizes section desctruction.
65
+ # Call it multiple times to attach several hooks.
66
+ #
67
+ # @method .fetch(callback)
68
+ # Sets the method which will controll the data fetching proccess.
69
+ # @note Given method will be called with `complete` function as parameter. As soon as your
70
+ # preparations are done you should call that function.
71
+ # @example Basic usage
72
+ # @fetch (complete) ->
73
+ # $.get '/rumbas', (@data) => complete()
74
+ #
75
+ # @method .beforePaint(callback)
76
+ # Sets the method which will controll the painting preparation proccess.
77
+ # This method will be called right ater previous section erase and in parallel with
78
+ # new data fetching so you can use it to initiate preloader.
79
+ # @note Given method will be called with `complete` function as parameter. As soon as your
80
+ # preparations are done you should call that function.
81
+ # @example Sample before painter
82
+ # @beforePaint (complete) ->
83
+ # @$preloader.slideDown -> complete()
84
+ #
85
+ # @method .paint(callback)
86
+ # Sets the method which will controll the painting proccess.
87
+ # This method will be called after fetching, erasing and beforePaint is complete.
88
+ # It should be used to setup appearance effects of page.
89
+ # @note Given method will be called with `complete` function as parameter. As soon as your
90
+ # preparations are done you should call that function.
91
+ # @example Sample painter
92
+ # @paint (complete) ->
93
+ # @$container.fadeIn -> complete()
94
+ #
95
+ # @method .erase(callback)
96
+ # Sets the method which will controll the erasing proccess.
97
+ # Use this method to setup hiding effect.
98
+ # @note Given method will be called with `complete` function as parameter. As soon as your
99
+ # preparations are done you should call that function.
100
+ # @note This method will be caled _before_ unload routines so in theory you can
101
+ # access page data from that. Think twice if you are doing it right though.
102
+ # @example Sample eraser
103
+ # @erase (complete) ->
104
+ # @$container.fadeOut -> complete()
105
+ #
44
106
  # @include Joosy.Modules.Log
45
107
  # @include Joosy.Modules.Events
46
108
  # @include Joosy.Modules.DOM
@@ -77,100 +139,9 @@ class Joosy.Widget extends Joosy.Module
77
139
  @independent: ->
78
140
  @::__independent = true
79
141
 
80
- @registerPlainFilters \
81
- #
82
- # @method .beforeLoad(callback)
83
- #
84
- # Initialization hook that runs in the very begining of bootstrap process.
85
- # Call it multiple times to attach several hooks.
86
- #
87
- 'beforeLoad',
88
-
89
- #
90
- # @method .afterLoad(callback)
91
- #
92
- # Hook that runs after the section was properly loaded and injected into DOM.
93
- # Call it multiple times to attach several hooks.
94
- #
95
- 'afterLoad',
96
-
97
- #
98
- # @method .beforeUnload(callback)
99
- #
100
- # Hook that finalizes section desctruction.
101
- # Call it multiple times to attach several hooks.
102
- #
103
- 'afterUnload'
104
-
105
- @registerSequencedFilters \
106
-
107
- #
108
- # @method .beforePaint(callback)
109
- #
110
- # Sets the method which will controll the painting preparation proccess.
111
- #
112
- # This method will be called right ater previous section erase and in parallel with
113
- # new data fetching so you can use it to initiate preloader.
114
- #
115
- # @note Given method will be called with `complete` function as parameter. As soon as your
116
- # preparations are done you should call that function.
117
- #
118
- # @example Sample before painter
119
- # @beforePaint (complete) ->
120
- # @$preloader.slideDown -> complete()
121
- #
122
- #
123
- 'beforePaint',
124
-
125
- #
126
- # @method .paint(callback)
127
- #
128
- # Sets the method which will controll the painting proccess.
129
- #
130
- # This method will be called after fetching, erasing and beforePaint is complete.
131
- # It should be used to setup appearance effects of page.
132
- #
133
- # @note Given method will be called with `complete` function as parameter. As soon as your
134
- # preparations are done you should call that function.
135
- #
136
- # @example Sample painter
137
- # @paint (complete) ->
138
- # @$container.fadeIn -> complete()
139
- #
140
- 'paint',
141
-
142
- #
143
- # @method .erase(callback)
144
- #
145
- # Sets the method which will controll the erasing proccess.
146
- #
147
- # Use this method to setup hiding effect.
148
- #
149
- # @note Given method will be called with `complete` function as parameter. As soon as your
150
- # preparations are done you should call that function.
151
- #
152
- # @note This method will be caled _before_ unload routines so in theory you can
153
- # access page data from that. Think twice if you are doing it right though.
154
- #
155
- # @example Sample eraser
156
- # @erase (complete) ->
157
- # @$container.fadeOut -> complete()
158
- #
159
- 'erase',
160
-
161
- #
162
- # @method .fetch(callback)
163
- #
164
- # Sets the method which will controll the data fetching proccess.
165
- #
166
- # @note Given method will be called with `complete` function as parameter. As soon as your
167
- # preparations are done you should call that function.
168
- #
169
- # @example Basic usage
170
- # @fetch (complete) ->
171
- # $.get '/rumbas', (@data) => complete()
172
- #
173
- 'fetch'
142
+ @registerPlainFilters 'beforeLoad', 'afterLoad', 'afterUnload'
143
+
144
+ @registerSequencedFilters 'beforePaint', 'paint', 'erase', 'fetch'
174
145
 
175
146
  #
176
147
  # @param [Hash] params Arbitrary parameters
@@ -253,10 +224,10 @@ class Joosy.Widget extends Joosy.Module
253
224
  #
254
225
  # @example
255
226
  # nestingMap =
256
- # '#page':
227
+ # '.page':
257
228
  # instance: page
258
229
  # nested:
259
- # '#widget1': {instance: widget1}
230
+ # '.widget1': {instance: widget1}
260
231
  #
261
232
  # layout.__bootstrap nestingMap, Joosy.Application.content()
262
233
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: joosy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.alpha.54
4
+ version: 1.2.0.alpha.55
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boris Staal
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-08-06 00:00:00.000000000 Z
13
+ date: 2013-08-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: sprockets
@@ -46,6 +46,7 @@ executables: []
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
+ - .codoopts
49
50
  - .gitignore
50
51
  - .travis.yml
51
52
  - Gemfile
@@ -57,7 +58,6 @@ files:
57
58
  - build/joosy/extensions/preloaders.js
58
59
  - build/joosy/extensions/resources-form.js
59
60
  - build/joosy/extensions/resources.js
60
- - dummy
61
61
  - generators/base.coffee
62
62
  - generators/command/command.coffee
63
63
  - generators/command/help.coffee
data/dummy DELETED
@@ -1,2 +0,0 @@
1
- [General]
2
- cookies=@Variant(\0\0\0\x7f\0\0\0\x16QList<QNetworkCookie>\0\0\0\0\x1\0\0\0\0)