roozer_client 0.5 → 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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YjYyZDE2M2ViYTRhZjc2MzY4YmViYmFiY2Y5OWYyMDcyMDc2ZDFmOA==
4
+ N2I3YzMwNTk0NWRlOTZmMmQyYWFhNTg3Njc2NTQyYWFiYmQ4MmVjZQ==
5
5
  data.tar.gz: !binary |-
6
- Yzg0NDQ1NTA4MzViOGJkYTA1M2ZkMDlhY2Y2NjI0Y2VlMWZiYzgyNg==
6
+ YWYzMjE3NDI5MzdkZDc3MmZhNGM3YjFlOTJkNWM2NTFjZDg2YzA2ZA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- Njg1OTc1MWMyNzgxMzUwMDBhZThlOWM3MmY0YTczMmQ0MTVhMTBmYjgwY2M0
10
- MzVhZWJmZTMzNzdjOWEzZmI1M2UzYzcxMGUwZTk5MmRmNTBiYzIzN2NjNTMz
11
- Mzg5YjhlMmIzZjQyNjE1NTYzM2YzMTc2YmIwODgzYzI4ZmEwNDg=
9
+ ODIxNjgxZWExNzBmMzU2N2U3MDM3YzIxNzcyNzA0MDM1OGZmYjljNDI0Njdl
10
+ YzZmYjExYTZlY2IxMWQ3MzVhNGI4Njk5NGE2NWQwMDAyOWI3MjQ3Zjg5YTll
11
+ ODM0YjZjZGRjMTA0YmNiYzM1Yjk4NmM2ZWRjZDQ4OTFjMWUxNDU=
12
12
  data.tar.gz: !binary |-
13
- NjQ1ZWRlYzI2ZTEwYTZlOTJmN2FmYjY0NTM2MDkzZjIxNDQ4OGFiNDkzNzZi
14
- NGFmNjdhNDI2ZTFmYzEyZGM4ZGZjZTI4YjdlMDY2MmNjYzUwMDJkNjdjZDI1
15
- MjhmZTUyNGIwMjYyMzAxNmJhN2YwMWUyYWNiNTViMmNjZGIxN2Q=
13
+ N2U0ZTQzZDJmM2UyNTU0MzcxNjBlZDVmMDE1Zjc1YzEwYmUzNzlmMzczZTQ4
14
+ MThhMzMwMzhiNWM5OTE4OTRkZWE4Yzg4NDkzNDk2Yjk5ZGZlOTk1MzZkMjIy
15
+ MTVhYmQzNDYwODgxODZhYjA4MGNmOTQ1M2U4Y2YyNjQ2NjYzYjM=
data/CHANGELOG CHANGED
@@ -1,3 +1,4 @@
1
+ v0.6. support delete and update methods
1
2
  v0.5. Catch more network errors
2
3
  v0.4. Drop the requirement for json gem
3
4
  v0.3. Rescue from 500 errors & dropped connections
data/README CHANGED
@@ -15,4 +15,7 @@ rc.list
15
15
  rc['subpath']
16
16
  => { "data" => "abc" }
17
17
 
18
- rc.request(:delete, 'subpath/data')
18
+ rc.delete 'subpath/data'
19
+
20
+ # sets the data only if is different to what is already there
21
+ rc.update(path, {...data...})
data/lib/roozer_client.rb CHANGED
@@ -35,6 +35,15 @@ class RoozerClient
35
35
  end
36
36
  alias :[]= :put
37
37
 
38
+ def delete(path)
39
+ request(:delete, path)
40
+ end
41
+
42
+ def update(path, data)
43
+ existing_data = get(path) rescue nil
44
+ put(path, data) unless existing_data == data
45
+ end
46
+
38
47
  def request(method, path, data=nil)
39
48
  begin
40
49
  url = @urls.first
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "roozer_client"
5
- s.version = "0.5"
5
+ s.version = "0.6"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Andrew Snow"]
9
- s.date = "2013-03-26"
9
+ s.date = "2013-04-11"
10
10
  s.description = "Ruby client for Roozer server"
11
11
  s.email = "andrew@modulus.org"
12
12
  s.extra_rdoc_files = ["CHANGELOG", "README", "lib/roozer_client.rb"]
data/test/test_all.rb CHANGED
@@ -32,6 +32,18 @@ class TestRoozerClient < Test::Unit::TestCase
32
32
  assert_equal datahash, result
33
33
  end
34
34
 
35
+ def test_delete
36
+ result = nil
37
+ datahash = {'a' => 'b'}
38
+ response = accept_request(204, '') do
39
+ @client.delete('sub1')
40
+ end
41
+ assert response
42
+ assert_equal 'DELETE', response.request_method
43
+ assert_equal '/test/sub1', response.path
44
+ end
45
+
46
+
35
47
  def test_put
36
48
  response = accept_request(204, '') do
37
49
  @client.put('sub2', x1: 'x2')
@@ -42,6 +54,7 @@ class TestRoozerClient < Test::Unit::TestCase
42
54
  assert_equal '{"value":{"x1":"x2"}}', response.body
43
55
  end
44
56
 
57
+
45
58
  def test_get_404
46
59
  result = nil
47
60
  response = accept_request(404, {error: 'not found'}.to_json) do
@@ -52,6 +65,19 @@ class TestRoozerClient < Test::Unit::TestCase
52
65
  assert_nil result
53
66
  end
54
67
 
68
+ def test_update_same
69
+ result = nil
70
+ datahash = {'a' => 'b'}
71
+ response = accept_request(200, {name:"/test/sub1",type:"file",value:datahash}.to_json) do
72
+ result = @client.update('sub1', datahash)
73
+ end
74
+ assert response
75
+ assert_equal 'GET', response.request_method
76
+ assert_equal '/test/sub1', response.path
77
+ assert_equal nil, result
78
+ end
79
+
80
+
55
81
  # def test_failover
56
82
  # @client = RoozerClient.new(url: "http://127.0.0.1:7997;#{@url}", path: 'test')
57
83
  # test_list
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roozer_client
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.5'
4
+ version: '0.6'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Snow
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-26 00:00:00.000000000 Z
11
+ date: 2013-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  type: :runtime