paloma 2.0.6 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (132) hide show
  1. data/Changelog.md +3 -75
  2. data/README.md +89 -376
  3. data/TODO.md +1 -13
  4. data/app/views/paloma/_hook.html.erb +31 -0
  5. data/lib/paloma.rb +1 -25
  6. data/lib/paloma/action_controller_extension.rb +72 -38
  7. data/paloma.gemspec +7 -7
  8. data/{spec/test_app → test_app}/.gitignore +0 -0
  9. data/{spec/test_app → test_app}/.rspec +0 -0
  10. data/{spec/test_app → test_app}/Gemfile +1 -2
  11. data/{spec/test_app → test_app}/README.rdoc +0 -0
  12. data/{spec/test_app → test_app}/Rakefile +2 -7
  13. data/test_app/app/assets/images/rails.png +0 -0
  14. data/test_app/app/assets/javascripts/admin/bar.js +2 -0
  15. data/test_app/app/assets/javascripts/application.js +83 -0
  16. data/test_app/app/assets/javascripts/foo.js +2 -0
  17. data/test_app/app/assets/javascripts/main.js +2 -0
  18. data/test_app/app/assets/stylesheets/admin/bar.css +4 -0
  19. data/test_app/app/assets/stylesheets/application.css +13 -0
  20. data/test_app/app/assets/stylesheets/foo.css +4 -0
  21. data/test_app/app/assets/stylesheets/main.css +4 -0
  22. data/test_app/app/controllers/admin/bar_controller.rb +7 -0
  23. data/{spec/test_app → test_app}/app/controllers/application_controller.rb +0 -0
  24. data/test_app/app/controllers/foo_controller.rb +19 -0
  25. data/test_app/app/controllers/main_controller.rb +7 -0
  26. data/test_app/app/helpers/admin/bar_helper.rb +2 -0
  27. data/test_app/app/helpers/application_helper.rb +2 -0
  28. data/test_app/app/helpers/foo_helper.rb +2 -0
  29. data/test_app/app/helpers/main_helper.rb +2 -0
  30. data/{spec/test_app/log → test_app/app/mailers}/.gitkeep +0 -0
  31. data/{spec/test_app/public/favicon.ico → test_app/app/models/.gitkeep} +0 -0
  32. data/test_app/app/views/layouts/application.html.erb +14 -0
  33. data/{spec/test_app → test_app}/config.ru +0 -0
  34. data/{spec/test_app → test_app}/config/application.rb +2 -7
  35. data/{spec/test_app → test_app}/config/boot.rb +0 -0
  36. data/{spec/test_app → test_app}/config/environment.rb +0 -0
  37. data/{spec/test_app → test_app}/config/environments/development.rb +6 -0
  38. data/{spec/test_app → test_app}/config/environments/production.rb +3 -0
  39. data/{spec/test_app → test_app}/config/environments/test.rb +2 -0
  40. data/{spec/test_app → test_app}/config/initializers/backtrace_silencers.rb +0 -0
  41. data/{spec/test_app → test_app}/config/initializers/inflections.rb +0 -0
  42. data/{spec/test_app → test_app}/config/initializers/mime_types.rb +0 -0
  43. data/{spec/test_app → test_app}/config/initializers/secret_token.rb +1 -1
  44. data/{spec/test_app → test_app}/config/initializers/session_store.rb +0 -0
  45. data/{spec/test_app → test_app}/config/initializers/wrap_parameters.rb +4 -0
  46. data/{spec/test_app → test_app}/config/locales/en.yml +0 -0
  47. data/test_app/config/routes.rb +14 -0
  48. data/test_app/db/seeds.rb +7 -0
  49. data/test_app/doc/README_FOR_APP +2 -0
  50. data/test_app/lib/assets/.gitkeep +0 -0
  51. data/test_app/lib/tasks/.gitkeep +0 -0
  52. data/test_app/log/.gitkeep +0 -0
  53. data/{spec/test_app → test_app}/public/404.html +0 -0
  54. data/{spec/test_app → test_app}/public/422.html +0 -0
  55. data/{spec/test_app → test_app}/public/500.html +0 -0
  56. data/test_app/public/favicon.ico +0 -0
  57. data/{spec/test_app → test_app}/public/robots.txt +0 -0
  58. data/{spec/test_app → test_app}/script/rails +0 -0
  59. data/test_app/spec/integration/main_spec.rb +61 -0
  60. data/test_app/spec/javascripts/controller_builder_spec.js +48 -0
  61. data/test_app/spec/javascripts/router_spec.js +121 -0
  62. data/test_app/spec/javascripts/support/jasmine.yml +20 -0
  63. data/{spec/test_app → test_app}/spec/spec_helper.rb +11 -5
  64. data/test_app/test/fixtures/.gitkeep +0 -0
  65. data/test_app/test/functional/.gitkeep +0 -0
  66. data/test_app/test/integration/.gitkeep +0 -0
  67. data/test_app/test/performance/browsing_test.rb +12 -0
  68. data/test_app/test/test_helper.rb +13 -0
  69. data/test_app/test/unit/.gitkeep +0 -0
  70. data/test_app/vendor/assets/javascripts/.gitkeep +0 -0
  71. data/test_app/vendor/assets/stylesheets/.gitkeep +0 -0
  72. data/test_app/vendor/plugins/.gitkeep +0 -0
  73. data/vendor/assets/javascripts/paloma/controller.js +10 -0
  74. data/vendor/assets/javascripts/paloma/controller_builder.js +55 -0
  75. data/vendor/assets/javascripts/paloma/engine.js +61 -0
  76. data/vendor/assets/javascripts/paloma/index.js +6 -0
  77. data/vendor/assets/javascripts/paloma/init.js +1 -0
  78. data/vendor/assets/javascripts/paloma/paloma.js +17 -0
  79. data/vendor/assets/javascripts/paloma/router.js +64 -0
  80. metadata +86 -94
  81. data/app/templates/_filters.js +0 -14
  82. data/app/templates/application/_locals.js +0 -13
  83. data/app/templates/controller/_locals.js +0 -19
  84. data/app/templates/controller/_manifest.js +0 -3
  85. data/app/templates/controller/action.js +0 -23
  86. data/app/templates/index.js +0 -3
  87. data/app/templates/namespace/_locals.js +0 -16
  88. data/app/templates/namespace/_manifest.js +0 -3
  89. data/app/views/paloma/_callback_hook.html.erb +0 -40
  90. data/lib/paloma/action_controller_filters.rb +0 -68
  91. data/lib/paloma/generators/add_generator.rb +0 -136
  92. data/lib/paloma/generators/setup_generator.rb +0 -38
  93. data/lib/paloma/rails/controller_generator.rb +0 -11
  94. data/spec/test_app/app/assets/javascripts/application.js +0 -16
  95. data/spec/test_app/app/assets/javascripts/paloma/_filters.js +0 -130
  96. data/spec/test_app/app/assets/javascripts/paloma/_locals.js +0 -17
  97. data/spec/test_app/app/assets/javascripts/paloma/bar/_filters.js +0 -96
  98. data/spec/test_app/app/assets/javascripts/paloma/bar/_locals.js +0 -1
  99. data/spec/test_app/app/assets/javascripts/paloma/bar/_manifest.js +0 -3
  100. data/spec/test_app/app/assets/javascripts/paloma/bar/another_basic_action.js +0 -5
  101. data/spec/test_app/app/assets/javascripts/paloma/bar/basic_action.js +0 -5
  102. data/spec/test_app/app/assets/javascripts/paloma/bar/different_params.js +0 -4
  103. data/spec/test_app/app/assets/javascripts/paloma/bar/yet_another_basic_action.js +0 -5
  104. data/spec/test_app/app/assets/javascripts/paloma/foo/_filters.js +0 -24
  105. data/spec/test_app/app/assets/javascripts/paloma/foo/_locals.js +0 -21
  106. data/spec/test_app/app/assets/javascripts/paloma/foo/_manifest.js +0 -3
  107. data/spec/test_app/app/assets/javascripts/paloma/foo/basic_action.js +0 -21
  108. data/spec/test_app/app/assets/javascripts/paloma/foo/skip_callback.js +0 -6
  109. data/spec/test_app/app/assets/javascripts/paloma/index.js +0 -6
  110. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/_filters.js +0 -83
  111. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/_manifest.js +0 -2
  112. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_filters.js +0 -84
  113. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_locals.js +0 -1
  114. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_manifest.js +0 -2
  115. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/another_basic_action.js +0 -5
  116. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/basic_action.js +0 -5
  117. data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/yet_another_basic_action.js +0 -5
  118. data/spec/test_app/app/controllers/bar_controller.rb +0 -28
  119. data/spec/test_app/app/controllers/foo_controller.rb +0 -25
  120. data/spec/test_app/app/controllers/sample_namespace/baz_controller.rb +0 -23
  121. data/spec/test_app/app/views/layouts/application.html.erb +0 -12
  122. data/spec/test_app/config/routes.rb +0 -33
  123. data/spec/test_app/spec/generator_helper.rb +0 -87
  124. data/spec/test_app/spec/generators/paloma_generator_spec.rb +0 -199
  125. data/spec/test_app/spec/generators/rails_generator_spec.rb +0 -54
  126. data/spec/test_app/spec/javascripts/callback_spec.rb +0 -64
  127. data/spec/test_app/spec/javascripts/filters_spec.rb +0 -187
  128. data/spec/test_app/spec/javascripts/locals_spec.rb +0 -27
  129. data/spec/test_app/spec/javascripts/params_spec.rb +0 -116
  130. data/spec/test_app/spec/javascripts/skip_filters_spec.rb +0 -58
  131. data/spec/test_app/spec/javascripts/variable_container_spec.rb +0 -21
  132. data/vendor/assets/javascripts/paloma_core.js +0 -296
