zunnit 0.2.0 → 0.3.1

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/.gitignore CHANGED
@@ -1,4 +1,9 @@
1
1
  pkg/*
2
2
  *.gem
3
+ *.swp
4
+ *.swm
5
+ *.swn
6
+ *.swo
7
+ *.rvmrc
3
8
  .bundle
4
- /nbproject/private/
9
+ /nbproject/private/
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zunnit (0.2.0)
4
+ zunnit (0.3.0)
5
5
  faraday
6
6
 
7
7
  GEM
@@ -12,7 +12,7 @@ GEM
12
12
  faraday (0.7.2)
13
13
  addressable (~> 2.2.6)
14
14
  multipart-post (~> 1.1.0)
15
- rack (< 2, >= 1.1.0)
15
+ rack (>= 1.1.0, < 2)
16
16
  multipart-post (1.1.2)
17
17
  rack (1.3.0)
18
18
  rspec (2.6.0)
data/lib/zunnit/api.rb CHANGED
@@ -6,59 +6,64 @@ module Zunnit
6
6
  end
7
7
 
8
8
  # API Class
9
- class Api
10
- attr_accessor :client, :key, :version
11
-
12
- def initialize
13
- self.client = Zunnit.client
14
- self.key = Zunnit.key
15
- self.version = Zunnit.version
16
-
17
- yield self if block_given?
18
- end
19
-
20
- # Make a GET request to Zunnit's API
21
- def get(action, options={})
22
- request(:get, action, options)
23
- end
24
-
25
- # Make a POST request to Zunnit's API
26
- def post(action, options={})
27
- request(:post, action, options)
28
- end
29
-
30
- private
31
- def connection
32
- @connection ||= Faraday.new(:url => Zunnit::URL)
33
- end
9
+ class Api
10
+ attr_accessor :client, :key, :version
34
11
 
35
- def params_for(options={})
36
- return {
37
- :api_key => self.key
38
- }.merge(options)
39
- end
12
+ def initialize
13
+ self.client = Zunnit.client
14
+ self.key = Zunnit.key
15
+ self.version = Zunnit.version
40
16
 
41
- # Make a request to Zunnit's API
42
- def request(http_method, action, options={})
43
- # Raise error if the actions is invalid
44
- unless Zunnit.actions[action]
45
- raise "Invalid action \"#{action}\""
46
- end
17
+ yield self if block_given?
18
+ end
47
19
 
48
- # Raise error if the http method is invalid
49
- unless [:get, :post].include? http_method
50
- raise "Invalid http_method \"#{http_method}\""
51
- end
20
+ # Make a GET request to Zunnit's API
21
+ def get(action, options={})
22
+ request(:get, action, options)
23
+ end
52
24
 
53
- # Make the Request
54
- action_url = "/#{client}#{Zunnit.actions[action]}"
55
- response = connection.send(http_method) do |req|
56
- req.url(action_url)
57
- req.params = params_for options
58
- end
25
+ # Make a POST request to Zunnit's API
26
+ def post(action, options={})
27
+ request(:post, action, options)
28
+ end
59
29
 
60
- # return HASH for body JSON
61
- JSON response.body, :symbolize_names => true
62
- end
63
- end
30
+ private
31
+ def connection
32
+ @connection ||= Faraday.new(:url => Zunnit::URL)
33
+ end
34
+
35
+ def params_for(options={})
36
+ return {
37
+ :api_key => self.key
38
+ }.merge(options)
39
+ end
40
+
41
+ # Make a request to Zunnit's API
42
+ def request(http_method, action, options={})
43
+ # Raise error if the actions is invalid
44
+ unless Zunnit.actions[action]
45
+ raise "Invalid action \"#{action}\""
46
+ end
47
+
48
+ # Raise error if the http method is invalid
49
+ unless [:get, :post].include? http_method
50
+ raise "Invalid http_method \"#{http_method}\""
51
+ end
52
+
53
+ # Make the Request
54
+ response = connection.send(http_method) do |req|
55
+ action_url = "/#{client}#{Zunnit.actions[action]}"
56
+ req.url(action_url)
57
+ if http_method.to_s =~ /post|put/
58
+ req.body = params_for options
59
+ else
60
+ req.params = params_for options
61
+ end
62
+ end
63
+
64
+ # return HASH for body JSON
65
+ JSON response.body, :symbolize_names => true
66
+ end
67
+
68
+ end
64
69
  end
data/lib/zunnit/setup.rb CHANGED
@@ -1,26 +1,26 @@
1
1
  module Zunnit
2
- extend Utils
3
- mattr_accessor :client, :key, :version, :actions
4
-
5
- # Fixed constants
6
- URL = "http://api.zunnit.com/"
7
- ACTIONS = {
8
- :related_items => "/related/items",
9
- :recommendation_items_for_user => "/recommendation/items/for_user",
10
- :recommendation_groups_for_user => "/recommendation/groups/for_user",
11
- :recommendation_users_for_user => "/recommendation/users/for_user",
12
- :recommendation_users_for_item => "/recommendation/users/for_item",
13
- :recommendation_tags_for_item => "/recommendation/tags/for_item",
14
- :recommendation_cluster_for_item => "/recommendation/cluster/for_item",
15
- :action_items_add => "/action/items/add",
16
- :action_items_rate => "/action/items/rate",
17
- :action_items_view => "/action/items/view",
18
- :action_user_follow => "/action/user/follow"
19
- }
20
-
21
- def self.setup
22
- self.actions = ACTIONS
23
- yield self
24
- self
25
- end
2
+ extend Utils
3
+ mattr_accessor :client, :key, :version, :actions
4
+
5
+ # Fixed constants
6
+ URL = "http://api.zunnit.com/"
7
+ ACTIONS = {
8
+ :related_items => "/related/items",
9
+ :recommendation_items_for_user => "/recommendation/items/for_user",
10
+ :recommendation_groups_for_user => "/recommendation/groups/for_user",
11
+ :recommendation_users_for_user => "/recommendation/users/for_user",
12
+ :recommendation_users_for_item => "/recommendation/users/for_item",
13
+ :recommendation_tags_for_item => "/recommendation/tags/for_item",
14
+ :recommendation_cluster_for_item => "/recommendation/cluster/for_item",
15
+ :action_items_add => "/action/items/add",
16
+ :action_items_rate => "/action/items/rate",
17
+ :action_items_view => "/action/items/view",
18
+ :action_user_follow => "/action/user/follow"
19
+ }
20
+
21
+ def self.setup
22
+ self.actions = ACTIONS
23
+ yield self if block_given?
24
+ self
25
+ end
26
26
  end
data/lib/zunnit/utils.rb CHANGED
@@ -1,17 +1,17 @@
1
1
  module Zunnit
2
- module Utils
3
- def mattr_accessor *attrs
4
- attrs.each do |attr|
5
- module_eval %[
6
- def self.#{attr.to_s}=(value)
7
- @#{attr.to_s} = value
8
- end
2
+ module Utils
3
+ def mattr_accessor *attrs
4
+ attrs.each do |attr|
5
+ module_eval %[
6
+ def self.#{attr.to_s}=(value)
7
+ @#{attr.to_s} = value
8
+ end
9
9
 
10
- def self.#{attr.to_s}
11
- @#{attr.to_s}
12
- end
13
- ]
14
- end
15
- end
16
- end
17
- end
10
+ def self.#{attr.to_s}
11
+ @#{attr.to_s}
12
+ end
13
+ ]
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,4 +1,4 @@
1
1
  module Zunnit
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.1"
3
3
  end
4
4
 
data/spec/spec_helper.rb CHANGED
@@ -5,11 +5,11 @@ require 'rspec'
5
5
  require 'zunnit'
6
6
 
7
7
  RSpec.configure do |config|
8
- config.fail_fast = true
8
+ config.fail_fast = true
9
9
  end
10
10
 
11
11
  Zunnit.setup do |z|
12
- z.client = "busk"
13
- z.key = "busk"
14
- z.version = "1.0"
15
- end
12
+ z.client = "busk"
13
+ z.key = "busk"
14
+ z.version = "1.0"
15
+ end
data/spec/zunnit_spec.rb CHANGED
@@ -3,91 +3,93 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
3
3
 
4
4
  describe Zunnit do
5
5
  # let(zunnit) { Zunnit::Api.new }
6
-
7
- describe "get" do
6
+
7
+ describe "get" do
8
8
  it "should instanciate a Zunnit::Api object" do
9
9
  default_key = Zunnit.key
10
10
  default_client = Zunnit.client
11
11
  default_version = Zunnit.version
12
-
12
+
13
13
  zunnit = Zunnit::Api.new do |z|
14
14
  z.key = "new-key"
15
15
  z.version = "1.1"
16
16
  end
17
-
17
+
18
18
  zunnit.class.should == Zunnit::Api
19
19
  zunnit.client.should == default_client
20
20
  zunnit.key.should == "new-key"
21
21
  zunnit.version.should == "1.1"
22
-
22
+
23
23
  Zunnit.client.should == default_client
24
24
  Zunnit.key.should == default_key
25
25
  Zunnit.version.should == default_version
26
26
  end
27
-
28
- it "should return related items" do
29
- response = Zunnit.api.get(:related_items,
30
- :item_id => "20275919", :user_id => "255")
31
- validate_response(response, :items)
32
- end
33
-
34
- it "should get 400 error if :item_id is not given to related items" do
35
- response = Zunnit.api.get(:related_items)
36
- response[:status].should == 400
37
- end
38
-
39
- it "should return recommendation items for user" do
40
- response = Zunnit.api.get(:recommendation_items_for_user,
41
- :user_id => "255")
42
- validate_response(response, :items)
43
- end
44
-
45
-
46
- it "should return recommendation groups for user" do
47
- pending "404"
48
- response = Zunnit.api.get(:recommendation_groups_for_user,
49
- :user_id => "255")
50
- validate_response(response, :groups)
51
- end
52
-
53
- it "should return recommendation users for user" do
54
- pending "404"
55
- response = Zunnit.api.get(:recommendation_groups_for_user,
56
- :user_id => "2155")
57
- validate_response(response, :users)
58
- end
59
-
60
- it "should return recommendation users for item" do
61
- pending "It should return a collection of users but is returning items"
62
- response = Zunnit.api.get(:recommendation_items_for_user,
63
- :item_id => "20275919", :user_id => "255")
64
- validate_response(response, :users)
65
- end
66
-
67
- it "should return recommendation tags for item" do
68
- pending "404"
69
- response = Zunnit.api.get(:recommendation_tags_for_item,
70
- :item_id => "20275919")
71
- validate_response(response, :tags)
72
- end
73
-
74
- it "should return recommendation cluster for item" do
75
- pending "404"
76
- response = Zunnit.api.get(:recommendation_cluster_for_item,
77
- :item_id => "20275919")
78
- validate_response(response, :clusters)
79
- end
80
- end
81
-
82
- describe "post" do
83
-
84
- end
85
-
86
- private
87
- def validate_response(response, results_key)
88
- response[:status].should == 200
89
- response[:msg].should == "Ok"
90
- response[results_key].size.should >= 1
91
- end
27
+
28
+ it "should return related items" do
29
+ response = Zunnit.api.get :related_items,
30
+ :item_id => "20275919",
31
+ :user_id => "255"
32
+ validate_response(response, :items)
33
+ end
34
+
35
+ it "should get 400 error if :item_id is not given to related items" do
36
+ response = Zunnit.api.get(:related_items)
37
+ response[:status].should == 400
38
+ end
39
+
40
+ it "should return recommendation items for user" do
41
+ response = Zunnit.api.get :recommendation_items_for_user,
42
+ :user_id => "255"
43
+ validate_response(response, :items)
44
+ end
45
+
46
+
47
+ it "should return recommendation groups for user" do
48
+ pending "404"
49
+ response = Zunnit.api.get :recommendation_groups_for_user,
50
+ :user_id => "255"
51
+ validate_response(response, :groups)
52
+ end
53
+
54
+ it "should return recommendation users for user" do
55
+ pending "404"
56
+ response = Zunnit.api.get :recommendation_groups_for_user,
57
+ :user_id => "2155"
58
+ validate_response(response, :users)
59
+ end
60
+
61
+ it "should return recommendation users for item" do
62
+ pending "It should return a collection of users but is returning items"
63
+ response = Zunnit.api.get :recommendation_items_for_user,
64
+ :item_id => "20275919",
65
+ :user_id => "255"
66
+ validate_response(response, :users)
67
+ end
68
+
69
+ it "should return recommendation tags for item" do
70
+ pending "404"
71
+ response = Zunnit.api.get :recommendation_tags_for_item,
72
+ :item_id => "20275919"
73
+ validate_response(response, :tags)
74
+ end
75
+
76
+ it "should return recommendation cluster for item" do
77
+ pending "404"
78
+ response = Zunnit.api.get :recommendation_cluster_for_item,
79
+ :item_id => "20275919"
80
+ validate_response(response, :clusters)
81
+ end
82
+ end
83
+
84
+ describe "post" do
85
+
86
+ end
87
+
88
+ private
89
+ def validate_response(response, results_key)
90
+ response[:status].should == 200
91
+ response[:msg].should == "Ok"
92
+ response[results_key].size.should >= 1
93
+ end
92
94
  end
93
95
 
data/zunnit.gemspec CHANGED
@@ -19,8 +19,8 @@ Gem::Specification.new do |s|
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ["lib"]
21
21
 
22
- # Dependencies
23
- s.add_dependency "faraday"
22
+ # Dependencies
23
+ s.add_dependency "faraday"
24
24
 
25
25
  # Development Dependencies
26
26
  s.add_development_dependency "rspec"
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: zunnit
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.0
5
+ version: 0.3.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Marcelo Eden
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-23 00:00:00 -03:00
13
+ date: 2011-06-27 00:00:00 -03:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency