bolster 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e0e28364ff6dd31f50a96a983ddab6409f4bd798
4
- data.tar.gz: ae7c69fb931c1c24b94c113805e3a16d38f56184
3
+ metadata.gz: 0dc598e35aac4a69466775b6bdfbea7a74b6594f
4
+ data.tar.gz: 31575d6f5fb0e0e4272fc6db25f1d5e6c2554775
5
5
  SHA512:
6
- metadata.gz: dbf7f4c2abafe21570dce8329ccef330dc832c55ec45de6a38feaaff9cf1a4ce4bcbc86534daef8961154e5459a39e1e6f6a52b8c96b569bd47c82a9166869ab
7
- data.tar.gz: 3f70dfd9e9d70a9281fb2ab356292e4e40caf9853e58fc08c61d4145c12cbfaf28440b553bae98c78e86b2abe146a684f848c0958b775a6aaa424867d8b462cf
6
+ metadata.gz: 129c938ed56ef0df819f60e0fda04f03b791f1f2520986632ddbffb4d0dd5977cad61d27285908ac58acd99d50bb88c9008c5f4d295f10bd8f137067b6377eeb
7
+ data.tar.gz: f68dd83e6cfa25aeaf88137acf48881ef3c2a6e1977236455ec40a6fefa5c86dc696785b84b9f0e115a57c2f874d2aba552604a376e1151918f3217066139ab9
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Bolster
2
2
 
3
- TODO: Write a gem description
3
+ Basic RESTful (insert buzzwords here) CouchDB wrapper.
4
4
 
5
5
  ## Installation
6
6
 
@@ -18,7 +18,14 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- TODO: Write usage instructions here
21
+ ```ruby
22
+ require 'bolster'
23
+
24
+ couch = Bolster::Server.new('localhost', '5984')
25
+ puts couch.get('/')
26
+
27
+ #=> {"couchdb":"Welcome","uuid":"...","version":"1.5.0","vendor":{"version":"1.5.0","name":"The Apache Software Foundation"}}
28
+ ```
22
29
 
23
30
  ## Contributing
24
31
 
data/lib/bolster.rb CHANGED
@@ -1,44 +1,50 @@
1
1
  require 'bolster/version'
2
2
  require 'net/http'
3
+ require 'uri'
3
4
 
4
5
  module Bolster
5
6
  class Server
6
- def initialize(host, port, options = {})
7
- @host = host
8
- @port = port
7
+ def initialize(uri, options = {})
8
+ @uri = URI(uri)
9
9
  @options = options
10
10
  end
11
11
 
12
12
  def delete(uri)
13
- res = request(Net::HTTP::Delete.new(uri))
13
+ res = request(Net::HTTP::Delete.new(@uri.request_uri + uri))
14
14
  res.body
15
15
  end
16
16
 
17
17
  def get(uri)
18
- res = request(Net::HTTP::Get.new(uri))
18
+ res = request(Net::HTTP::Get.new(@uri.request_uri + uri))
19
19
  res.body
20
20
  end
21
21
 
22
22
  def put(uri, json)
23
- req = Net::HTTP::Put.new(uri)
23
+ req = Net::HTTP::Put.new(@uri.request_uri + uri)
24
24
  req['content-type'] = 'application/json'
25
25
  req.body = json
26
26
  request(req)
27
27
  end
28
28
 
29
29
  def post(uri, json)
30
- req = Net::HTTP::Post.new(uri)
30
+ req = Net::HTTP::Post.new(@uri.request_uri + uri)
31
31
  req['content-type'] = 'application/json'
32
32
  req.body = json
33
33
  request(req)
34
34
  end
35
35
 
36
36
  def request(req)
37
+ http = Net::HTTP.new(@uri.hostname, @uri.port)
38
+ if @uri.class == URI::HTTPS
39
+ require 'net/https'
40
+ http.use_ssl = true
41
+ end
42
+
37
43
  if @options.has_key?(:user) && @options.has_key?(:password)
38
44
  req.basic_auth(@options[:user], @options[:password])
39
45
  end
40
46
 
41
- res = Net::HTTP.start(@host, @port) { |http| http.request(req) }
47
+ res = http.start { |h| h.request(req) }
42
48
  unless res.kind_of?(Net::HTTPSuccess)
43
49
  handle_error(req, res)
44
50
  end
@@ -53,4 +59,4 @@ module Bolster
53
59
  raise e
54
60
  end
55
61
  end
56
- end
62
+ end
@@ -1,3 +1,3 @@
1
1
  module Bolster
2
- VERSION = '0.0.5'
3
- end
2
+ VERSION = '0.0.6'
3
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bolster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leon Rische
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-20 00:00:00.000000000 Z
11
+ date: 2013-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler