paloma 4.2.1 → 5.0.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.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/app/views/paloma/_hook.html.erb +13 -13
  3. data/vendor/assets/javascripts/paloma/base_controller.js +8 -0
  4. data/vendor/assets/javascripts/paloma/before_callback_performer.js +69 -0
  5. data/vendor/assets/javascripts/paloma/controller_builder.js +36 -0
  6. data/vendor/assets/javascripts/paloma/controller_class_factory.js +61 -0
  7. data/vendor/assets/javascripts/paloma/engine.js +59 -53
  8. data/vendor/assets/javascripts/paloma/index.js +5 -4
  9. data/vendor/assets/javascripts/paloma/init.js +5 -10
  10. data/vendor/assets/javascripts/paloma/paloma.js +20 -21
  11. metadata +7 -82
  12. data/.gitignore +0 -5
  13. data/Changelog.md +0 -42
  14. data/DEVELOPMENT.md +0 -15
  15. data/Gemfile +0 -2
  16. data/License +0 -22
  17. data/README.md +0 -353
  18. data/TODO.md +0 -1
  19. data/paloma.gemspec +0 -22
  20. data/test_app/.gitignore +0 -15
  21. data/test_app/.rspec +0 -1
  22. data/test_app/Gemfile +0 -5
  23. data/test_app/README.rdoc +0 -261
  24. data/test_app/Rakefile +0 -11
  25. data/test_app/app/assets/images/rails.png +0 -0
  26. data/test_app/app/assets/javascripts/admin/bar.js +0 -2
  27. data/test_app/app/assets/javascripts/application.js +0 -68
  28. data/test_app/app/assets/stylesheets/admin/bar.css +0 -4
  29. data/test_app/app/assets/stylesheets/application.css +0 -13
  30. data/test_app/app/assets/stylesheets/foo.css +0 -4
  31. data/test_app/app/assets/stylesheets/main.css +0 -4
  32. data/test_app/app/assets/stylesheets/multiple_names.css +0 -4
  33. data/test_app/app/controllers/admin/foos_controller.rb +0 -29
  34. data/test_app/app/controllers/application_controller.rb +0 -3
  35. data/test_app/app/controllers/main_controller.rb +0 -111
  36. data/test_app/app/helpers/admin/bar_helper.rb +0 -2
  37. data/test_app/app/helpers/application_helper.rb +0 -2
  38. data/test_app/app/helpers/foo_helper.rb +0 -2
  39. data/test_app/app/helpers/main_helper.rb +0 -2
  40. data/test_app/app/helpers/multiple_names_helper.rb +0 -2
  41. data/test_app/app/mailers/.gitkeep +0 -0
  42. data/test_app/app/models/.gitkeep +0 -0
  43. data/test_app/app/views/layouts/application.html.erb +0 -40
  44. data/test_app/app/views/main/ajax.html.erb +0 -2
  45. data/test_app/config.ru +0 -4
  46. data/test_app/config/application.rb +0 -69
  47. data/test_app/config/boot.rb +0 -6
  48. data/test_app/config/environment.rb +0 -5
  49. data/test_app/config/environments/development.rb +0 -37
  50. data/test_app/config/environments/production.rb +0 -67
  51. data/test_app/config/environments/test.rb +0 -37
  52. data/test_app/config/initializers/backtrace_silencers.rb +0 -7
  53. data/test_app/config/initializers/inflections.rb +0 -15
  54. data/test_app/config/initializers/mime_types.rb +0 -5
  55. data/test_app/config/initializers/secret_token.rb +0 -7
  56. data/test_app/config/initializers/session_store.rb +0 -8
  57. data/test_app/config/initializers/wrap_parameters.rb +0 -14
  58. data/test_app/config/locales/en.yml +0 -5
  59. data/test_app/config/routes.rb +0 -28
  60. data/test_app/db/seeds.rb +0 -7
  61. data/test_app/doc/README_FOR_APP +0 -2
  62. data/test_app/lib/assets/.gitkeep +0 -0
  63. data/test_app/lib/tasks/.gitkeep +0 -0
  64. data/test_app/log/.gitkeep +0 -0
  65. data/test_app/public/404.html +0 -26
  66. data/test_app/public/422.html +0 -26
  67. data/test_app/public/500.html +0 -25
  68. data/test_app/public/favicon.ico +0 -0
  69. data/test_app/public/robots.txt +0 -5
  70. data/test_app/script/rails +0 -6
  71. data/test_app/spec/integration/advanced_spec.rb +0 -64
  72. data/test_app/spec/integration/basic_spec.rb +0 -195
  73. data/test_app/spec/javascripts/controller_factory_spec.js +0 -48
  74. data/test_app/spec/javascripts/router_spec.js +0 -52
  75. data/test_app/spec/javascripts/support/jasmine.yml +0 -20
  76. data/test_app/spec/spec_helper.rb +0 -37
  77. data/test_app/spec/units/controller_spec.rb +0 -109
  78. data/test_app/spec/units/utilities_spec.rb +0 -114
  79. data/test_app/test/fixtures/.gitkeep +0 -0
  80. data/test_app/test/functional/.gitkeep +0 -0
  81. data/test_app/test/integration/.gitkeep +0 -0
  82. data/test_app/test/performance/browsing_test.rb +0 -12
  83. data/test_app/test/test_helper.rb +0 -13
  84. data/test_app/test/unit/.gitkeep +0 -0
  85. data/test_app/vendor/assets/javascripts/.gitkeep +0 -0
  86. data/test_app/vendor/assets/stylesheets/.gitkeep +0 -0
  87. data/test_app/vendor/plugins/.gitkeep +0 -0
  88. data/vendor/assets/javascripts/paloma/controller.js +0 -10
  89. data/vendor/assets/javascripts/paloma/controller_factory.js +0 -55
  90. data/vendor/assets/javascripts/paloma/router.js +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c6d90c6346ffaca96320b8924a984d7b4a09d26b
