Sha256: b2b5d1bc551b816e1dea99a79091bc1110d4ae51af744bf756c115aa5e79f7f0

Contents?: true

Size: 1.76 KB

Versions: 1

Compression:

Stored size: 1.76 KB

Contents

require 'action_view'

module RailsUtils
  module ActionViewExtensions
    def page_controller_class
      controller.class.to_s.sub(/Controller$/, "").underscore.sub(/\//, "_")
    end

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

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

    def javascript_initialization
      application_name = Rails.application.class.parent_name

      javascript_tag <<-JS
        #{application_name}.init();
        if(#{application_name}.#{page_controller_class}) {
          if(#{application_name}.#{page_controller_class}.init) { #{application_name}.#{page_controller_class}.init(); }
          if(#{application_name}.#{page_controller_class}.init_#{page_action_class}) { #{application_name}.#{page_controller_class}.init_#{page_action_class}(); }
        }
      JS
    end

    def flash_messages
      html = ""
      flash.each do |key, message|
        html <<
          content_tag(:div, class: "#{flash_class(key.to_sym)} fade in") do
            content = ""
            content << content_tag(:button, "x", type: "button", class: "close", "data-dismiss" => "alert")
            content << message
            content.html_safe
          end
      end
      html.html_safe
    end

    private

    def flash_class(key)
      case key
        when :success
          "alert alert-success"
        when :notice
          "alert alert-info"
        when :error
          "alert alert-danger alert-error"
        when :alert
          "alert alert-danger alert-error"
        else
          "alert alert-#{key}"
      end
    end
  end
end

ActionView::Base.send :include, RailsUtils::ActionViewExtensions

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails_utils-3.1.2 lib/rails_utils.rb