Sha256: d1a1819daaef3282f47f3d6c63686a464595e6d091e197417875216760d69021

Contents?: true

Size: 922 Bytes

Versions: 1

Compression:

Stored size: 922 Bytes

Contents

module MultiHelper
  module Navigation
    module Exceptions
      class FieldRequired < Exception
        def initialize(field)
          @message = "A #{field} is required!"
        end
      end
    end
    class Group
      attr_reader :name, :options
      attr_accessor :items, :logger
      def initialize(name, options = {})
        @name = name
        @options = options
        @options[:id] ||= "#{name.to_s.underscore.gsub('_', '-')}-navigation"
        @options[:class] ||= @options[:id]
        @items = []
      end
      def add(name, options = {})
        item = Item.new(name, options)
        yield(item) if block_given?
        @items ||= []
        @items << item
      end
      def name=(value)
        raise MultiHelper::Navigation::Exceptions::FieldRequired.new("name") if value.blank?
        @name = value
      end
      def options=(opts)
        @options = opts
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lucasefe-multi_helper-0.0.1 lib/multi_helper/navigation/group.rb