tumbz 0.0.1 → 0.0.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/Gemfile CHANGED
@@ -1,4 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
- gem "her", :git => "git://github.com/remiprev/her.git", :branch => "master"
data/README.md CHANGED
@@ -7,17 +7,13 @@ This gem allows you to easily use the [Tum.bz API](http://tum.bz/api). It’s po
7
7
  Add this line to your application's Gemfile:
8
8
 
9
9
  ```ruby
10
- gem 'tumbz'
10
+ gem 'tumbz', :git => "git://github.com/remiprev/tumbz.git", :branch => "master"
11
11
  ```
12
12
 
13
13
  And then execute:
14
14
 
15
15
  $ bundle
16
16
 
17
- Or install it yourself as:
18
-
19
- $ gem install tumbz
20
-
21
17
  ## Usage
22
18
 
23
19
  First, you must define a `configure` block with your API key:
@@ -33,6 +29,9 @@ That’s it! You’ll then be able to use :
33
29
  ```ruby
34
30
  Tumbz::User.find("remi")
35
31
  # => #<Tumbz::User(users/4f0e32936edcb2000100029d) id="4f0e32936edcb2000100029d" username="remi" profile_url="http://tum.bz/u/remi" firstname="Rémi" lastname="Prévost"…>
32
+
33
+ Tumbz::Product.search(:q => "office", :cat => "tv")
34
+ # => [#<Tumbz::Product(products/50b4caaac042690002010e1c) id="50b4caaac042690002010e1c" cat="tv" url="http://tum.bz/tv/50b4caaac042690002010e1c/the-offic..." title="The Office (US)" artist=nil external_id="73244" img_thumb=nil img_cover=""…>]
36
35
  ```
37
36
 
38
37
  Other modules are:
@@ -43,6 +42,7 @@ Other modules are:
43
42
  * `Tumbz::PartnerLookup`
44
43
  * `Tumbz::Product`
45
44
  * `Tumbz::User`
45
+ * `Tumbz::UserSuggestion`
46
46
 
47
47
  The API wrapper is powered by [Her](https://github.com/remiprev/her), so most of [its documentation](https://github.com/remiprev/her) will be helpful.
48
48
 
@@ -52,12 +52,26 @@ Support for OAuth-authenticated calls is supported, but very premitive (not quit
52
52
 
53
53
  ```ruby
54
54
  Tumbz::User.sign_in!("<email>", "<password>")
55
- # => true (next calls will be made as the authenticated user)
55
+ # => "abc123edgfh" (next calls will be made as the authenticated user using this key)
56
56
 
57
- Tumbz::Review.create(:product_external_id => "tt0458339", :positive => "1", :cat => "movie")
57
+ review = Tumbz::Review.create(:product_external_id => "tt0458339", :positive => "1", :cat => "movie")
58
58
  # => #<Tumbz::Review(reviews/50b9ebd7a9d29c000200af7c) id="50b9ebd7a9d29c000200af7c" positive=true text=""…>
59
59
 
60
60
  Tumbz::User.sign_out!
61
+ # => true (next calls will be made anonymously)
62
+
63
+ review = Tumbz::Review.create(:product_external_id => "tt0458339", :positive => "1", :cat => "movie")
64
+ # => #<Tumbz::Review(reviews)>
65
+ review.errors
66
+ # => ["Token is invalid or expired"]
67
+ ```
68
+
69
+ You don’t need to use `User.sign_in!` each time, you can also set the `access_token` manually (eg. if you store it in a session):
70
+
71
+ ```ruby
72
+ Tumbz.access_token = "abc123edgfh"
73
+ review = Tumbz::Review.create(:product_external_id => "tt0458339", :positive => "1", :cat => "movie")
74
+ # => #<Tumbz::Review(reviews/50b9ebd7a9d29c000200af7c) id="50b9ebd7a9d29c000200af7c" positive=true text=""…>
61
75
  ```
62
76
 
63
77
  ## Contributing
@@ -10,7 +10,7 @@ module Tumbz
10
10
  errors = []
11
11
  metadata = json.delete(:metadata) || []
12
12
 
13
- if json[:error].present?
13
+ if json.is_a?(Hash) and json[:error].present?
14
14
  json.delete(:error)
15
15
  json.delete(:message)
16
16
  errors = [json.delete(:developerMessage)]
data/lib/tumbz/model.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Tumbz
2
2
  module Model
3
3
  def error?
4
- self.respond_to?(:error) and !self.error.nil? and self.error != ""
4
+ self.errors.any?
5
5
  end
6
6
  end
7
7
  end
@@ -2,5 +2,6 @@ module Tumbz
2
2
  class PartnerLookup
3
3
  include Her::Model
4
4
  uses_api Tumbz.api
5
+ custom_get :books, :tvshows
5
6
  end
6
7
  end
data/lib/tumbz/product.rb CHANGED
@@ -2,5 +2,6 @@ module Tumbz
2
2
  class Product
3
3
  include Her::Model
4
4
  uses_api Tumbz.api
5
+ custom_get :search
5
6
  end
6
7
  end
data/lib/tumbz/user.rb CHANGED
@@ -3,17 +3,17 @@ module Tumbz
3
3
  include Model
4
4
  include Her::Model
5
5
  uses_api Tumbz.api
6
+ custom_get :search
6
7
 
7
8
  def self.sign_in!(email, password)
8
9
  post_raw("auth", :email => email, :password => password) do |parsed_data|
9
10
  Tumbz.access_token = parsed_data[:data][:access_token]
10
11
  end
11
-
12
- Tumbz.access_token.nil? ? false : true
13
12
  end
14
13
 
15
14
  def self.sign_out!
16
15
  Tumbz.access_token = nil
16
+ Tumbz.access_token.nil?
17
17
  end
18
18
  end
19
19
  end
@@ -0,0 +1,7 @@
1
+ module Tumbz
2
+ class UserSuggestion
3
+ include Model
4
+ include Her::Model
5
+ uses_api Tumbz.api
6
+ end
7
+ end
data/lib/tumbz/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tumbz
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/tumbz.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  # Dependencies
2
- require "bundler"
3
- Bundler.require
2
+ require "her"
4
3
 
5
4
  # Modules
6
5
  require "tumbz/version"
@@ -29,9 +28,12 @@ module Tumbz
29
28
 
30
29
  @api = Her::API.new
31
30
  @api.setup :url => "http://api.tum.bz/v1/" do |connection|
31
+ # Request middleware
32
32
  connection.use Tumbz::Middleware::ApiKey, :api_key => options.api_key
33
33
  connection.use Tumbz::Middleware::Auth
34
34
  connection.use Faraday::Request::UrlEncoded
35
+
36
+ # Response middleware
35
37
  connection.use Tumbz::Middleware::Parse
36
38
  connection.use Faraday::Adapter::NetHttp
37
39
  end
@@ -42,5 +44,6 @@ module Tumbz
42
44
  require "tumbz/partner_lookup"
43
45
  require "tumbz/product"
44
46
  require "tumbz/user"
47
+ require "tumbz/user_suggestion"
45
48
  end
46
49
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tumbz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -51,6 +51,7 @@ files:
51
51
  - lib/tumbz/product.rb
52
52
  - lib/tumbz/review.rb
53
53
  - lib/tumbz/user.rb
54
+ - lib/tumbz/user_suggestion.rb
54
55
  - lib/tumbz/version.rb
55
56
  - tumbz.gemspec
56
57
  homepage: ''
@@ -65,18 +66,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
65
66
  - - ! '>='
66
67
  - !ruby/object:Gem::Version
67
68
  version: '0'
68
- segments:
69
- - 0
70
- hash: -3848226679834362904
71
69
  required_rubygems_version: !ruby/object:Gem::Requirement
72
70
  none: false
73
71
  requirements:
74
72
  - - ! '>='
75
73
  - !ruby/object:Gem::Version
76
74
  version: '0'
77
- segments:
78
- - 0
79
- hash: -3848226679834362904
80
75
  requirements: []
81
76
  rubyforge_project:
82
77
  rubygems_version: 1.8.23
@@ -84,3 +79,4 @@ signing_key:
84
79
  specification_version: 3
85
80
  summary: Ruby wrapper for the Tum.bz API
86
81
  test_files: []
82
+ has_rdoc: