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,13 @@
|
|
1
|
+
(function(){
|
2
|
+
// Initializes locals container for the global scope.
|
3
|
+
// All _locals.js file will inherit all locals here by default.
|
4
|
+
//
|
5
|
+
// Define a local by adding property to 'locals'.
|
6
|
+
//
|
7
|
+
// Example:
|
8
|
+
// locals.localMethod = function(){};
|
9
|
+
var locals = Paloma.locals['/'] = {};
|
10
|
+
|
11
|
+
|
12
|
+
// ~> Start local definitions here and remove this line.
|
13
|
+
})();
|
@@ -0,0 +1,19 @@
|
|
1
|
+
(function(){
|
2
|
+
// Initializes callbacks container for the this specific scope.
|
3
|
+
Paloma.callbacks[':controller_path'] = {};
|
4
|
+
|
5
|
+
// Initializes locals container for this specific scope.
|
6
|
+
// Define a local by adding property to 'locals'.
|
7
|
+
//
|
8
|
+
// Example:
|
9
|
+
// locals.localMethod = function(){};
|
10
|
+
var locals = Paloma.locals[':controller_path'] = {};
|
11
|
+
|
12
|
+
|
13
|
+
// ~> Start local definitions here and remove this line.
|
14
|
+
|
15
|
+
|
16
|
+
// Remove this line if you don't want to inherit locals defined
|
17
|
+
// on parent's _locals.js
|
18
|
+
Paloma.inheritLocals({from : ':parent', to : ':controller_path'});
|
19
|
+
})();
|
@@ -0,0 +1,23 @@
|
|
1
|
+
(function(){
|
2
|
+
// You access variables from before/around filters from _x object.
|
3
|
+
// You can also share variables to after/around filters through _x object.
|
4
|
+
var _x = Paloma.variableContainer;
|
5
|
+
|
6
|
+
// We are using _L as an alias for the locals container.
|
7
|
+
// Use either of the two to access locals from other scopes.
|
8
|
+
//
|
9
|
+
// Example:
|
10
|
+
// _L.otherController.localVariable = 100;
|
11
|
+
var _L = Paloma.locals;
|
12
|
+
|
13
|
+
// Access locals for the current scope through the _l object.
|
14
|
+
//
|
15
|
+
// Example:
|
16
|
+
// _l.localMethod();
|
17
|
+
var _l = _L[':controller_path'];
|
18
|
+
|
19
|
+
|
20
|
+
Paloma.callbacks[':controller_path'][':action'] = function(params){
|
21
|
+
// Do something here.
|
22
|
+
};
|
23
|
+
})();
|
data/app/templates/index.js
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
(function(){
|
2
|
+
// Initializes locals container for this specific scope.
|
3
|
+
// Define a local by adding property to 'locals'.
|
4
|
+
//
|
5
|
+
// Example:
|
6
|
+
// locals.localMethod = function(){};
|
7
|
+
var locals = Paloma.locals[':namespace'] = {};
|
8
|
+
|
9
|
+
|
10
|
+
// ~> Start local definitions here and remove this line.
|
11
|
+
|
12
|
+
|
13
|
+
// Remove this line if you don't want to inherit locals defined
|
14
|
+
// on parent's _locals.js
|
15
|
+
Paloma.inheritLocals({from : '/', to : ':namespace'});
|
16
|
+
})();
|
@@ -2,34 +2,39 @@
|
|
2
2
|
|
3
3
|
<div class="callback-details" id="callback-details-<%= callback_details_id %>">
|
4
4
|
<script type="text/javascript">
|
5
|
-
|
6
|
-
callbacks = [];
|
5
|
+
(function(){
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
});
|
18
|
-
<% end %>
|
19
|
-
|
20
|
-
|
21
|
-
// Run Callbacks
|
22
|
-
$(document).ready(function(){
|
23
|
-
for (var i = 0, len = callbacks.length; i < len; i++){
|
24
|
-
var callback = callbacks[i],
|
25
|
-
callbackFunction = Paloma.callbacks[callback.name];
|
7
|
+
// Do not continue if Paloma.js is not found.
|
8
|
+
if (window['Paloma'] === undefined && window['console'] !== undefined){
|
9
|
+
console.warn("Paloma.js not found. Require it in your application.js.");
|
10
|
+
return true;
|
11
|
+
}
|
12
|
+
|
13
|
+
|
14
|
+
var id = "callback-details-<%= callback_details_id %>",
|
15
|
+
callbacks = [];
|
26
16
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
17
|
+
// Remove any callback details if any
|
18
|
+
$('.callback-details[id!=" + id + "]').remove();
|
19
|
+
|
20
|
+
|
21
|
+
// Convert callbacks to javascript variable
|
22
|
+
<% callbacks.each do |callback| %>
|
23
|
+
callbacks.push({
|
24
|
+
controller: '<%= callback[:controller] %>',
|
25
|
+
action: '<%= callback[:action] %>',
|
26
|
+
params: eval($('<div/>').html("(<%= callback[:params].to_json %>)").text())
|
27
|
+
});
|
28
|
+
<% end %>
|
29
|
+
|
30
|
+
|
31
|
+
// Run Callbacks
|
32
|
+
$(document).ready(function(){
|
33
|
+
for (var i = 0, len = callbacks.length; i < len; i++){
|
34
|
+
var callback = callbacks[i];
|
35
|
+
Paloma.execute(callback.controller, callback.action, callback.params);
|
31
36
|
}
|
32
|
-
}
|
33
|
-
});
|
37
|
+
});
|
38
|
+
})();
|
34
39
|
</script>
|
35
40
|
</div>
|
data/lib/paloma.rb
CHANGED
@@ -19,6 +19,7 @@ module Paloma
|
|
19
19
|
def self.templates
|
20
20
|
@templates ||= "#{Paloma.root}/app/templates"
|
21
21
|
end
|
22
|
+
|
22
23
|
end
|
23
24
|
|
24
25
|
require 'action_controller/railtie'
|
@@ -30,3 +31,5 @@ require 'paloma/generators/add_generator'
|
|
30
31
|
require 'paloma/generators/setup_generator'
|
31
32
|
require 'paloma/action_controller_filters'
|
32
33
|
require 'paloma/action_controller_extension'
|
34
|
+
require 'paloma/rails/controller_generator'
|
35
|
+
require 'paloma/rails/engine'
|
@@ -9,41 +9,43 @@ module Paloma
|
|
9
9
|
|
10
10
|
module ActionControllerExtension
|
11
11
|
def redirect_js_hook options = {}, response_status = {}
|
12
|
-
add_to_callbacks @
|
12
|
+
add_to_callbacks @__paloma_callback__
|
13
13
|
original_redirect_to options, response_status
|
14
14
|
end
|
15
15
|
alias_method :redirect_to, :redirect_js_hook
|
16
16
|
|
17
17
|
|
18
18
|
#
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
19
|
+
# js false
|
20
|
+
# js :new, :params => {}
|
21
|
+
# js :controller => '', :action => '', :params => {}
|
22
|
+
# js :params => {}
|
23
23
|
#
|
24
|
-
def
|
25
|
-
|
24
|
+
def js options = {}, extras = {}
|
25
|
+
callback = {:controller => controller_path, :action => action_name}
|
26
26
|
params = {}
|
27
27
|
|
28
28
|
if options.is_a? Hash
|
29
29
|
params = options[:params]
|
30
30
|
callback = options[:controller].present? && options[:action].present? ?
|
31
|
-
|
32
|
-
|
31
|
+
{:controller => options[:controller], :action => options[:action]} :
|
32
|
+
callback
|
33
33
|
|
34
34
|
elsif options.is_a? Symbol
|
35
35
|
params = extras[:params]
|
36
|
-
callback =
|
36
|
+
callback[:action] = options
|
37
37
|
|
38
|
-
elsif options.
|
39
|
-
callback = default_callback
|
40
|
-
|
41
|
-
else # false
|
38
|
+
elsif options.is_a? FalseClass
|
42
39
|
callback = nil
|
43
40
|
end
|
44
41
|
|
45
|
-
|
46
|
-
|
42
|
+
params ||= {}
|
43
|
+
|
44
|
+
# Include request details
|
45
|
+
params[:controller_path] = controller_path
|
46
|
+
params[:action] = action_name
|
47
|
+
|
48
|
+
@__paloma_callback__ = callback.present? ? callback.merge({:params => params}) : nil
|
47
49
|
end
|
48
50
|
end
|
49
51
|
|
@@ -4,7 +4,7 @@ module Paloma
|
|
4
4
|
def self.included base
|
5
5
|
base.module_eval do
|
6
6
|
prepend_view_path "#{Paloma.root}/app/views/"
|
7
|
-
before_filter :
|
7
|
+
before_filter :js
|
8
8
|
after_filter :update_callback, :if => :html_response_from_render?
|
9
9
|
end
|
10
10
|
end
|
@@ -18,9 +18,7 @@ module Paloma
|
|
18
18
|
|
19
19
|
|
20
20
|
def update_callback
|
21
|
-
|
22
|
-
|
23
|
-
add_to_callbacks @__callback__, @__js_params__
|
21
|
+
add_to_callbacks @__paloma_callback__
|
24
22
|
|
25
23
|
paloma_txt = view_context.render(
|
26
24
|
:partial => "paloma/callback_hook",
|
@@ -45,10 +43,9 @@ module Paloma
|
|
45
43
|
end
|
46
44
|
|
47
45
|
|
48
|
-
def add_to_callbacks
|
49
|
-
return true if name.nil?
|
46
|
+
def add_to_callbacks callback
|
50
47
|
session[:callbacks] ||= []
|
51
|
-
session[:callbacks].push(
|
48
|
+
session[:callbacks].push(callback) if callback.present?
|
52
49
|
end
|
53
50
|
|
54
51
|
|
@@ -27,114 +27,110 @@ module Paloma
|
|
27
27
|
argument :actions, :type => :array, :required => false
|
28
28
|
|
29
29
|
def create_callback_file
|
30
|
-
|
30
|
+
initialize_arguments file_path
|
31
31
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
@controller_folder = args[3]
|
36
|
-
|
37
|
-
generate_folder(@namespace_folder)
|
38
|
-
generate_folder(@controller_folder)
|
39
|
-
|
40
|
-
# Create a js file for action if there is an action argument
|
41
|
-
if actions.present?
|
42
|
-
generate_actions actions
|
43
|
-
end
|
32
|
+
generate_namespace_folder if @namespace.present?
|
33
|
+
generate_controller_folder if @controller.present?
|
34
|
+
generate_action_files(actions) if actions.present?
|
44
35
|
end
|
45
36
|
|
46
37
|
|
47
|
-
private
|
48
38
|
|
49
|
-
|
50
|
-
|
39
|
+
private
|
40
|
+
|
41
|
+
|
42
|
+
def initialize_arguments args
|
43
|
+
# split controller from actions
|
51
44
|
arg = args.split(' ')
|
45
|
+
@controller_path = arg[0]
|
52
46
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
namespace_folder =
|
57
|
-
|
58
|
-
controller_name = namespace_name.nil? ? namespace[0].split(' ')[0] : namespace[1].split(' ')[0]
|
59
|
-
controller_folder = namespace_folder.nil? ?
|
60
|
-
"#{Paloma.destination}/#{controller_name}" :
|
61
|
-
"#{namespace_folder}/#{controller_name}"
|
62
|
-
|
63
|
-
# [namespace_name, namespace_folder, controller_name, controller_folder]
|
64
|
-
files = [namespace_name, namespace_folder, controller_name, controller_folder]
|
47
|
+
full_controller_path = @controller_path.split '/'
|
48
|
+
@controller = full_controller_path.pop
|
49
|
+
@namespace = full_controller_path.join '/'
|
50
|
+
@namespace_folder = "#{Paloma.destination}/#{@namespace}" if @namespace
|
51
|
+
@controller_folder = "#{Paloma.destination}/#{@controller_path}"
|
65
52
|
end
|
66
53
|
|
67
54
|
|
68
|
-
def
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
55
|
+
def generate_namespace_folder
|
56
|
+
return true if @namespace_folder.nil? || Dir.exists?(@namespace_folder)
|
57
|
+
|
58
|
+
Dir.mkdir(@namespace_folder)
|
59
|
+
|
60
|
+
generate_from_template :template => '/namespace/_locals.js',
|
61
|
+
:filename => "#{@namespace_folder}/_locals.js",
|
62
|
+
:replace => {':namespace' => @namespace}
|
63
|
+
|
64
|
+
generate_from_template :template => '_filters.js',
|
65
|
+
:filename => "#{@namespace_folder}/_filters.js",
|
66
|
+
:replace => {':scope' => @namespace}
|
67
|
+
|
68
|
+
generate_from_template :template => '/namespace/_manifest.js',
|
69
|
+
:filename => "#{@namespace_folder}/_manifest.js",
|
70
|
+
:replace => {':controller' => @controller}
|
71
|
+
|
72
|
+
# Require _manifest.js to Paloma's main index file
|
73
|
+
File.open(Paloma.index_js, 'a+'){ |f|
|
74
|
+
f << "\n//= require ./#{@namespace}/_manifest.js"
|
75
|
+
}
|
83
76
|
end
|
84
77
|
|
85
78
|
|
86
|
-
def
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
79
|
+
def generate_controller_folder
|
80
|
+
return true if @controller_folder.nil? || Dir.exists?(@controller_folder)
|
81
|
+
|
82
|
+
Dir.mkdir(@controller_folder)
|
83
|
+
|
84
|
+
generate_from_template :template => '/controller/_locals.js',
|
85
|
+
:filename => "#{@controller_folder}/_locals.js",
|
86
|
+
:replace => {
|
87
|
+
':controller_path' => @controller_path,
|
88
|
+
':parent' => (@namespace.present? ? @namespace : '/')}
|
89
|
+
|
90
|
+
generate_from_template :template => '_filters.js',
|
91
|
+
:filename => "#{@controller_folder}/_filters.js",
|
92
|
+
:replace => {':scope' => @controller_path}
|
93
|
+
|
94
|
+
generate_from_template :template => '/controller/_manifest.js',
|
95
|
+
:filename => "#{@controller_folder}/_manifest.js"
|
96
|
+
|
97
|
+
if @namespace.present?
|
98
|
+
# Require _manifest.js to namespace's _manifest.js file
|
99
|
+
File.open("#{@namespace_folder}/_manifest.js", 'a+'){ |f|
|
100
|
+
f << "\n//= require ./#{@controller}/_manifest.js"}
|
101
|
+
else
|
102
|
+
# Require _manifest.js to Paloma's main index file
|
103
|
+
File.open(Paloma.index_js, 'a+'){ |f|
|
104
|
+
f << "\n//= require ./#{@controller}/_manifest.js" }
|
102
105
|
end
|
103
106
|
end
|
104
107
|
|
105
108
|
|
106
|
-
def
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
}
|
116
|
-
|
117
|
-
|
118
|
-
controller = @namespace_folder.present? ? @namespace_name : @controller_name
|
119
|
-
|
120
|
-
unless (@namespace_folder.present? && folder != @namespace_folder)
|
121
|
-
File.open(Paloma.index_js, 'a+'){ |f|
|
122
|
-
f << "\n//= require ./#{controller}/_callbacks.js"
|
123
|
-
}
|
109
|
+
def generate_action_files actions
|
110
|
+
actions.each do |action|
|
111
|
+
action_js = "#{@controller_folder}/#{action}.js"
|
112
|
+
next if action.nil? || File.exists?(action_js)
|
113
|
+
|
114
|
+
content = File.read("#{Paloma.templates}/controller/action.js").
|
115
|
+
gsub(':controller_path', @controller_path).
|
116
|
+
gsub(':action', action)
|
117
|
+
|
118
|
+
File.open(action_js, 'w'){ |f| f.write(content) }
|
119
|
+
puts "create #{action_js}"
|
124
120
|
end
|
125
121
|
end
|
126
122
|
|
127
123
|
|
128
|
-
def generate_from_template
|
129
|
-
|
124
|
+
def generate_from_template options = {:template => nil, :filename => nil, :replace => {}}
|
125
|
+
return true if File.exists?(options[:filename])
|
130
126
|
|
131
|
-
|
132
|
-
|
133
|
-
|
127
|
+
content = File.read("#{Paloma.templates}/#{options[:template]}")
|
128
|
+
options[:replace].each do |pattern, value|
|
129
|
+
content.gsub!(pattern, value)
|
130
|
+
end if options[:replace].present?
|
134
131
|
|
135
|
-
|
136
|
-
|
137
|
-
puts "create #{destination_filename}"
|
132
|
+
File.open(options[:filename], 'w'){ |f| f.write(content) }
|
133
|
+
puts "create #{options[:filename]}"
|
138
134
|
end
|
139
135
|
end
|
140
136
|
end
|