Module: RailsUtils::ActionViewExtensions

Defined in:
lib/rails_utils.rb

Instance Method Summary collapse

Instance Method Details

#flash_messages(options = {}) ⇒ Object



50
51
52
53
54
55
56
57
# File 'lib/rails_utils.rb', line 50

def flash_messages(options = {})
  flash.collect do |key, message|
    next if message.blank?
    next if key.to_s == 'timedout'

    (:div, (:button, options[:button_html] || "x", type: "button", class: options[:button_class] || "close", "data-dismiss" => "alert") + message, class: "#{flash_class(key)} fade in #{options[:class]}")
  end.join("\n").html_safe
end

#javascript_initialization(options = {}) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/rails_utils.rb', line 30

def javascript_initialization(options = {})
  application_name  = Rails.application.class.parent_name
  js_namespace_name = page_controller_class_underscored
  js_function_name  = page_action_class

  if content_for?(:js_init_method)
    js_custom_name = content_for(:js_init_method)
    custom_js_init_method = "if(#{application_name}.#{js_namespace_name}.init_#{js_custom_name}) { #{application_name}.#{js_namespace_name}.init_#{js_custom_name}(); }"
  end

  javascript_tag <<-JS
    #{application_name}.init();
    if(#{application_name}.#{js_namespace_name}) {
      if(#{application_name}.#{js_namespace_name}.init) { #{application_name}.#{js_namespace_name}.init(); }
      if(#{application_name}.#{js_namespace_name}.init_#{js_function_name}) { #{application_name}.#{js_namespace_name}.init_#{js_function_name}(); }
      #{custom_js_init_method}
    }
  JS
end

#page_action_classObject



15
16
17
18
# File 'lib/rails_utils.rb', line 15

def page_action_class
  class_mappings = { "create" => "new", "update" => "edit" }
  class_mappings[controller.action_name] || controller.action_name
end

#page_classObject



20
21
22
# File 'lib/rails_utils.rb', line 20

def page_class
  "#{page_controller_class} #{page_action_class}"
end

#page_controller_classObject



6
7
8
9
10
11
12
13
# File 'lib/rails_utils.rb', line 6

def page_controller_class
  case RailsUtils.configuration.selector_format.to_sym
  when :hyphenated
    page_controller_class_hyphenated
  else # :underscored
    page_controller_class_underscored
  end
end

#page_title(options = {}) ⇒ Object



24
25
26
27
28
# File 'lib/rails_utils.rb', line 24

def page_title(options={})
  default_page_title = "#{page_controller_class.capitalize} #{page_action_class.capitalize}"
  i18n_options = { default: default_page_title }.merge!(options)
  I18n.t("#{page_controller_class}.#{page_action_class}.title", i18n_options)
end