Class: Zena::Remote::Connection
- Inherits:
-
Object
- Object
- Zena::Remote::Connection
- Defined in:
- lib/zena/remote/connection.rb
Class Method Summary collapse
-
.connect(uri, token) ⇒ Object
Return a sub-class of Zena::Remote::Connection with the specified connection tokens built in.
Instance Method Summary collapse
-
#initialize ⇒ Connection
constructor
A new instance of Connection.
Constructor Details
#initialize ⇒ Connection
Returns a new instance of Connection.
6 7 |
# File 'lib/zena/remote/connection.rb', line 6 def initialize end |
Class Method Details
.connect(uri, token) ⇒ Object
Return a sub-class of Zena::Remote::Connection with the specified connection tokens built in. We create a new class because HTTParty works this way (class globals).
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/zena/remote/connection.rb', line 11 def self.connect(uri, token) Class.new(self) do include HTTMultiParty extend Zena::Remote::Interface::ConnectionMethods class << self alias http_delete delete alias delete destroy end @found_classes = {} @uri = uri @message_logger = STDOUT def self.[](class_name) @found_classes[class_name] ||= Zena::Remote::Klass.new(self, class_name) end def self.logger @logger ||= default_logger end def self.(msg) logger = @message_logger || self.logger if logger.respond_to?(:info) logger.info "-\n" logger.info " %-10s: %s" % ['operation', 'message'] logger.info " %-10s: %s" % ['message', msg.inspect] else @message_logger.send(:puts, msg) end end def self.(logger) @message_logger = logger end def self.default_logger host = URI.parse(@uri =~ %r{^\w+://} ? @uri : "http://#{@uri}").host log_path = "log/#{host}.log" dir = File.dirname(log_path) Dir.mkdir(dir) unless File.exist?(dir) Logger.new(File.open(log_path, 'ab')) end def self.logger=(logger) @logger = logger end headers 'Accept' => 'application/xml' headers 'HTTP_X_AUTHENTICATION_TOKEN' => token base_uri uri end end |