Sha256: 4bb3ca2fe4ce23813c82b1e4e2022c7f494fdadcb206c4b9b400fba1298cebf3

Contents?: true

Size: 1.37 KB

Versions: 4

Compression:

Stored size: 1.37 KB

Contents

# encoding: utf-8
require 'mab'

module Plur
  module Helpers
    module View
      def current_locale
        I18n.locale.to_s
      end

      def rtl_locales
        %w(ar ckb fa he ug)
      end

      def rtl?
        rtl_locales.include? current_locale
      end

      def orientation
        rtl? ? 'rtl' : 'ltr'
      end

      def notifications
        return if flash.blank?

        map_classes = {
          notice: 'alert-success',
          alert: 'alert-error'
        }

        build_html do
          div class: 'notifications' do
            flash.each do |name, msg|
              if msg.is_a? String
                classes = ['alert', map_classes[name], 'fadeout']
                div msg, :class => classes.join(' '), 'data-dismiss' => 'alert'
              end
            end
          end
        end
      end

      def namespace_name
        splitted = controller.class.name.split('::')
        (splitted.size > 1) ? splitted.first.downcase : nil
      end

      def body_attributes
        classes  = []
        classes << [controller_name, action_name].join('-')
        classes << namespace_name unless namespace_name.nil?
        classes << orientation

        { dir: orientation, class: classes.join(' ') }
      end

      def build_html(assigns = {}, &block)
        ::Mab::PrettyBuilder.new(assigns, self, &block).to_s.html_safe
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
plur-0.1.0 lib/plur/helpers/view.rb
plur-0.0.4 lib/plur/helpers/view.rb
plur-0.0.3 lib/plur/helpers/view.rb
plur-0.0.2 lib/plur/helpers/view.rb