Sha256: cb4e8e6a56e16573e2b3cf60b0b7898618cf99ed8299902b889848f839427017

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

module Bread
  class Manager
    class Crumbs



      def config(&block)
        @top_scope = TopScope.new
        @top_scope.instance_eval(&block)
      end

      def crumbs_for(controller, crumbset)
        reload
        crumb_scope = CrumbScope.new(controller)
        crumb_blocks_for(crumbset).each do |bl|
          crumb_scope.instance_eval(&bl)
        end
        append_first_and_last(crumb_scope.crumbset)
      end





      private

          def crumb_blocks_for(crumbset)
            crumbset.map { |token| @top_scope.get_crumb_block(token) }
          end
          
          def append_first_and_last(crumbs)
            crumbs.first[:_first] = true
            crumbs.last[:_last] = true
            crumbs
          end

          def reload
            config_file = Rails.root.join "app/lib/bread/crumbs.rb"
            unless File.exists? config_file
              #`rails g bread:install`
              raise "should have config crumbs file"
            end

            load(config_file)
            self
          end



    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bread-0.0.11 lib/bread/manager/crumbs.rb
bread-0.0.10 lib/bread/manager/crumbs.rb
bread-0.0.9 lib/bread/manager/crumbs.rb
bread-0.0.7 lib/bread/manager/crumbs.rb