4
- data.tar.gz: d77644a771b84cfbb6e55ded22be99a7a930ac90
3
+ metadata.gz: 030655d51aa8f111a17d0002899ce798cd19f60f
4
+ data.tar.gz: ba5c00042e5c9e23a5411cb2c771b21d9508e6e7
5
5
  SHA512:
6
- metadata.gz: ebc6f8eafd2f25d3983ee8c253be793da6e2736deebe61fa887a28e9d71250b677f00d74d571f51bed4ddd9af72ebe1aad9c4d4fa97071c0a6572569ff7d5a22
7
- data.tar.gz: 67753deb514e0615089d462cf86130ea85c29b1b23074b3940f7a165d7b3ba38395dc048702c1ebbad7b1cb72305cd800efdbb9579ee0144cd34bb952d202056
6
+ metadata.gz: 3c2beb6388cc40242d18e9f582ec1c66d075968f76e82f333d7bffa66147a18783b678ee3d6b09820a952de08f78576f9b414ee730dcc1a7335013f97e7b602a
7
+ data.tar.gz: ad007e54ebcc05bf241701bb1be0fe356d03bd947923ff10b92561d8cb00b786e4e5306677eaaa186dac88aa1f74fa2f123a3ea0ca2cf2fd4ccbe6d921bdc595
@@ -1,25 +1,25 @@
1
1
  <% id = "#{Time.now.to_i}#{(rand * 1000).ceil}" %>
2
2
 
3
- <div class="js-paloma-hook" data-id="<%= id %>">
3
+ <div class="js-paloma-hook" data-palomaid="<%= id %>">
4
4
  <script type="text/javascript">
5
5
  (function(){
6
- // Do not continue if Paloma not found.
7
- if (window['Paloma'] === undefined) {
8
- return true;
9
- }
10
6
 
7
+ if ( !window['Paloma'] ) return true;
11
8
  Paloma.env = '<%= Rails.env %>';
12
9
 
13
- // Remove any callback details if any
14
- $('.js-paloma-hook[data-id!=' + <%= id %> + ']').remove();
15
-
16
- var request = <%= request.to_json.html_safe %>;
10
+ var id = "<%= id %>",
11
+ request = <%= request.to_json.html_safe %>;
17
12
 
18
13
  Paloma.engine.setRequest({
19
- id: "<%= id %>",
20
- resource: request['resource'],
21
- action: request['action'],
22
- params: request['params']});
14
+ id: id,
15
+ resource: request.resource,
16
+ action: request.action,
17
+ params: request.params
18
+ });
19
+
20
+ var self = document.querySelector("[data-palomaid='" + id + "']");
21
+ if (self) self.parentNode.removeChild(self);
22
+
23
23
  })();
24
24
  </script>
25
25
  </div>
@@ -0,0 +1,8 @@
1
+ Paloma.BaseController = function(params){
2
+ this.params = params;
3
+ };
4
+
5
+ Paloma.BaseController.prototype = {
6
+ before: []
7
+ };
8
+
@@ -0,0 +1,69 @@
1
+ Paloma.BeforeCallbackPerformer = function(controller){
2
+ this.controller = controller;
3
+ this.entries = controller.before;
4
+ this.action = null;
5
+ };
6
+
7
+ Paloma.BeforeCallbackPerformer.prototype = {
8
+
9
+ perform: function(action){
10
+ this.action = action;
11
+ this._executeCallbacks();
12
+ },
13
+
14
+ _executeCallbacks: function(){
15
+ for (var i = 0, n = this._callbacks().length; i < n; i++)
16
+ this._executeCallback( this._callbacks()[i] );
17
+ },
18
+
19
+ _executeCallback: function(name){
20
+ var callback = this.controller[name];
21
+ if (callback) callback.call(this.controller);
22
+ },
23
+
24
+ _callbacks: function(){
25
+ if (this._callbackList) return this._callbackList;
26
+
27
+ this._callbackList = [];
28
+
29
+ for (var i = 0, n = this.entries.length; i < n; i++){
30
+ var entry = this.entries[i];
31
+
32
+ this._callbackList =
33
+ this._callbackList.concat( this._getCallbacksIfForAction(entry) );
34
+ }
35
+
36
+ return this._callbackList;
37
+ },
38
+
39
+ _getCallbacksIfForAction: function(entry){
40
+ var parsedEntry = this._parseEntry(entry);
41
+
42
+ if (
43
+ this._actionIsOn(parsedEntry.actions) ||
44
+ this._allIsOn(parsedEntry.actions)
45
+ )
46
+ return parsedEntry.callbacks;
47
+
48
+ return [];
49
+ },
50
+
51
+ _actionIsOn: function(actions){
52
+ return actions.indexOf(this.action) != -1;
53
+ },
54
+
55
+ _allIsOn: function(actions){
56
+ return actions.indexOf('all') != -1;
57
+ },
58
+
59
+ _parseEntry: function(entry){
60
+ var parts = entry.split('->'),
61
+ data = {actions: [], callbacks: []};
62
+
63
+ if (parts[0]) data.actions = parts[0].trim().split(' ');
64
+ if (parts[1]) data.callbacks = parts[1].trim().split(' ');
65
+
66
+ return data;
67
+ }
68
+
69
+ };
@@ -0,0 +1,36 @@
1
+ Paloma.ControllerBuilder = function(classFactory){
2
+ this.classFactory = classFactory;
3
+ this.options = {};
4
+ };
5
+
6
+ Paloma.ControllerBuilder.prototype = {
7
+
8
+ build: function(options){
9
+ this.options = options;
10
+
11
+ var ControllerClass = this._controllerClass();
12
+ if ( !ControllerClass ) return null;
13
+
14
+ var controller = new ControllerClass( this._buildParams() );
15
+
16
+ controller.controller = this.options.controller;
17
+ controller.action = this.options.action;
18
+
19
+ return controller;
20
+ },
21
+
22
+ _controllerClass: function(){
23
+ return this.classFactory.get( this.options.controller );
24
+ },
25
+
26
+ _buildParams: function(){
27
+ var params = {};
28
+
29
+ for (var k in this.options.params)
30
+ if (this.options.params.hasOwnProperty(k))
31
+ params[k] = this.options.params[k];
32
+
33
+ return params;
34
+ }
35
+
36
+ };
@@ -0,0 +1,61 @@
1
+ Paloma.ControllerClassFactory = function(){
2
+ this._controllers = {};
3
+ this._inheritanceSymbol = '<';
4
+ };
5
+
6
+ Paloma.ControllerClassFactory.prototype = {
7
+
8
+ make: function(controllerAndParent, prototype){
9
+ var parts = this._extractParts(controllerAndParent),
10
+ controller = this._getOrCreate( parts.controller );
11
+
12
+ this._updatePrototype(controller, prototype);
13
+ this._updateParent(controller, parts.parent);
14
+
15
+ return controller;
16
+ },
17
+
18
+ get: function(name){
19
+ return this._controllers[name] || null;
20
+ },
21
+
22
+ _updateParent: function(controller, parent){
23
+ if (!parent) return;
24
+
25
+ var parentClass = this.get(parent);
26
+ if (parentClass) controller.prototype.__proto__ = parentClass.prototype;
27
+ },
28
+
29
+ _updatePrototype: function(controller, newPrototype){
30
+ for (var k in newPrototype)
31
+ if (newPrototype.hasOwnProperty(k))
32
+ controller.prototype[k] = newPrototype[k];
33
+ },
34
+
35
+ _getOrCreate: function(name){
36
+ return this.get(name) || this._create(name);
37
+ },
38
+
39
+ _create: function(name){
40
+ var controller = function(params){
41
+ Paloma.BaseController.call(this, params);
42
+ };
43
+
44
+ controller.prototype.__proto__ = Paloma.BaseController.prototype;
45
+
46
+ this._controllers[name] = controller;
47
+ return controller;
48
+ },
49
+
50
+ _extractParts: function(controllerAndParent){
51
+ var parts = controllerAndParent.split( this._inheritanceSymbol );
52
+
53
+ var controller = parts[0].trim(),
54
+ parent = parts[1];
55
+
56
+ if (parent) parent = parent.trim();
57
+
58
+ return {controller: controller, parent: parent};
59
+ }
60
+
61
+ };
@@ -1,71 +1,77 @@
1
- (function(Paloma){
1
+ Paloma.Engine = function(controllerBuilder){
2
+ this.controllerBuilder = controllerBuilder;
3
+ this._clearRequest();
4
+ };
2
5
 
3
- var Engine = function(config){
4
- this.factory = config.factory;
5
- this._request = null;
6
- };
6
+ Paloma.Engine.prototype = {
7
7
 
8
- Engine.prototype.start = function(){
9
- // Do not execute if there is no request available.
10
- if ( !this._request ) return;
8
+ setRequest: function(options){
9
+ this._request = {
10
+ id: options.id,
11
+ controller: options.resource,
12
+ action: options.action,
13
+ params: options.params,
14
+ executed: false
15
+ };
16
+ },
11
17
 
12
- // Do not execute if already executed.
13
- //
14
- // This happens when using turbolinks,
15
- // if a page using js(false) is rendered
16
- // after a page with executed js, then the
17
- // previous js will be executed again.
18
- if ( this._request.executed ) return;
18
+ hasRequest: function(){
19
+ return this._request != null;
20
+ },
19
21
 
20
- var resource = this._request['controller'],
21
- Controller = this.factory.get(resource);
22
+ lastRequest: function(){
23
+ return this._lastRequest = this._lastRequest || {executed: false};
24
+ },
22
25
 
23
- if (!Controller){
24
- return Paloma.warn('Paloma: undefined controller -> ' + resource);
25
- }
26
+ start: function(){
27
+ if ( this._shouldStop() ) return;
26
28
 
27
- var controller = new Controller( this._request['params'] ),
28
- action = this._request['action'],
29
- params = this._request['params'];
29
+ this._logRequest();
30
+ this._lastRequest = this._request;
30
31
 
31
- if (!controller[action]){
32
- return Paloma.warn('Paloma: undefined action <' + action +
33
- '> for <' + resource + '> controller');
34
- }
32
+ this._executeControllerAction();
33
+ this._clearRequest();
34
+ },
35
35
 
36
+ _executeControllerAction: function(){
37
+ var controller = this._buildController();
38
+ if (!controller) return;
36
39
 
37
- Paloma.log('Paloma: Execute ' + resource + '#' + action + ' with');
38
- Paloma.log(params);
40
+ var callbackPerformer = new Paloma.BeforeCallbackPerformer(controller);
41
+ callbackPerformer.perform( this._request.action );
39
42
 
40
- controller[ this._request['action'] ]();
43
+ var method = controller[ this._request.action ];
44
+ if (method) method.call(controller);
41
45
 
42
- this._request.executed = true;
43
- };
46
+ this._lastRequest.executed = true;
47
+ },
44
48
 
49
+ _buildController: function(){
50
+ return this.controllerBuilder.build({
51
+ controller: this._request.controller,
52
+ action: this._request.action,
53
+ params: this._request.params
54
+ });
55
+ },
45
56
 
46
- //
47
- // options:
48
- // resource
49
- // action
50
- // params
51
- // id
52
- //
53
- Engine.prototype.setRequest = function(options){
54
- this._request = {
55
- id: options.id,
56
- controller: options.resource,
57
- action: options.action,
58
- params: options.params,
59
- executed: false
60
- };
61
- };
57
+ _shouldStop: function(){
58
+ if ( !this.hasRequest() ) return true;
59
+ if ( this._request.id == this.lastRequest().id ) return true;
62
60
 
61
+ return false;
62
+ },
63
63
 
64
- Engine.prototype.getRequest = function(key){
65
- return (!key ? this._request : this._request[key]);
66
- };
64
+ _logRequest: function(){
65
+ Paloma.log(
66
+ 'Paloma: ' + this._request.controller + '#' +
67
+ this._request.action + ' with params:'
68
+ );
67
69
 
70
+ Paloma.log( this._request.params );
71
+ },
68
72
 
69
- Paloma.Engine = Engine;
73
+ _clearRequest: function(){
74
+ this._request = null;
75
+ }
70
76
 
71
- })(window.Paloma);
77
+ };
@@ -1,6 +1,7 @@
1
1
  //= require ./init.js
