Sha256: ef46b5df0319beacafe1ce0d15df3f61e60bf953938f4387f205740adff8152f
Contents?: true
Size: 1.09 KB
Versions: 5
Compression:
Stored size: 1.09 KB
Contents
require 'yaml' require 'mechanize' module Roart module Connections RequiredConfig = %w(server user pass) end class Connection attr_reader :agent def initialize(conf) if conf.is_a?(String) raise "Loading Config File not yet implemented" elsif conf.is_a?(Hash) Roart::check_keys!(conf, Roart::Connections::RequiredConfig) @conf = conf end @agent = login add_methods! end def rest_path self.server + '/REST/1.0/' end def get(uri) @agent.get(uri).body end def post(uri, payload) @agent.post(uri, payload).body end protected def login agent = WWW::Mechanize.new page = agent.get(@conf[:server]) form = page.form('login') form.user = @conf[:user] form.pass = @conf[:pass] page = agent.submit form agent end def add_methods! @conf.each do |key, value| (class << self; self; end).send :define_method, key do return value end end end end end
Version data entries
5 entries across 5 versions & 3 rubygems