Sha256: 64bfb3bc451fba15e568715f9c04a7ee9ac4b3ee06e92163e94dda2f6aba05c6

Contents?: true

Size: 674 Bytes

Versions: 1

Compression:

Stored size: 674 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)
      @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

1 entries across 1 versions & 1 rubygems

Version Path
orange-0.0.4 lib/orange/resources/admin_resource.rb