2
- //= require ./router.js
3
- //= require ./controller.js
4
- //= require ./controller_factory.js
2
+ //= require ./base_controller.js
3
+ //= require ./controller_class_factory.js
4
+ //= require ./before_callback_performer.js
5
+ //= require ./controller_builder.js
5
6
  //= require ./engine.js
6
- //= require ./paloma.js
7
+ //= require ./paloma.js
@@ -18,14 +18,9 @@ else {
18
18
  };
19
19
  }
20
20
 
21
- $(document).ready(function(){
22
- // Do not continue if Paloma not found.
23
- if (window['Paloma'] === undefined) {
24
- if (window['console'] !== undefined) {
25
- console.warn("Paloma not found. Require it in your application.js.");
26
- }
27
- return true;
28
- }
29
21
 
30
- Paloma.engine.start();
31
- });
22
+ if ( !window['Paloma'] ){
23
+ if ( !window['console'] ){
24
+ console.warn("Paloma not found. Require it in your application.js.");
25
+ }
26
+ }
@@ -1,30 +1,29 @@
1
1
  (function(Paloma){
2
2
 
3
- Paloma._router = new Paloma.Router('/');
4
- Paloma._controllerFactory = new Paloma.ControllerFactory(Paloma._router);
5
-
6
- //
7
- // Declare Paloma controllers using this method.
8
- // Will return a new constructor if the no controller with the passed name
9
- // is found, else it will just return the current constructor.
10
- //
11
- Paloma.controller = function(name){
12
- return Paloma._controllerFactory.get(name) ||
13
- Paloma._controllerFactory.make(name);
14
- };
15
-
16
-
17
- Paloma.engine = new Paloma.Engine({factory: Paloma._controllerFactory});
3
+ var classFactory = new Paloma.ControllerClassFactory(),
4
+ controllerBuilder = new Paloma.ControllerBuilder(classFactory),
5
+ engine = new Paloma.Engine(controllerBuilder)
18
6
 
7
+ Paloma._controllerClassFactory = classFactory;
8
+ Paloma._controllerBuilder = controllerBuilder
9
+ Paloma.engine = engine;
19
10
 
20
- Paloma.executeHook = function(){
21
- var $hook = $('.js-paloma-hook:first script:first');
11
+ Paloma.controller = function(name, prototype){
12
+ return classFactory.make(name, prototype);
13
+ };
22
14
 
23
- if ($hook.length == 0){ return; }
15
+ Paloma._executeHook = function(){
16
+ var hook = document.querySelector('.js-paloma-hook script');
17
+ if (hook) eval(hook.innerHTML);
18
+ };
24
19
 
25
- var hook = $hook.html();
26
- eval(hook);
20
+ Paloma.start = function(){
21
+ if ( !engine.hasRequest() ) this._executeHook();
22
+ if ( engine.hasRequest() ) engine.start();
27
23
  };
28
24
 
25
+ Paloma.isExecuted = function(){
26
+ return engine.lastRequest().executed;
27
+ };
29
28
 
30
- })(window.Paloma);
29
+ })(window.Paloma);
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paloma
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.1
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karl Paragua
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-01 00:00:00.000000000 Z
11
+ date: 2016-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jquery-rails
@@ -17,7 +17,7 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
- type: :runtime
20
+ type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
@@ -142,95 +142,20 @@ executables: []
142
142
  extensions: []
