Module: ActiveScaffold

Defined in:
lib/active_scaffold.rb,
lib/active_scaffold/engine.rb,
lib/active_scaffold/finder.rb,
lib/active_scaffold/bridges.rb,
lib/active_scaffold/version.rb,
lib/active_scaffold/constraints.rb,
lib/active_scaffold/configurable.rb,
lib/active_scaffold/marked_model.rb,
lib/active_scaffold/attribute_params.rb,
lib/active_scaffold/helpers/id_helpers.rb,
lib/active_scaffold/helpers/view_helpers.rb,
lib/active_scaffold/bridges/dragonfly/form_ui.rb,
lib/active_scaffold/bridges/dragonfly/list_ui.rb,
lib/active_scaffold/bridges/paperclip/list_ui.rb,
lib/active_scaffold/bridges/paperclip/form_ui.rb,
lib/active_scaffold/helpers/pagination_helpers.rb,
lib/active_scaffold/helpers/controller_helpers.rb,
lib/active_scaffold/bridges/shared/date_bridge.rb,
lib/active_scaffold/helpers/list_column_helpers.rb,
lib/active_scaffold/bridges/file_column/form_ui.rb,
lib/active_scaffold/bridges/carrierwave/list_ui.rb,
lib/active_scaffold/bridges/carrierwave/form_ui.rb,
lib/active_scaffold/helpers/form_column_helpers.rb,
lib/active_scaffold/bridges/file_column/list_ui.rb,
lib/active_scaffold/helpers/show_column_helpers.rb,
lib/active_scaffold/helpers/association_helpers.rb,
lib/active_scaffold/helpers/search_column_helpers.rb,
lib/active_scaffold/helpers/human_condition_helpers.rb,
lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb,
lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb,
lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb,
lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb,
lib/active_scaffold/bridges/file_column/file_column_helpers.rb,
lib/active_scaffold/bridges/dragonfly/dragonfly_bridge_helpers.rb,
lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb,
lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers.rb,
lib/active_scaffold/bridges/carrierwave/carrierwave_bridge_helpers.rb

Defined Under Namespace

Modules: Actions, AttributeParams, Bridges, ClassMethods, Config, Configurable, Constraints, DataStructures, Finder, Helpers, MarkedModel, Version Classes: ActionNotAllowed, ControllerNotFound, DependencyFailure, Engine, MalformedConstraint, RecordNotAllowed, ReverseAssociationRequired

Class Method Summary (collapse)

Instance Method Summary (collapse)

Class Method Details

+ (Object) autoload_subdir(dir, mod = self, root = File.dirname(__FILE__))



31
32
33
34
35
36
37
38
# 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

+ (Object) exclude_bridges



154
155
156
# File 'lib/active_scaffold.rb', line 154

def self.exclude_bridges
  @@exclude_bridges ||= []
end

+ (Object) exclude_bridges=(bridges)

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


150
151
152
# File 'lib/active_scaffold.rb', line 150

def self.exclude_bridges=(bridges)
  @@exclude_bridges = bridges
end

+ (Object) included(base)



63
64
65
66
67
68
69
70
71
72
73
# 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?
end

+ (Object) js_config



140
141
142
# File 'lib/active_scaffold.rb', line 140

def self.js_config
  @@js_config ||= {:scroll_on_close => :checkInViewport}
end

+ (Object) js_config=(config)



136
137
138
# File 'lib/active_scaffold.rb', line 136

def self.js_config=(config)
  @@js_config = config
end

+ (Object) js_framework



128
129
130
131
132
133
134
# File 'lib/active_scaffold.rb', line 128

def self.js_framework
  @@js_framework ||= if defined? Jquery
    :jquery
  elsif defined? PrototypeRails
    :prototype
  end
end

+ (Object) js_framework=(framework)



124
125
126
# File 'lib/active_scaffold.rb', line 124

def self.js_framework=(framework)
  @@js_framework = framework
end

+ (Object) root



158
159
160
# File 'lib/active_scaffold.rb', line 158

def self.root
  File.dirname(__FILE__) + "/.."
end

+ (Object) set_defaults(&block)



75
76
77
# File 'lib/active_scaffold.rb', line 75

def self.set_defaults(&block)
  ActiveScaffold::Config::Core.configure &block
end

Instance Method Details

- (Object) active_scaffold_config



79
80
81
# File 'lib/active_scaffold.rb', line 79

def active_scaffold_config
  self.class.active_scaffold_config
end

- (Object) active_scaffold_config_for(klass)



83
84
85
# File 'lib/active_scaffold.rb', line 83

def active_scaffold_config_for(klass)
  self.class.active_scaffold_config_for(klass)
end

- (Object) active_scaffold_session_storage(id = nil)



87
88
89
90
91
92
# File 'lib/active_scaffold.rb', line 87

def active_scaffold_session_storage(id = nil)
  id ||= params[:eid] || "#{params[:controller]}#{"_#{nested.parent_id}" if nested?}"
  session_index = "as:#{id}"
  session[session_index] ||= {}
  session[session_index]
end

- (Object) check_input_device



106
107
108
109
110
111
112
113
114
# File 'lib/active_scaffold.rb', line 106

def check_input_device
 if request.env["HTTP_USER_AGENT"] && request.env["HTTP_USER_AGENT"][/(iPhone|iPod|iPad)/i]
   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

- (Object) handle_user_settings

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.



95
96
97
98
99
100
101
102
103
104
# File 'lib/active_scaffold.rb', line 95

def 
  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
      active_scaffold_session_storage[action_name] ||= {}
      conf_instance.user = conf_instance.class::UserSettings.new(conf_instance, active_scaffold_session_storage[action_name], params)
    end
  end
end

- (Boolean) hover_via_click?

Returns:

  • (Boolean)


120
121
122
# File 'lib/active_scaffold.rb', line 120

def hover_via_click?
  session[:hover_supported] == false
end

- (Boolean) touch_device?

Returns:

  • (Boolean)


116
117
118
# File 'lib/active_scaffold.rb', line 116

def touch_device?
  session[:input_device_type] == 'TOUCH'
end