Module: Hobo::Controller::Model
Defined Under Namespace
Modules: ClassMethods
Constant Summary
collapse
- DONT_PAGINATE_FORMATS =
[ Mime::CSV, Mime::YAML, Mime::JSON, Mime::XML, Mime::ATOM, Mime:: ]
- WILL_PAGINATE_OPTIONS =
[ :page, :per_page, :total_entries, :count, :finder ]
- READ_ONLY_ACTIONS =
[:index, :show]
- WRITE_ONLY_ACTIONS =
[:create, :update, :destroy]
- FORM_ACTIONS =
[:new, :edit]
Class Method Summary
collapse
Instance Method Summary
collapse
included_in_class
Methods included from Cache
#expire_swept_caches_for
#authenticated_user_from_cookie, #authorized?, #create_auth_cookie, #logged_in?, #login_from_cookie, #login_required, #redirect_back_or_default, #store_location
Class Method Details
.all_controllers(subsite = nil, force = false) ⇒ Object
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/hobo/controller/model.rb', line 56
def self.all_controllers(subsite=nil, force=false)
controller_dirs = ["#{Rails.root}/app/controllers"] + Hobo.engines.map { |e| "#{e}/app/controllers" }
@controllers_loaded ||= {}
if force || !@controllers_loaded[subsite]
controller_dirs.each do |controller_dir|
dir = "#{controller_dir}#{'/' + subsite if subsite}"
if File.directory?(dir)
Dir.entries(dir).each do |f|
if f =~ /^[a-zA-Z_][a-zA-Z0-9_]*_controller\.rb$/
name = f.remove(/.rb$/).camelize
name = "#{subsite.camelize}::#{name}" if subsite
name.constantize
end
end
end
end
@controllers_loaded[subsite] = true
end
names = (@controller_names || []).select { |n| subsite ? n =~ /^#{subsite.camelize}::/ : n !~ /::/ }
names.map do |name|
name.safe_constantize || (@controller_names.delete name; nil)
end.compact
end
|
.included(base) ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/hobo/controller/model.rb', line 17
def included(base)
base.class_eval do
@auto_actions ||= {}
inheriting_cattr_reader :web_methods => [], :show_actions => [], :index_actions => [],
:owner_actions => {}
extend ClassMethods
helper_method :model, :current_user
before_filter :set_no_cache_headers
rescue_from ActiveRecord::RecordNotFound, :with => :not_found unless Rails.env.development?
rescue_from Hobo::PermissionDeniedError, :with => :permission_denied
rescue_from Hobo::Model::Lifecycles::LifecycleKeyError, :with => :permission_denied
respond_to :html
alias_method_chain :render, :hobo_model
end
register_controller(base)
subsite = base.name.include?("::") ? base.name.split("::").first.underscore : nil
base.model.hobo_controller[subsite] = base
Hobo::Controller.included_in_class(base)
end
|
.register_controller(controller) ⇒ Object
50
51
52
53
|
# File 'lib/hobo/controller/model.rb', line 50
def self.register_controller(controller)
@controller_names ||= Set.new
@controller_names << controller.name
end
|
Instance Method Details
#model ⇒ Object
883
884
885
|
# File 'lib/hobo/controller/model.rb', line 883
def model
self.class.model
end
|