require 'finix/version' unless defined? Finix::VERSION require 'finix/client' require 'finix/error' module Finix @client = nil @config = {:root_url => 'https://localhost/processing'} @hypermedia_registry = {} class << self attr_accessor :client attr_accessor :config attr_accessor :hypermedia_registry def configure(options={}) unless options[:root_url].nil? # reset us/pass as well if user update :root_url @config = {} end @config = @config.merge(options) @config[:user] = @config[:user].strip unless @config[:user].nil? @config[:password] = @config[:password].strip unless @config[:password].nil? @client = Finix::Client.new @config end def split_the_href(href) URI.parse(href).path.sub(/\/$/, '').split('/') end def get_href(cls) href = Finix.hypermedia_registry.key(cls) href = Finix.hypermedia_registry.key(cls.superclass) if href.nil? href end def from_hypermedia_registry(href, attributes={}) split_uri = split_the_href(href) split_uri.reverse!.each do |resource| cls = Finix.hypermedia_registry[resource] cls = cls.send :hypermedia_subtype, attributes if not cls.nil? and cls.respond_to?(:hypermedia_subtype) return cls unless cls.nil? end Finix::UnknownResource end def get(*args, &block) self.client.get *args end def post(*args, &block) self.client.post *args end def put(*args, &block) self.client.put *args end end end require 'finix/resources'