Sha256: 9dab5359b647f4ef5ddf0cfefea2355990ce65960e9c7927f8b4c61a34d4e75d
Contents?: true
Size: 2 KB
Versions: 1
Compression:
Stored size: 2 KB
Contents
require 'openfire_admin/html_parser' require 'openfire_admin/admin_client' module OpenfireAdmin class AdminClient def remove_property(name) post('/server-properties.jsp', 'propName' => name, 'del'=>'true') do |res| raise ResponceException.new("cant save",res) if res.code != "302" or res['location'] !~ /deletesuccess=true$/ end end def set_property(name, value) post('/server-properties.jsp', 'propName' => name, 'propValue'=>value.to_s, 'save'=>'Save Property') do |res| raise ResponceException.new("cant save",res) if res.code != "302" end end def get_property(name) post("/server-properties.jsp", "edit"=>"true", "propName"=>name) do |res| ta = HtmlParser.new(res.body).at('//textarea[@name="propValue"]') raise ResponceException.new("not found textarea",res) unless ta ta.text.to_s end end def get_properties ret = {} get("/server-properties.jsp") do |res| raise ResponceException.new("can't read",res) unless res.code== "200" doc = HtmlParser.new(res.body) doc.search('//h1/parent::node()//table/tbody/tr[@class=""]').each do |tr| v = tr.at('//td[2]//span')[:title] v = "" if v == NBSP ret[tr.at('//td//span')[:title]]= v end end ret end end # System property map class PropertyMap def initialize(client) @client = client reload end def inspect @cache.inspect end # get system property def []( name ) v = @cache[name] v = @client.get_property(name) if v.nil? and @cache.has_key?(name) v end # reload cache def reload @cache = @client.get_properties self end # remove property def remove(name) @client.remove_property(name) end # set/add property def []=(name,value) if value.nil? remove(name) else @client.set_property(name, value) @cache[name]=value end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
openfire_admin-0.0.3 | lib/openfire_admin/property_map.rb |