Sha256: 9d1a61c8e4c38b787bb3cfe11e1e27d620ee97f954e336597d1b7cee20d0f10d
Contents?: true
Size: 1.09 KB
Versions: 1
Compression:
Stored size: 1.09 KB
Contents
require "fileutils" require 'uri' require "open-uri" require "rubygems" require "rio" module AndParcel class Catalog attr_reader :nick, :path def initialize(path) @path=path @nick=File.basename(path, '.json') end end class CatalogSet def initialize(root) @root=root end def size roster.size end def roster_file File.join(@root, 'catalogs.json') end def roster fn=roster_file if File.exists?(fn) return(JSON.parse(open(fn) {|f| f.read})) end {} end def add(name, url) roster_hash=roster roster_hash[name]={'url'=>url} open(roster_file, "w") {|f| f.puts(roster_hash.to_json)} end def remove(name) roster_hash=roster roster_hash.delete(name) open(roster_file, "w") {|f| f.puts(roster_hash.to_json)} end def names roster.keys end def find(name) roster.each_value do |cat| packages=JSON.parse(open(cat['url']) {|f| f.read}) package=packages['parcels'][name] if package uri=URI.parse cat['url'] return(uri+package['path']) end end nil end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
andparcel-0.1.0 | lib/andparcel/catalog.rb |