143
143
  extra_rdoc_files: []
144
144
  files:
145
- - ".gitignore"
146
- - Changelog.md
147
- - DEVELOPMENT.md
148
- - Gemfile
149
- - License
150
- - README.md
151
- - TODO.md
152
145
  - app/views/paloma/_hook.html.erb
153
146
  - lib/paloma.rb
154
147
  - lib/paloma/action_controller_extension.rb
155
148
  - lib/paloma/controller.rb
156
149
  - lib/paloma/rails/engine.rb
157
150
  - lib/paloma/utilities.rb
158
- - paloma.gemspec
159
- - test_app/.gitignore
160
- - test_app/.rspec
161
- - test_app/Gemfile
162
- - test_app/README.rdoc
163
- - test_app/Rakefile
164
- - test_app/app/assets/images/rails.png
165
- - test_app/app/assets/javascripts/admin/bar.js
166
- - test_app/app/assets/javascripts/application.js
167
- - test_app/app/assets/stylesheets/admin/bar.css
168
- - test_app/app/assets/stylesheets/application.css
169
- - test_app/app/assets/stylesheets/foo.css
170
- - test_app/app/assets/stylesheets/main.css
171
- - test_app/app/assets/stylesheets/multiple_names.css
172
- - test_app/app/controllers/admin/foos_controller.rb
173
- - test_app/app/controllers/application_controller.rb
174
- - test_app/app/controllers/main_controller.rb
175
- - test_app/app/helpers/admin/bar_helper.rb
176
- - test_app/app/helpers/application_helper.rb
177
- - test_app/app/helpers/foo_helper.rb
178
- - test_app/app/helpers/main_helper.rb
179
- - test_app/app/helpers/multiple_names_helper.rb
180
- - test_app/app/mailers/.gitkeep
181
- - test_app/app/models/.gitkeep
182
- - test_app/app/views/layouts/application.html.erb
183
- - test_app/app/views/main/ajax.html.erb
184
- - test_app/config.ru
185
- - test_app/config/application.rb
186
- - test_app/config/boot.rb
187
- - test_app/config/environment.rb
188
- - test_app/config/environments/development.rb
189
- - test_app/config/environments/production.rb
190
- - test_app/config/environments/test.rb
191
- - test_app/config/initializers/backtrace_silencers.rb
192
- - test_app/config/initializers/inflections.rb
193
- - test_app/config/initializers/mime_types.rb
194
- - test_app/config/initializers/secret_token.rb
195
- - test_app/config/initializers/session_store.rb
196
- - test_app/config/initializers/wrap_parameters.rb
197
- - test_app/config/locales/en.yml
198
- - test_app/config/routes.rb
199
- - test_app/db/seeds.rb
200
- - test_app/doc/README_FOR_APP
201
- - test_app/lib/assets/.gitkeep
202
- - test_app/lib/tasks/.gitkeep
203
- - test_app/log/.gitkeep
204
- - test_app/public/404.html
205
- - test_app/public/422.html
206
- - test_app/public/500.html
207
- - test_app/public/favicon.ico
208
- - test_app/public/robots.txt
209
- - test_app/script/rails
210
- - test_app/spec/integration/advanced_spec.rb
211
- - test_app/spec/integration/basic_spec.rb
212
- - test_app/spec/javascripts/controller_factory_spec.js
213
- - test_app/spec/javascripts/router_spec.js
214
- - test_app/spec/javascripts/support/jasmine.yml
215
- - test_app/spec/spec_helper.rb
216
- - test_app/spec/units/controller_spec.rb
217
- - test_app/spec/units/utilities_spec.rb
218
- - test_app/test/fixtures/.gitkeep
219
- - test_app/test/functional/.gitkeep
220
- - test_app/test/integration/.gitkeep
221
- - test_app/test/performance/browsing_test.rb
222
- - test_app/test/test_helper.rb
223
- - test_app/test/unit/.gitkeep
224
- - test_app/vendor/assets/javascripts/.gitkeep
225
- - test_app/vendor/assets/stylesheets/.gitkeep
226
- - test_app/vendor/plugins/.gitkeep
227
- - vendor/assets/javascripts/paloma/controller.js
228
- - vendor/assets/javascripts/paloma/controller_factory.js
151
+ - vendor/assets/javascripts/paloma/base_controller.js
152
+ - vendor/assets/javascripts/paloma/before_callback_performer.js
153
+ - vendor/assets/javascripts/paloma/controller_builder.js
154
+ - vendor/assets/javascripts/paloma/controller_class_factory.js
229
155
  - vendor/assets/javascripts/paloma/engine.js
230
156
  - vendor/assets/javascripts/paloma/index.js
231
157
  - vendor/assets/javascripts/paloma/init.js
232
158
  - vendor/assets/javascripts/paloma/paloma.js
233
- - vendor/assets/javascripts/paloma/router.js
234
159
  homepage: https://github.com/kbparagua/paloma
235
160
  licenses:
236
161
  - MIT