paloma 1.2.6 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -3
- data/Changelog.md +0 -4
- data/README.md +206 -67
- data/app/templates/_filters.js +14 -0
- data/app/templates/application/_locals.js +13 -0
- data/app/templates/controller/_locals.js +19 -0
- data/app/templates/controller/_manifest.js +3 -0
- data/app/templates/controller/action.js +23 -0
- data/app/templates/index.js +3 -1
- data/app/templates/namespace/_locals.js +16 -0
- data/app/templates/namespace/_manifest.js +3 -0
- data/app/views/paloma/_callback_hook.html.erb +31 -26
- data/lib/paloma.rb +3 -0
- data/lib/paloma/action_controller_extension.rb +18 -16
- data/lib/paloma/action_controller_filters.rb +4 -7
- data/lib/paloma/generators/add_generator.rb +81 -85
- data/lib/paloma/generators/setup_generator.rb +15 -5
- data/lib/paloma/rails/controller_generator.rb +11 -0
- data/lib/paloma/rails/engine.rb +6 -0
- data/paloma.gemspec +1 -3
- data/spec/test_app/.gitignore +15 -0
- data/spec/test_app/.rspec +1 -0
- data/spec/test_app/Gemfile +2 -0
- data/spec/test_app/README.rdoc +261 -0
- data/spec/test_app/Rakefile +16 -0
- data/spec/test_app/app/assets/javascripts/application.js +16 -0
- data/spec/test_app/app/assets/javascripts/paloma/_filters.js +130 -0
- data/spec/test_app/app/assets/javascripts/paloma/_locals.js +17 -0
- data/spec/test_app/app/assets/javascripts/paloma/bar/_filters.js +96 -0
- data/spec/test_app/app/assets/javascripts/paloma/bar/_locals.js +1 -0
- data/spec/test_app/app/assets/javascripts/paloma/bar/_manifest.js +3 -0
- data/spec/test_app/app/assets/javascripts/paloma/bar/another_basic_action.js +5 -0
- data/spec/test_app/app/assets/javascripts/paloma/bar/basic_action.js +5 -0
- data/spec/test_app/app/assets/javascripts/paloma/bar/different_params.js +4 -0
- data/spec/test_app/app/assets/javascripts/paloma/bar/yet_another_basic_action.js +5 -0
- data/spec/test_app/app/assets/javascripts/paloma/foo/_filters.js +24 -0
- data/spec/test_app/app/assets/javascripts/paloma/foo/_locals.js +21 -0
- data/spec/test_app/app/assets/javascripts/paloma/foo/_manifest.js +3 -0
- data/spec/test_app/app/assets/javascripts/paloma/foo/basic_action.js +21 -0
- data/spec/test_app/app/assets/javascripts/paloma/foo/skip_callback.js +6 -0
- data/spec/test_app/app/assets/javascripts/paloma/index.js +6 -0
- data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/_filters.js +83 -0
- data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/_manifest.js +2 -0
- data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_filters.js +84 -0
- data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_locals.js +1 -0
- data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/_manifest.js +2 -0
- data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/another_basic_action.js +5 -0
- data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/basic_action.js +5 -0
- data/spec/test_app/app/assets/javascripts/paloma/sample_namespace/baz/yet_another_basic_action.js +5 -0
- data/spec/test_app/app/controllers/application_controller.rb +3 -0
- data/spec/test_app/app/controllers/bar_controller.rb +28 -0
- data/spec/test_app/app/controllers/foo_controller.rb +25 -0
- data/spec/test_app/app/controllers/sample_namespace/baz_controller.rb +23 -0
- data/spec/{sample_app → test_app}/app/views/layouts/application.html.erb +0 -0
- data/spec/test_app/config.ru +4 -0
- data/spec/test_app/config/application.rb +74 -0
- data/spec/test_app/config/boot.rb +6 -0
- data/spec/test_app/config/environment.rb +5 -0
- data/spec/test_app/config/environments/development.rb +31 -0
- data/spec/test_app/config/environments/production.rb +64 -0
- data/spec/test_app/config/environments/test.rb +35 -0
- data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/test_app/config/initializers/inflections.rb +15 -0
- data/spec/test_app/config/initializers/mime_types.rb +5 -0
- data/spec/test_app/config/initializers/secret_token.rb +7 -0
- data/spec/test_app/config/initializers/session_store.rb +8 -0
- data/spec/test_app/config/initializers/wrap_parameters.rb +10 -0
- data/spec/test_app/config/locales/en.yml +5 -0
- data/spec/test_app/config/routes.rb +33 -0
- data/spec/test_app/log/.gitkeep +0 -0
- data/spec/test_app/public/404.html +26 -0
- data/spec/test_app/public/422.html +26 -0
- data/spec/test_app/public/500.html +25 -0
- data/spec/test_app/public/favicon.ico +0 -0
- data/spec/test_app/public/robots.txt +5 -0
- data/spec/test_app/script/rails +6 -0
- data/spec/test_app/spec/generator_helper.rb +87 -0
- data/spec/test_app/spec/generators/paloma_generator_spec.rb +199 -0
- data/spec/test_app/spec/generators/rails_generator_spec.rb +54 -0
- data/spec/test_app/spec/javascripts/callback_spec.rb +64 -0
- data/spec/test_app/spec/javascripts/filters_spec.rb +187 -0
- data/spec/test_app/spec/javascripts/locals_spec.rb +27 -0
- data/spec/test_app/spec/javascripts/params_spec.rb +116 -0
- data/spec/test_app/spec/javascripts/skip_filters_spec.rb +58 -0
- data/spec/test_app/spec/javascripts/variable_container_spec.rb +21 -0
- data/spec/test_app/spec/spec_helper.rb +26 -0
- data/vendor/assets/javascripts/paloma_core.js +294 -0
- metadata +79 -68
- data/Rakefile +0 -28
- data/app/templates/_callbacks.js +0 -2
- data/app/templates/_local.js +0 -20
- data/app/templates/action.js +0 -5
- data/app/templates/paloma.js +0 -22
- data/spec/callback_spec.rb +0 -81
- data/spec/generator_spec.rb +0 -425
- data/spec/sample_app/app/assets/javascripts/application.js +0 -4
- data/spec/sample_app/app/assets/javascripts/paloma/articles/_callbacks.js +0 -1
- data/spec/sample_app/app/assets/javascripts/paloma/articles/create.js +0 -3
- data/spec/sample_app/app/assets/javascripts/paloma/articles/edit.js +0 -3
- data/spec/sample_app/app/assets/javascripts/paloma/articles/index.js +0 -3
- data/spec/sample_app/app/assets/javascripts/paloma/articles/new.js +0 -3
- data/spec/sample_app/app/assets/javascripts/paloma/articles/show.js +0 -3
- data/spec/sample_app/app/assets/javascripts/paloma/articles/update.js +0 -3
- data/spec/sample_app/app/assets/javascripts/paloma/index.js +0 -3
- data/spec/sample_app/app/assets/javascripts/paloma/paloma.js +0 -1
- data/spec/sample_app/app/assets/javascripts/paloma/sample_namespace/_callbacks.js +0 -1
- data/spec/sample_app/app/assets/javascripts/paloma/sample_namespace/categories/_callbacks.js +0 -1
- data/spec/sample_app/app/assets/javascripts/paloma/sample_namespace/categories/index.js +0 -3
- data/spec/sample_app/app/views/articles/index.html.erb +0 -5
- data/spec/sample_app/app/views/articles/new.html.erb +0 -9
- data/spec/sample_app/app/views/articles/show.html.erb +0 -2
- data/spec/sample_app/app/views/sample_namespace/categories/index.html.erb +0 -5
- data/spec/sample_app/app/views/sample_namespace/categories/new.html.erb +0 -5
- data/spec/sample_app/controllers.rb +0 -68
- data/spec/sample_app/init.rb +0 -37
- data/spec/sample_app/models.rb +0 -40
- data/spec/spec_helper.rb +0 -21
- data/spec/test_app/log/development.log +0 -4
- data/spec/test_app/tmp/cache/assets/CF0/DA0/sprockets%2Fd7d5b37686831d37c4dd75e645f5e016 +0 -0
- data/spec/test_app/tmp/cache/assets/E25/4C0/sprockets%2Fde2fd9fd11c04a582cdbbe3d84a35ae6 +0 -0
@@ -0,0 +1,17 @@
|
|
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
|
+
})();
|
@@ -0,0 +1,96 @@
|
|
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
|
+
})();
|
@@ -0,0 +1 @@
|
|
1
|
+
Paloma.callbacks['bar'] = {};
|
@@ -0,0 +1,24 @@
|
|
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
|
+
})();
|
@@ -0,0 +1,21 @@
|
|
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
|
+
})();
|
@@ -0,0 +1,21 @@
|
|
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
|
+
})();
|
@@ -0,0 +1,83 @@
|
|
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
|
+
})();
|
@@ -0,0 +1,84 @@
|
|
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
|
+
})();
|
@@ -0,0 +1 @@
|
|
1
|
+
Paloma.callbacks['sample_namespace/baz'] = {}
|