Sha256: 59c8bdfce888cafc9c1e8d1d85e00ca5b6e534787fe6e1358001dad40ebfdc8c

Contents?: true

Size: 828 Bytes

Versions: 49

Compression:

Stored size: 828 Bytes

Contents

module Orange
  # Admin resource is a resource to help in building administration
  # panels. 
  class AdminResource < Resource
    def afterLoad
      @links = {}
    end
    
    def add_link(section, *args)
      opts = args.extract_with_defaults(:position => 0)
      @links[section] = [] unless @links.has_key?(section)
      matches = @links[section].select{|i| i[:resource] == opts[:resource] && i[:text] == opts[:text]}
      return @links[section] unless matches.empty?
      @links[section].insert(opts.delete(:position), opts)
      @links[section].compact!
      @links[section].uniq!
    end
    
    def links(packet)
      @links.each do |k,section|
        section.each {|link| 
          link[:href] = orange[:mapper].route_to(packet, link[:resource], link[:resource_args])
        }
      end
    end
  end
end

Version data entries

49 entries across 49 versions & 2 rubygems

Version Path
orange-more-0.7.3 lib/orange-more/administration/resources/admin_resource.rb
orange-more-0.7.2 lib/orange-more/administration/resources/admin_resource.rb
orange-more-0.7.1 lib/orange-more/administration/resources/admin_resource.rb
orange-more-0.6.5 lib/orange-more/administration/resources/admin_resource.rb
orange-more-0.6.4 lib/orange-more/administration/resources/admin_resource.rb
orange-more-0.6.3 lib/orange-more/administration/resources/admin_resource.rb
orange-more-0.6.2 lib/orange-more/administration/resources/admin_resource.rb
orange-more-0.6.0 lib/orange-more/administration/resources/admin_resource.rb
orange-more-0.5.8 lib/orange-more/administration/resources/admin_resource.rb
orange-more-0.5.7 lib/orange-more/administration/resources/admin_resource.rb
orange-0.5.5 lib/orange-more/administration/resources/admin_resource.rb
orange-0.5.4 lib/orange-more/administration/resources/admin_resource.rb
orange-0.5.3 lib/orange-more/administration/resources/admin_resource.rb
orange-0.5.2 lib/orange-more/administration/resources/admin_resource.rb
orange-0.5.1 lib/orange-more/administration/resources/admin_resource.rb
orange-0.4.0 lib/orange-more/administration/resources/admin_resource.rb
orange-0.3.9 lib/orange-more/administration/resources/admin_resource.rb
orange-0.3.8 lib/orange-more/administration/resources/admin_resource.rb
orange-0.3.7 lib/orange-more/administration/resources/admin_resource.rb
orange-0.3.6 lib/orange-more/administration/resources/admin_resource.rb