Sha256: 031de9566b559998571f7ad0f557fb34eacbebc065d4c6e16bd160e6b042b5fc

Contents?: true

Size: 1.74 KB

Versions: 21

Compression:

Stored size: 1.74 KB

Contents

#!/usr/bin/env ruby

module Flapjack
  module Persistence
    class Couch
      class Connection
        class << self
          attr_accessor :host, :port
          def setup(options={})
            @host = options[:host]
            @port = options[:port]
            @database = options[:database]
          end
  
          def get(id)
            uri = "/#{@database}/#{id}"
            req = ::Net::HTTP::Get.new(uri)
            request(req)
          end
  
          def post(options={})
            document = options[:document]
            uri = "/#{@database}/"
  
            req = ::Net::HTTP::Post.new(uri)
            req["content-type"] = "application/json"
            req.body = document.to_json
  
            request(req) 
          end
  
          def put(options={})
            document = options[:document]
            uri = "/#{@database}/#{(options[:document]["id"] || options[:document]["_id"])}"
  
            req = ::Net::HTTP::Put.new(uri)
            req["content-type"] = "application/json"
            req.body = document.to_json
  
            request(req) 
          end

          def delete(options={})
            document = options[:document]

            uri = "/#{@database}/#{(options[:document]["id"] || options[:document]["_id"])}"
  
            req = ::Net::HTTP::Put.new(uri)
            req["content-type"] = "application/json"
            req.body = document.to_json

            request(req)
          end
  
          def request(request)
            response = Net::HTTP.start(@host, @port) {|http| http.request(request)}
           
            @parser = Yajl::Parser.new
            hash = @parser.parse(response.body)
          end
        end
      end
    end # class Couch
  end # module Persistence
end # module Flapjack

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
flapjack-0.6.39 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.38 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.37 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.36 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.35 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.34 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.33 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.32 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.31 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.30 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.29 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.28 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.27 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.26 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.25 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.24 lib/flapjack/persistence/couch/connection.rb
flapjack-0.6.23 lib/flapjack/persistence/couch/connection.rb
flapjack-0.5.5 lib/flapjack/persistence/couch/connection.rb
flapjack-0.5.4 lib/flapjack/persistence/couch/connection.rb
flapjack-0.5.3 lib/flapjack/persistence/couch/connection.rb