hobo 0.6.2 → 0.6.3
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.
- data/bin/hobo +21 -22
- data/hobo_files/plugin/CHANGES.txt +429 -4
- data/hobo_files/plugin/Rakefile +2 -2
- data/hobo_files/plugin/generators/hobo_front_controller/templates/index.dryml +6 -5
- data/hobo_files/plugin/generators/hobo_front_controller/templates/search.dryml +2 -2
- data/hobo_files/plugin/generators/hobo_migration/hobo_migration_generator.rb +20 -15
- data/hobo_files/plugin/generators/hobo_model/templates/model.rb +1 -0
- data/hobo_files/plugin/generators/hobo_model_controller/templates/controller.rb +2 -0
- data/hobo_files/plugin/generators/hobo_rapid/templates/hobo_base.css +1 -2
- data/hobo_files/plugin/generators/hobo_rapid/templates/hobo_rapid.css +4 -3
- data/hobo_files/plugin/generators/hobo_rapid/templates/hobo_rapid.js +94 -12
- data/hobo_files/plugin/generators/hobo_rapid/templates/lowpro.js +5 -183
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/stylesheets/application.css +1 -1
- data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/views/application.dryml +23 -1
- data/hobo_files/plugin/generators/hobo_user_controller/templates/controller.rb +2 -0
- data/hobo_files/plugin/generators/hobo_user_model/templates/model.rb +3 -1
- data/hobo_files/plugin/init.rb +18 -7
- data/hobo_files/plugin/lib/active_record/has_many_association.rb +2 -2
- data/hobo_files/plugin/lib/extensions.rb +56 -12
- data/hobo_files/plugin/lib/hobo.rb +25 -88
- data/hobo_files/plugin/lib/hobo/composite_model.rb +2 -0
- data/hobo_files/plugin/lib/hobo/controller.rb +40 -20
- data/hobo_files/plugin/lib/hobo/dryml.rb +122 -106
- data/hobo_files/plugin/lib/hobo/dryml/dryml_builder.rb +2 -1
- data/hobo_files/plugin/lib/hobo/dryml/part_context.rb +3 -2
- data/hobo_files/plugin/lib/hobo/dryml/taglib.rb +19 -3
- data/hobo_files/plugin/lib/hobo/dryml/template.rb +40 -25
- data/hobo_files/plugin/lib/hobo/dryml/template_environment.rb +41 -20
- data/hobo_files/plugin/lib/hobo/email_address.rb +4 -1
- data/hobo_files/plugin/lib/hobo/enum_string.rb +50 -0
- data/hobo_files/plugin/lib/hobo/field_declaration_dsl.rb +36 -0
- data/hobo_files/plugin/lib/hobo/field_spec.rb +4 -7
- data/hobo_files/plugin/lib/hobo/hobo_helper.rb +47 -44
- data/hobo_files/plugin/lib/hobo/html_string.rb +2 -0
- data/hobo_files/plugin/lib/hobo/markdown_string.rb +2 -0
- data/hobo_files/plugin/lib/hobo/model.rb +158 -89
- data/hobo_files/plugin/lib/hobo/model_controller.rb +422 -376
- data/hobo_files/plugin/lib/hobo/model_queries.rb +1 -1
- data/hobo_files/plugin/lib/hobo/model_router.rb +174 -0
- data/hobo_files/plugin/lib/hobo/password_string.rb +2 -0
- data/hobo_files/plugin/lib/hobo/percentage.rb +14 -0
- data/hobo_files/plugin/lib/hobo/plugins.rb +4 -4
- data/hobo_files/plugin/lib/hobo/rapid_helper.rb +10 -2
- data/hobo_files/plugin/lib/hobo/text.rb +3 -3
- data/hobo_files/plugin/lib/hobo/textile_string.rb +2 -0
- data/hobo_files/plugin/lib/hobo/undefined.rb +3 -2
- data/hobo_files/plugin/lib/hobo/{authenticated_user.rb → user.rb} +10 -3
- data/hobo_files/plugin/lib/hobo/user_controller.rb +27 -23
- data/hobo_files/plugin/tags/core.dryml +8 -2
- data/hobo_files/plugin/tags/rapid.dryml +52 -40
- data/hobo_files/plugin/tags/rapid_document_tags.dryml +15 -11
- data/hobo_files/plugin/tags/rapid_editing.dryml +41 -9
- data/hobo_files/plugin/tags/rapid_forms.dryml +136 -36
- data/hobo_files/plugin/tags/rapid_navigation.dryml +2 -2
- data/hobo_files/plugin/tags/rapid_pages.dryml +204 -221
- data/hobo_files/plugin/tags/rapid_plus.dryml +8 -6
- data/hobo_files/plugin/tags/rapid_support.dryml +2 -3
- metadata +44 -42
- data/hobo_files/plugin/lib/hobo/define_tags.rb +0 -56
- data/hobo_files/plugin/lib/hobo/http_parameters.rb +0 -225
data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/views/application.dryml
CHANGED
@@ -1,6 +1,28 @@
|
|
1
1
|
<include src="plugins/hobo/tags/rapid"/>
|
2
2
|
|
3
|
-
<def tag="Page"
|
3
|
+
<def tag="Page" extend_with="theme">
|
4
|
+
<PageWithoutTheme merge>
|
5
|
+
<wrapper>
|
6
|
+
<div id="page_top">
|
7
|
+
<div id="page_right">
|
8
|
+
<div id="page_bottom">
|
9
|
+
<div id="page_left">
|
10
|
+
<div id="page_corner02">
|
11
|
+
<div id="page_corner04">
|
12
|
+
<div id="page_corner03">
|
13
|
+
<div id="page_corner01">
|
14
|
+
<div id="page_inner_top">
|
15
|
+
<default_tagbody/>
|
16
|
+
</div></div></div></div></div></div></div></div></div>
|
17
|
+
</wrapper>
|
18
|
+
|
19
|
+
<stylesheets><default_tagbody/><theme_stylesheet/></stylesheets>
|
20
|
+
|
21
|
+
</PageWithoutTheme>
|
22
|
+
</def>
|
23
|
+
|
24
|
+
|
25
|
+
<def tag="OldPage" attrs="title_prefix, title">
|
4
26
|
<% title ||= type_name + ": " + name(:no_wrapper => true) %>
|
5
27
|
<doctype version="HTML 4.01 Transitional"/>
|
6
28
|
<html>
|
data/hobo_files/plugin/init.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# Monkey patches, ooh ooh
|
1
2
|
require 'extensions'
|
2
3
|
require 'rexml'
|
3
4
|
require 'active_record/has_many_association'
|
@@ -9,6 +10,7 @@ require 'hobo'
|
|
9
10
|
require 'hobo/dryml'
|
10
11
|
|
11
12
|
require 'hobo/model'
|
13
|
+
require 'hobo/field_declaration_dsl'
|
12
14
|
|
13
15
|
require 'hobo/dryml/template'
|
14
16
|
require 'hobo/dryml/taglib'
|
@@ -19,23 +21,33 @@ require 'hobo/plugins'
|
|
19
21
|
|
20
22
|
require 'extensions/test_case' if RAILS_ENV == "test"
|
21
23
|
|
24
|
+
# Rich data types
|
25
|
+
require "hobo/html_string"
|
26
|
+
require "hobo/markdown_string"
|
27
|
+
require "hobo/textile_string"
|
28
|
+
require "hobo/password_string"
|
29
|
+
require "hobo/text"
|
30
|
+
require "hobo/email_address"
|
31
|
+
require "hobo/enum_string"
|
32
|
+
require "hobo/percentage"
|
33
|
+
|
22
34
|
|
23
35
|
ActionView::Base.register_template_handler("dryml", Hobo::Dryml::TemplateHandler)
|
24
36
|
|
25
37
|
class ActionController::Base
|
26
38
|
|
27
39
|
def self.hobo_user_controller(model=nil)
|
40
|
+
@model = model
|
28
41
|
include Hobo::ModelController
|
29
|
-
self.model = model if model
|
30
42
|
include Hobo::UserController
|
31
43
|
end
|
32
44
|
|
33
45
|
def self.hobo_model_controller(model=nil)
|
46
|
+
@model = model
|
34
47
|
include Hobo::ModelController
|
35
|
-
self.model = model if model
|
36
48
|
end
|
37
49
|
|
38
|
-
def self.hobo_controller
|
50
|
+
def self.hobo_controller
|
39
51
|
include Hobo::Controller
|
40
52
|
end
|
41
53
|
|
@@ -45,13 +57,12 @@ class ActiveRecord::Base
|
|
45
57
|
def self.hobo_model
|
46
58
|
include Hobo::Model
|
47
59
|
end
|
48
|
-
def self.hobo_user_model
|
60
|
+
def self.hobo_user_model
|
49
61
|
include Hobo::Model
|
50
|
-
include Hobo::
|
51
|
-
set_login_attr(login_attr, &b) if login_attr
|
62
|
+
include Hobo::User
|
52
63
|
end
|
53
64
|
end
|
54
65
|
|
55
66
|
# Default settings
|
56
67
|
|
57
|
-
Hobo.developer_features = ["development", "test"]
|
68
|
+
Hobo.developer_features = RAILS_ENV.in?(["development", "test"]) if Hobo.developer_features?.nil?
|
@@ -24,13 +24,29 @@ class Module
|
|
24
24
|
aliased_target, punctuation = target.to_s.sub(/([?!=])$/, ''), $1
|
25
25
|
yield(aliased_target, punctuation) if block_given?
|
26
26
|
without = "#{aliased_target}_without_#{feature}#{punctuation}"
|
27
|
-
unless
|
27
|
+
unless instance_methods.include?(without)
|
28
28
|
alias_method without, target
|
29
29
|
alias_method target, "#{aliased_target}_with_#{feature}#{punctuation}"
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
33
|
|
34
|
+
def alias_tag_chain(tag, feature)
|
35
|
+
if tag.to_s =~ /^[A-Z]/
|
36
|
+
without = "#{tag}Without#{feature.to_s.camelize}"
|
37
|
+
with = "#{tag}With#{feature.to_s.camelize}"
|
38
|
+
else
|
39
|
+
without = "#{tag}_without_#{feature}"
|
40
|
+
with = "#{tag}_with_#{feature}"
|
41
|
+
end
|
42
|
+
|
43
|
+
unless instance_methods.include?(without)
|
44
|
+
alias_method without, tag
|
45
|
+
alias_method tag, with
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
|
34
50
|
# Fix delegate so it doesn't go bang if 'to' is nil
|
35
51
|
def delegate(*methods)
|
36
52
|
options = methods.pop
|
@@ -46,7 +62,7 @@ class Module
|
|
46
62
|
EOS
|
47
63
|
end
|
48
64
|
end
|
49
|
-
|
65
|
+
|
50
66
|
private
|
51
67
|
|
52
68
|
def bool_attr_accessor(*args)
|
@@ -77,7 +93,7 @@ module Kernel
|
|
77
93
|
|
78
94
|
def it() It.new end
|
79
95
|
alias its it
|
80
|
-
|
96
|
+
|
81
97
|
end
|
82
98
|
|
83
99
|
|
@@ -148,13 +164,41 @@ end
|
|
148
164
|
|
149
165
|
|
150
166
|
class SafeNil
|
151
|
-
|
152
|
-
|
167
|
+
include Singleton
|
168
|
+
|
169
|
+
def method_missing(method, *args, &b)
|
170
|
+
return nil unless nil.respond_to? method
|
171
|
+
nil.send(method, *args, &b) rescue nil
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
alias DelegateClass_without_safe_nil DelegateClass
|
176
|
+
def DelegateClass(klass)
|
177
|
+
c = DelegateClass_without_safe_nil(klass)
|
178
|
+
c.class_eval do
|
179
|
+
def _?
|
180
|
+
self
|
181
|
+
end
|
182
|
+
end
|
183
|
+
c
|
184
|
+
end
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
class TrueClass
|
189
|
+
|
190
|
+
def implies(x)
|
191
|
+
x
|
153
192
|
end
|
154
193
|
|
155
|
-
|
156
|
-
|
194
|
+
end
|
195
|
+
|
196
|
+
class FalseClass
|
197
|
+
|
198
|
+
def implies(x)
|
199
|
+
true
|
157
200
|
end
|
201
|
+
|
158
202
|
end
|
159
203
|
|
160
204
|
|
@@ -168,10 +212,10 @@ module Enumerable
|
|
168
212
|
not_found
|
169
213
|
end
|
170
214
|
|
171
|
-
def every(
|
172
|
-
map(
|
215
|
+
def every(method, *args)
|
216
|
+
map { |x| x.send(method, *args) }
|
173
217
|
end
|
174
|
-
|
218
|
+
|
175
219
|
def map_with_index
|
176
220
|
res = []
|
177
221
|
each_with_index {|x, i| res << yield(x, i)}
|
@@ -218,9 +262,9 @@ class Hash
|
|
218
262
|
res
|
219
263
|
end
|
220
264
|
|
221
|
-
def map_hash
|
265
|
+
def map_hash(&b)
|
222
266
|
res = {}
|
223
|
-
each {|k,v| res[k] = yield(k,v) }
|
267
|
+
each {|k,v| res[k] = b.arity == 1 ? yield(v) : yield(k, v) }
|
224
268
|
res
|
225
269
|
end
|
226
270
|
|
@@ -88,7 +88,7 @@ module Hobo
|
|
88
88
|
|
89
89
|
def dom_id(obj, attr=nil)
|
90
90
|
if obj.nil?
|
91
|
-
raise
|
91
|
+
raise ArgumentError, "Tried to get dom id of nil.#{attr}" if attr
|
92
92
|
return 'nil'
|
93
93
|
end
|
94
94
|
|
@@ -98,11 +98,13 @@ module Hobo
|
|
98
98
|
elsif obj.is_a?(Class)
|
99
99
|
return type_id(obj)
|
100
100
|
elsif !obj.respond_to?(:typed_id)
|
101
|
-
if attr
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
101
|
+
return (if attr
|
102
|
+
dom_id(get_field(obj, attr))
|
103
|
+
elsif obj.respond_to?(:id)
|
104
|
+
"#{obj.class.name.underscore}_#{obj.id}"
|
105
|
+
else
|
106
|
+
raise ArgumentError, "Can't create dom id for #{obj.inspect}"
|
107
|
+
end)
|
106
108
|
end
|
107
109
|
attr ? "#{obj.typed_id}_#{attr}" : obj.typed_id
|
108
110
|
end
|
@@ -138,84 +140,12 @@ module Hobo
|
|
138
140
|
results
|
139
141
|
end
|
140
142
|
|
141
|
-
def add_routes(
|
142
|
-
|
143
|
-
ActiveRecord::Base.connection.reconnect! unless ActiveRecord::Base.connection.active?
|
144
|
-
rescue
|
145
|
-
# No database, no routes
|
146
|
-
return
|
147
|
-
end
|
148
|
-
|
149
|
-
require "#{RAILS_ROOT}/app/controllers/application" unless Object.const_defined? :ApplicationController
|
150
|
-
require "#{RAILS_ROOT}/app/assemble.rb" if File.exists? "#{RAILS_ROOT}/app/assemble.rb"
|
151
|
-
|
152
|
-
for model in Hobo.models
|
153
|
-
controller_name = "#{model.name.pluralize}Controller"
|
154
|
-
controller = controller_name.constantize if (Object.const_defined? controller_name) ||
|
155
|
-
File.exists?("#{RAILS_ROOT}/app/controllers/#{controller_name.underscore}.rb")
|
156
|
-
|
157
|
-
if controller
|
158
|
-
web_name = model.name.underscore.pluralize.downcase
|
159
|
-
|
160
|
-
# Simple support for composite models, we might later need a CompositeModelController
|
161
|
-
if model < Hobo::CompositeModel
|
162
|
-
map.connect "#{web_name}/:id", :controller => web_name, :action => 'show'
|
163
|
-
|
164
|
-
elsif controller < Hobo::ModelController
|
165
|
-
map.resources web_name, :collection => { :completions => :get }
|
166
|
-
|
167
|
-
for collection in controller.collections
|
168
|
-
new_method = Hobo.simple_has_many_association?(model.reflections[collection])
|
169
|
-
Hobo.add_collection_routes(map, web_name, collection, new_method)
|
170
|
-
end
|
171
|
-
|
172
|
-
for method in controller.web_methods
|
173
|
-
map.named_route("#{web_name.singularize}_#{method}",
|
174
|
-
"#{web_name}/:id/#{method}",
|
175
|
-
:controller => web_name,
|
176
|
-
:action => method.to_s,
|
177
|
-
:conditions => { :method => :post })
|
178
|
-
end
|
179
|
-
|
180
|
-
for view in controller.show_actions
|
181
|
-
map.named_route("#{web_name.singularize}_#{view}",
|
182
|
-
"#{web_name}/:id/#{view}",
|
183
|
-
:controller => web_name,
|
184
|
-
:action => view.to_s,
|
185
|
-
:conditions => { :method => :get })
|
186
|
-
end
|
187
|
-
|
188
|
-
if controller < Hobo::UserController
|
189
|
-
prefix = web_name == "users" ? "" : "#{web_name.singularize}_"
|
190
|
-
map.named_route("#{web_name.singularize}_login", "#{prefix}login",
|
191
|
-
:controller => web_name, :action => 'login')
|
192
|
-
map.named_route("#{web_name.singularize}_logout", "#{prefix}logout",
|
193
|
-
:controller => web_name, :action => 'logout')
|
194
|
-
map.named_route("#{web_name.singularize}_signup", "#{prefix}signup",
|
195
|
-
:controller => web_name, :action => 'signup')
|
196
|
-
end
|
197
|
-
end
|
198
|
-
end
|
199
|
-
end
|
200
|
-
end
|
201
|
-
|
202
|
-
|
203
|
-
def add_collection_routes(map, controller_name, collection_name, new_method)
|
204
|
-
singular_name = collection_name.to_s.singularize
|
205
|
-
map.with_options :controller => controller_name, :conditions => { :method => :get } do |m|
|
206
|
-
m.named_route("#{controller_name.singularize}_#{collection_name}",
|
207
|
-
"#{controller_name}/:id/#{collection_name}",
|
208
|
-
:action => "show_#{collection_name}")
|
209
|
-
|
210
|
-
m.named_route("new_#{controller_name.singularize}_#{singular_name}",
|
211
|
-
"#{controller_name}/:id/#{collection_name}/new",
|
212
|
-
:action => "new_#{singular_name}") if new_method
|
213
|
-
end
|
143
|
+
def add_routes(m)
|
144
|
+
Hobo::ModelRouter.add_routes(m)
|
214
145
|
end
|
215
146
|
|
216
|
-
|
217
|
-
|
218
|
-
Hobo.models.map {|m| m.name.underscore.pluralize}
|
147
|
+
def all_models
|
148
|
+
Hobo.models.map { |m| m.name.underscore }
|
219
149
|
end
|
220
150
|
|
221
151
|
|
@@ -229,7 +159,8 @@ module Hobo
|
|
229
159
|
|
230
160
|
|
231
161
|
def get_field(object, field)
|
232
|
-
if
|
162
|
+
return nil if object.nil?
|
163
|
+
if field.to_s =~ /^\d+$/
|
233
164
|
object[field.to_i]
|
234
165
|
else
|
235
166
|
object.send(field)
|
@@ -248,6 +179,7 @@ module Hobo
|
|
248
179
|
|
249
180
|
field, parent = nil
|
250
181
|
path.each do |field|
|
182
|
+
return nil if object.nil?
|
251
183
|
parent = object
|
252
184
|
object = get_field(parent, field)
|
253
185
|
end
|
@@ -281,15 +213,20 @@ module Hobo
|
|
281
213
|
|
282
214
|
refl = object.class.reflections[field.to_sym] if object.is_a?(ActiveRecord::Base)
|
283
215
|
|
284
|
-
#
|
285
|
-
return false if refl and (refl.
|
216
|
+
# has_one and polymorphic associations are not editable (for now)
|
217
|
+
return false if refl and (refl.options[:polymorphic] or refl.macro == :has_one)
|
286
218
|
|
287
219
|
if object.has_hobo_method?(:editable_by?)
|
288
220
|
check_permission(:edit, person, object, field.to_sym)
|
221
|
+
elsif object.has_hobo_method?("#{field}_editable_by?")
|
222
|
+
object.send("#{field}_editable_by?", person)
|
289
223
|
else
|
290
224
|
# Fake an edit test by setting the field in question to
|
291
225
|
# Hobo::Undefined and then testing for update permission
|
292
226
|
|
227
|
+
# This technique is not suitable for has_many associations
|
228
|
+
return false if refl._?.macro == :has_many
|
229
|
+
|
293
230
|
current = object.send(field)
|
294
231
|
new = object.duplicate
|
295
232
|
|
@@ -346,10 +283,10 @@ module Hobo
|
|
346
283
|
|
347
284
|
if field
|
348
285
|
field = field.to_sym if field.is_a? String
|
349
|
-
return false if object.
|
286
|
+
return false if object.class.respond_to?(:never_show?) && object.class.never_show?(field)
|
350
287
|
else
|
351
288
|
# Special support for classes (can view instances?)
|
352
|
-
if object.is_a?(Class) and object <
|
289
|
+
if object.is_a?(Class) and object < Hobo::Model
|
353
290
|
object = object.new
|
354
291
|
elsif Hobo.simple_has_many_association?(object)
|
355
292
|
object = object.new
|
@@ -357,7 +294,7 @@ module Hobo
|
|
357
294
|
end
|
358
295
|
viewable = check_permission(:view, person, object, field)
|
359
296
|
if viewable and field and
|
360
|
-
( (field_val = get_field(object, field)).is_a?(
|
297
|
+
( (field_val = get_field(object, field)).is_a?(Hobo::Model) or field_val.is_a?(Array) )
|
361
298
|
# also ask the current value if it is viewable
|
362
299
|
can_view?(person, field_val)
|
363
300
|
else
|
@@ -4,19 +4,27 @@ module Hobo
|
|
4
4
|
|
5
5
|
include AuthenticationSupport
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
class << self
|
8
|
+
|
9
|
+
def included(base)
|
10
|
+
if base.is_a?(Class)
|
11
|
+
included_in_class(base)
|
12
|
+
end
|
10
13
|
end
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
|
15
|
+
def included_in_class(klass)
|
16
|
+
klass.extend(ClassMethods)
|
17
|
+
klass.class_eval do
|
18
|
+
alias_method_chain :redirect_to, :object_url
|
19
|
+
@included_taglibs = []
|
20
|
+
end
|
21
|
+
Hobo::HoboHelper.add_to_controller(klass)
|
22
|
+
end
|
23
|
+
|
24
|
+
def controller_and_view_for(page_path)
|
25
|
+
page_path.match(/(.*)\/([^\/]+)/)[1..2]
|
18
26
|
end
|
19
|
-
|
27
|
+
|
20
28
|
end
|
21
29
|
|
22
30
|
module ClassMethods
|
@@ -27,27 +35,30 @@ module Hobo
|
|
27
35
|
@included_taglibs << if options[:from_plugin]
|
28
36
|
'plugins/' + options[:from_plugin] + '/taglibs/' + src
|
29
37
|
else
|
30
|
-
src
|
38
|
+
src.to_s
|
31
39
|
end
|
32
40
|
end
|
33
41
|
end
|
34
42
|
|
43
|
+
|
35
44
|
protected
|
36
45
|
|
37
|
-
def redirect_to_with_object_url(destination,
|
46
|
+
def redirect_to_with_object_url(destination, *args)
|
38
47
|
if destination.is_a?(String, Hash, Symbol)
|
39
48
|
redirect_to_without_object_url(destination)
|
40
49
|
else
|
41
|
-
redirect_to_without_object_url(object_url(destination,
|
50
|
+
redirect_to_without_object_url(object_url(destination, *args))
|
42
51
|
end
|
43
52
|
end
|
44
53
|
|
45
|
-
|
46
|
-
|
47
|
-
|
54
|
+
|
55
|
+
def hobo_ajax_response(*args)
|
56
|
+
results = args.extract_options!
|
57
|
+
this = args.first || @this
|
58
|
+
page_path = params[:page_path]
|
48
59
|
r = params[:render]
|
49
60
|
if r
|
50
|
-
ajax_update_response(this,
|
61
|
+
ajax_update_response(this, page_path, r.values, results)
|
51
62
|
true
|
52
63
|
else
|
53
64
|
false
|
@@ -55,9 +66,9 @@ module Hobo
|
|
55
66
|
end
|
56
67
|
|
57
68
|
|
58
|
-
def ajax_update_response(this,
|
69
|
+
def ajax_update_response(this, page_path, render_specs, results={})
|
59
70
|
add_variables_to_assigns
|
60
|
-
renderer = Hobo::Dryml.page_renderer(@template, [],
|
71
|
+
renderer = Hobo::Dryml.page_renderer(@template, [], page_path) if page_path
|
61
72
|
|
62
73
|
render :update do |page|
|
63
74
|
page << "var _update = typeof Hobo == 'undefined' ? Element.update : Hobo.updateElement;"
|
@@ -129,3 +140,12 @@ module Hobo
|
|
129
140
|
|
130
141
|
end
|
131
142
|
end
|
143
|
+
|
144
|
+
|
145
|
+
class ActionController::Base
|
146
|
+
|
147
|
+
def home_page
|
148
|
+
""
|
149
|
+
end
|
150
|
+
|
151
|
+
end
|