# File lib/active_scaffold.rb, line 31 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 63 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 76 def self.set_defaults(&block) ActiveScaffold::Config::Core.configure &block end
# File lib/active_scaffold.rb, line 80 def active_scaffold_config self.class.active_scaffold_config end
# File lib/active_scaffold.rb, line 84 def active_scaffold_config_for(klass) self.class.active_scaffold_config_for(klass) end
# File lib/active_scaffold.rb, line 93 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 88 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 99 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 105 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 storage = active_scaffold_config.store_user_settings ? active_scaffold_session_storage : {} conf_instance.user = conf_instance.class::UserSettings.new(conf_instance, 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