btsync_api 0.8.1 → 0.8.2

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.
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
data/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # btsync
2
2
 
3
+ [![Build Status](https://travis-ci.org/pascalj/btsync.png?branch=master)](https://travis-ci.org/pascalj/btsync)
4
+ [![Gem Version](https://badge.fury.io/rb/btsync_api.png)](http://badge.fury.io/rb/btsync_api)
5
+
3
6
  A Ruby wrapper for the [BitTorrent Sync API](http://www.bittorrent.com/sync/developers).
4
7
 
5
8
  ## Installation
@@ -26,7 +29,7 @@ api = BtsyncApi::Api.new(options)
26
29
  api.get_os # => {"os"=>"mac"}
27
30
 
28
31
  # pass arguments to the API
29
- api.add_folder(dir: dirPath, secret: my_secret, selective_sync: 1)
32
+ api.add_folder(dir: dir_path, secret: my_secret, selective_sync: 1)
30
33
 
31
34
  api.remove_folder # raises BtsyncApi::ApiError('Specify all the required parameters for remove_folder')
32
35
  ```
data/lib/btsync/api.rb CHANGED
@@ -2,7 +2,7 @@ require 'net/http'
2
2
  require 'json'
3
3
 
4
4
  module BtsyncApi
5
- class ApiError < Exception
5
+ class ApiError < StandardError
6
6
  attr_reader :error_code
7
7
  def initialize(error_code)
8
8
  @error_code = error_code
@@ -20,7 +20,7 @@ module BtsyncApi
20
20
  params = {method: method.to_s}
21
21
  params.merge!(options)
22
22
  response = do_request(params)
23
- if response['error'] && response['error'] != 0
23
+ if response.is_a?(Hash) && response['error'] && response['error'] != 0
24
24
  raise BtsyncApi::ApiError.new(response['error']), response['message']
25
25
  end
26
26
  response
@@ -1,3 +1,3 @@
1
1
  module BtsyncApi
2
- VERSION = "0.8.1"
2
+ VERSION = "0.8.2"
3
3
  end
@@ -15,7 +15,7 @@ describe BtsyncApi::Api do
15
15
  api.settings[:port].should == 8888
16
16
  end
17
17
  end
18
-
18
+
19
19
  describe "#execute" do
20
20
 
21
21
  it "calls the API" do
@@ -27,6 +27,13 @@ describe BtsyncApi::Api do
27
27
  api.should_receive(:do_request).with(method: 'my_method', foo: 'bar', baz: 'foo')
28
28
  api.execute('my_method', foo: 'bar', baz: 'foo')
29
29
  end
30
+
31
+ it "handles arrays as response" do
32
+ api.stub(:do_request).and_return([])
33
+ expect{
34
+ api.execute('get_folders')
35
+ }.to_not raise_error
36
+ end
30
37
  end
31
38
 
32
39
  describe "#method_missing" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: btsync_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-23 00:00:00.000000000 Z
12
+ date: 2014-01-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -68,6 +68,7 @@ extra_rdoc_files: []
68
68
  files:
69
69
  - .gitignore
70
70
  - .rspec
71
+ - .travis.yml
71
72
  - Gemfile
72
73
  - LICENSE.txt
73
74
  - README.md