summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
Diffstat (limited to 'extra')
-rw-r--r--extra/rest_client.rb28
1 files changed, 25 insertions, 3 deletions
diff --git a/extra/rest_client.rb b/extra/rest_client.rb
index a16bd42..35d93ae 100644
--- a/extra/rest_client.rb
+++ b/extra/rest_client.rb
@@ -2,8 +2,30 @@ module Oxidized
class RestClient
require 'net/http'
require 'json'
- HOST = 'localhost'
- PORT = 8888
+ require 'uri'
+ require 'asetus'
+
+ class Config
+ Root = Root = ENV['OXIDIZED_HOME'] || File.join(ENV['HOME'], '.config', 'oxidized')
+ end
+
+ CFGS = Asetus.new :name=>'oxidized', :load=>false, :key_to_s=>true
+ CFGS.default.rest = '127.0.0.1:8888'
+
+ begin
+ CFGS.load
+ rescue => error
+ raise InvalidConfig, "Error loading config: #{error.message}"
+ end
+
+ restcfg = CFGS.cfg.rest
+ unless restcfg.match(/^http:\/\//)
+ restcfg.insert(0, 'http://')
+ end
+
+ HOST = URI(restcfg).host
+ PORT = URI(restcfg).port
+ PATH = URI(restcfg).path
class << self
def next opt={}, host=HOST, port=PORT
@@ -18,7 +40,7 @@ module Oxidized
def next opt
data = JSON.dump opt
- @web.put '/node/next/' + opt[:name].to_s, data
+ @web.put PATH + '/node/next/' + opt[:name].to_s, data
end
end