# File lib/active_scaffold.rb, line 32 def self.autoload_subdir(dir, mod=self, root = File.dirname(__FILE__)) Dir["#{root}/active_scaffold/#{dir}/*.rb"].each { |file| basename = File.basename(file, ".rb") mod.module_eval { autoload basename.camelcase.to_sym, "active_scaffold/#{dir}/#{basename}" } } end
# File lib/active_scaffold.rb, line 164 def self.exclude_bridges @@exclude_bridges ||= [] end
exclude bridges you do not need name of bridge subdir should be used to exclude it eg
ActiveScaffold.exclude_bridges = [:cancan, :ancestry] if you are using Activescaffold as a gem add to initializer if you are using Activescaffold as a plugin add to active_scaffold_env.rb
# File lib/active_scaffold.rb, line 160 def self.exclude_bridges=(bridges) @@exclude_bridges = bridges end
# File lib/active_scaffold.rb, line 64 def self.included(base) base.extend(ClassMethods) base.module_eval do # TODO: these should be in actions/core before_filter :handle_user_settings before_filter :check_input_device end base.helper_method :touch_device? base.helper_method :hover_via_click? base.helper_method :active_scaffold_constraints end
# File lib/active_scaffold.rb, line 150 def self.js_config @@js_config ||= {:scroll_on_close => :checkInViewport} end
# File lib/active_scaffold.rb, line 146 def self.js_config=(config) @@js_config = config end
# File lib/active_scaffold.rb, line 138 def self.js_framework @@js_framework ||= if defined? Jquery :jquery elsif defined? PrototypeRails :prototype end end
# File lib/active_scaffold.rb, line 134 def self.js_framework=(framework) @@js_framework = framework end
# File lib/active_scaffold.rb, line 168 def self.root File.dirname(__FILE__) + "/.." end
# File lib/active_scaffold.rb, line 77 def self.set_defaults(&block) ActiveScaffold::Config::Core.configure &block end
# File lib/active_scaffold.rb, line 81 def active_scaffold_config self.class.active_scaffold_config end
# File lib/active_scaffold.rb, line 85 def active_scaffold_config_for(klass) self.class.active_scaffold_config_for(klass) end
# File lib/active_scaffold.rb, line 94 def active_scaffold_session_storage(id = nil) session_index = active_scaffold_session_storage_key(id) session[session_index] ||= {} session[session_index] end
# File lib/active_scaffold.rb, line 89 def active_scaffold_session_storage_key(id = nil) id ||= params[:eid] || "#{params[:controller]}#{"_#{nested.parent_id}" if nested?}" "as:#{id}" end
# File lib/active_scaffold.rb, line 116 def check_input_device if request.env["HTTP_USER_AGENT"] && request.env["HTTP_USER_AGENT"][/(iPhone|iPod|iPad)/] session[:input_device_type] = 'TOUCH' session[:hover_supported] = false else session[:input_device_type] = 'MOUSE' session[:hover_supported] = true end if session[:input_device_type].nil? end
# File lib/active_scaffold.rb, line 100 def clear_storage session_index = active_scaffold_session_storage_key session.delete(session_index) unless session[session_index].present? end
at some point we need to pass the session and params into config. we'll just take care of that before any particular action occurs by passing those hashes off to the UserSettings class of each action.
# File lib/active_scaffold.rb, line 106 def handle_user_settings if self.class.uses_active_scaffold? active_scaffold_config.actions.each do |action_name| conf_instance = active_scaffold_config.send(action_name) rescue next next if conf_instance.class::UserSettings == ActiveScaffold::Config::Base::UserSettings # if it hasn't been extended, skip it conf_instance.user = conf_instance.class::UserSettings.new(conf_instance, active_scaffold_session_storage, params) end end end
# File lib/active_scaffold.rb, line 130 def hover_via_click? session[:hover_supported] == false end
# File lib/active_scaffold.rb, line 126 def touch_device? session[:input_device_type] == 'TOUCH' end