@@ -1,17 +0,0 @@
1
- (function(){
2
- Paloma.locals['/'] = {};
3
- locals = Paloma.locals['/'];
4
-
5
- // Locals starts here
6
- locals.applicationHelperMethod = function(){
7
- return "I'm from application locals!"
8
- };
9
-
10
-
11
- locals.toBeOverriden = function(){
12
- return "Override me!"
13
- };
14
-
15
-
16
- // Locals ends here
17
- })();
@@ -1,96 +0,0 @@
1
- // For testing only
2
- window.filtersExecuted = window.filtersExecuted || {before : [], after : []};
3
-
4
-
5
- (function(){
6
- var filter = new Paloma.FilterScope('bar');
7
- var _x = Paloma.variableContainer;
8
-
9
- filter.skip_before_filter('Standard Skip Before Filter');
10
- filter.skip_before_filter('Only Skip Before Filter').only('basic_action');
11
- filter.skip_before_filter('Except Skip Before Filter').except('yet_another_basic_action');
12
-
13
- filter.skip_after_filter('Standard Skip After Filter');
14
- filter.skip_after_filter('Only Skip After Filter').only('basic_action');
15
- filter.skip_after_filter('Except Skip After Filter').except('yet_another_basic_action');
16
-
17
- filter.skip_around_filter('Standard Skip Around Filter');
18
- filter.skip_around_filter('Only Skip Around Filter').only('basic_action');
19
- filter.skip_around_filter('Except Skip Around Filter').except('yet_another_basic_action');
20
-
21
-
22
- // Before
23
- filter.as('Standard Before').
24
- before('basic_action', 'another_basic_action').
25
- perform(function(params)
26
- {
27
- filtersExecuted.before.push('Standard Before');
28
- });
29
-
30
-
31
- filter.as('Before All').
32
- before_all().perform(function(params)
33
- {
34
- filtersExecuted.before.push('Before All');
35
- });
36
-
37
-
38
- filter.as('Except Before').
39
- except_before('basic_action').
40
- perform(function(params)
41
- {
42
- filtersExecuted.before.push('Except Before');
43
- });
44
-
45
-
46
- // After
47
- filter.as('Standard After').
48
- after('basic_action', 'another_basic_action').
49
- perform(function(params)
50
- {
51
- filtersExecuted.after.push('Standard After');
52
- });
53
-
54
-
55
- filter.as('After All').
56
- after_all().perform(function(params)
57
- {
58
- filtersExecuted.after.push('After All');
59
- });
60
-
61
-
62
- filter.as('Except After').
63
- except_after('basic_action').
64
- perform(function(params)
65
- {
66
- filtersExecuted.after.push('Except After');
67
- });
68
-
69
-
70
- // Around
71
- filter.as('Standard Around').
72
- around('basic_action', 'another_basic_action').
73
- perform(function(params)
74
- {
75
- var execution = window.callback ? 'after' : 'before';
76
- filtersExecuted[execution].push('Standard Around');
77
- });
78
-
79
-
80
- filter.as('Around All').
81
- around_all().perform(function(params)
82
- {
83
- var execution = window.callback ? 'after' : 'before';
84
- filtersExecuted[execution].push('Around All');
85
- });
86
-
87
-
88
- filter.as('Except Around').
89
- except_around('basic_action').
90
- perform(function(params)
91
- {
92
- var execution = window.callback ? 'after' : 'before';
93
- filtersExecuted[execution].push('Except Around');
94
- });
95
-
96
- })();
@@ -1 +0,0 @@
1
- Paloma.callbacks['bar'] = {};
@@ -1,3 +0,0 @@
1
- //= require ./_locals.js
2
- //= require ./_filters.js
3
- //= require_tree .
@@ -1,5 +0,0 @@
1
- Paloma.callbacks['bar']['another_basic_action'] = function(params)
2
- {
3
- window.callback = "['bar']['another_basic_action']";
4
- window.params = params;
5
- };
@@ -1,5 +0,0 @@
1
- Paloma.callbacks['bar']['basic_action'] = function(params)
2
- {
3
- window.callback = "['bar']['basic_action']";
4
- window.params = params;
5
- };
@@ -1,4 +0,0 @@
1
- Paloma.callbacks['bar']['different_params'] = function(params)
2
- {
3
- window.params = params;
4
- };
@@ -1,5 +0,0 @@
1
- Paloma.callbacks['bar']['yet_another_basic_action'] = function(params)
2
- {
3
- window.callback = "['bar']['yet_another_basic_action']";
4
- window.params = params;
5
- };
@@ -1,24 +0,0 @@
1
- (function(){
2
- var filter = new Paloma.FilterScope('foo');
3
- var _x = Paloma.variableContainer;
4
-
5
-
6
- filter.as('Before Foo').
7
- before_all().perform(function(params){
8
- _x.xVisibility = ['Before Foo'];
9
- });
10
-
11
-
12
- filter.as('After Foo').
13
- after_all().perform(function(params){
14
- _x.xVisibility.push('After Foo');
15
- });
16
-
17
-
18
- filter.as('Around Foo').
19
- around_all().perform(function(params){
20
- _x.xVisibility.push('Around Foo');
21
- window.xVisibilityFinal = _x.xVisibility;
22
- });
23
-
24
- })();
@@ -1,21 +0,0 @@
1
- (function(){
2
- Paloma.callbacks['foo'] = {};
3
- Paloma.locals['foo'] = {};
4
- locals = Paloma.locals['foo'];
5
-
6
- // Locals starts here
7
- locals.helperMethod = function(){
8
- return 100;
9
- };
10
-
11
- locals.helperVariable = 99;
12
-
13
-
14
- locals.toBeOverriden = function(){
15
- return "Override!"
16
- };
17
-
18
-
19
- // Locals ends here
20
- Paloma.inheritLocals({from : '/', to : 'foo'});
21
- })();
@@ -1,3 +0,0 @@
1
- //= require ./_locals.js
2
- //= require ./_filters.js
3
- //= require_tree .
@@ -1,21 +0,0 @@
1
- (function(){
2
- var _x = Paloma.variableContainer,
3
- _L= Paloma.locals,
4
- _l = _L['foo'];
5
-
6
-
7
- Paloma.callbacks['foo']['basic_action'] = function(params)
8
- {
9
- window.callback = "['foo']['basic_action']";
10
- window.params = params;
11
-
12
- window.helperMethodValue = _l.helperMethod();
13
- window.helperVariableValue = _l.helperVariable;
14
- window.overriden = _l.toBeOverriden();
15
-
16
- _x.xVisibility.push('Foo');
17
-
18
- window.locals = _l;
19
- };
20
-
21
- })();
@@ -1,6 +0,0 @@
1
- Paloma.callbacks['foo']['skip_callback'] = function(params)
2
- {
3
- // Must not reach this code.
4
- window.callback = "foo/skip_callback";
5
- window.params = params;
6
- };
@@ -1,6 +0,0 @@
1
- //= require paloma_core.js
2
- //= require ./_filters.js
3
- //= require ./_locals.js
4
- //= require ./foo/_manifest.js
5
- //= require ./bar/_manifest.js
6
- //= require ./sample_namespace/_manifest.js
@@ -1,83 +0,0 @@
1
- // For testing only
2
- window.filtersExecuted = window.filtersExecuted || {before : [], after : []};
3
-
4
-
5
- (function(){
6
- var filter = new Paloma.FilterScope('sample_namespace');
7
- var _x = Paloma.variableContainer;
8
-
9
- // Before
10
- filter.as('Namespaced Standard Before').
11
- before('basic_action', 'another_basic_action').
12
- perform(function(params)
13
- {
14
- filtersExecuted.before.push('Namespaced Standard Before');
15
- });
16
-
17
-
18
- filter.as('Namespaced Before All').
19
- before_all().perform(function(params)
20
- {
21
- filtersExecuted.before.push('Namespaced Before All');
22
- });
23
-
24
-
25
- filter.as('Namespaced Except Before').
26
- except_before('basic_action').
27
- perform(function(params)
28
- {
29
- filtersExecuted.before.push('Namespaced Except Before');
30
- });
31
-
32
-
33
- // After
34
- filter.as('Namespaced Standard After').
35
- after('basic_action', 'another_basic_action').
36
- perform(function(params)
37
- {
38
- filtersExecuted.after.push('Namespaced Standard After');
39
- });
40
-
41
-
42
- filter.as('Namespaced After All').
43
- after_all().perform(function(params)
44
- {
45
- filtersExecuted.after.push('Namespaced After All');
46
- });
47
-
48
-
49
- filter.as('Namespaced Except After').
50
- except_after('basic_action').
51
- perform(function(params)
52
- {
53
- filtersExecuted.after.push('Namespaced Except After');
54
- });
55
-
56
-
57
- // Around
58
- filter.as('Namespaced Standard Around').
59
- around('basic_action', 'another_basic_action').
60
- perform(function(params)
61
- {
62
- var execution = window.callback ? 'after' : 'before';
63
- filtersExecuted[execution].push('Namespaced Standard Around');
64
- });
65
-
66
-
67
- filter.as('Namespaced Around All').
68
- around_all().perform(function(params)
69
- {
70
- var execution = window.callback ? 'after' : 'before';
71
- filtersExecuted[execution].push('Namespaced Around All');
72
- });
73
-
74
-
75
- filter.as('Namespaced Except Around').
76
- except_around('basic_action').
77
- perform(function(params)
78
- {
79
- var execution = window.callback ? 'after' : 'before';
80
- filtersExecuted[execution].push('Namespaced Except Around');
81
- });
82
-
83
- })();
@@ -1,2 +0,0 @@
1
- //= require ./_filters.js
2
- //= require ./baz/_manifest.js
@@ -1,84 +0,0 @@
1
- // For testing only
2
- window.filtersExecuted = window.filtersExecuted || {before : [], after : []};
3
-
4
-
5
- (function(){
6
- var filter = new Paloma.FilterScope('sample_namespace/baz');
7
- var _x = Paloma.variableContainer;
8
-
9
-
10
- // Before
11
- filter.as('Standard Before').
12
- before('basic_action', 'another_basic_action').
13
- perform(function(params)
14
- {
15
- filtersExecuted.before.push('Standard Before');
16
- });
17
-
18
-
19
- filter.as('Before All').
20
- before_all().perform(function(params)
21
- {
22
- filtersExecuted.before.push('Before All');
23
- });
24
-
25
-
26
- filter.as('Except Before').
27
- except_before('basic_action').
28
- perform(function(params)
29
- {
30
- filtersExecuted.before.push('Except Before');
31
- });
32
-
33
-
34
- // After
35
- filter.as('Standard After').
36
- after('basic_action', 'another_basic_action').
37
- perform(function(params)
38
- {
39
- filtersExecuted.after.push('Standard After');
40
- });
41
-
42
-
43
- filter.as('After All').
44
- after_all().perform(function(params)
45
- {
46
- filtersExecuted.after.push('After All');
47
- });
48
-
49
-
50
- filter.as('Except After').
51
- except_after('basic_action').
52
- perform(function(params)
53
- {
54
- filtersExecuted.after.push('Except After');
55
- });
56
-
57
-
58
- // Around
59
- filter.as('Standard Around').
60
- around('basic_action', 'another_basic_action').
61
- perform(function(params)
62
- {
63
- var execution = window.callback ? 'after' : 'before';
64
- filtersExecuted[execution].push('Standard Around');
65
- });
66
-
67
-
68
- filter.as('Around All').
69
- around_all().perform(function(params)
70
- {
71
- var execution = window.callback ? 'after' : 'before';
72
- filtersExecuted[execution].push('Around All');
73
- });
74
-
75
-
76
- filter.as('Except Around').
77
- except_around('basic_action').
78
- perform(function(params)
79
- {
80
- var execution = window.callback ? 'after' : 'before';
81
- filtersExecuted[execution].push('Except Around');
82
- });
83
-
84
- })();
@@ -1 +0,0 @@
1
- Paloma.callbacks['sample_namespace/baz'] = {}
@@ -1,2 +0,0 @@
1
- //= require ./_locals.js
2
- //= require_tree .
@@ -1,5 +0,0 @@
1
- Paloma.callbacks['sample_namespace/baz']['another_basic_action'] = function(params)
2
- {
3
- window.callback = "['sample_namespace/baz']['another_basic_action']";
4
- window.params = params;
5
- };
@@ -1,5 +0,0 @@
1
- Paloma.callbacks['sample_namespace/baz']['basic_action'] = function(params)
2
- {
3
- window.callback = "['sample_namespace/baz']['basic_action']";
4
- window.params = params;
5
- };
@@ -1,5 +0,0 @@
1
- Paloma.callbacks['sample_namespace/baz']['yet_another_basic_action'] = function(params)
2
- {
3
- window.callback = "['sample_namespace/baz']['yet_another_basic_action']";
4
- window.params = params;
5
- };
@@ -1,28 +0,0 @@
1
- class BarController < ApplicationController
2
- def basic_action
3
- render :inline => '<h1>Bar! Basic Action</h1>', :layout => 'application'
4
- end
5
-
6
-
7
- def another_basic_action
8
- render :inline => '<h1>Bar! Another Basic Action</h1>', :layout => 'application'
9
- end
10
-
11
-
12
- def yet_another_basic_action
13
- render :inline => '<h1>Bar! Yet Another Basic Action</h1>', :layout => 'application'
14
- end
15
-
16
-
17
- def different_params
18
- js :params => {
19
- :boolean => true,
20
- :array => [1, 2, 3],
21
- :string => 'Banana',
22
- :integer => 69,
23
- :float => 3.1416,
24
- :hash => {:a => 'Hello', :b => 'World'}}
25
-
26
- render :inline => '<h1>Bar! Different Params</h1>', :layout => 'application'
27
- end
28
- end