zunnit 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,12 +1,20 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zunnit (0.0.1)
4
+ zunnit (0.0.2)
5
+ faraday
5
6
 
6
7
  GEM
7
8
  remote: http://rubygems.org/
8
9
  specs:
10
+ addressable (2.2.6)
9
11
  diff-lcs (1.1.2)
12
+ faraday (0.7.2)
13
+ addressable (~> 2.2.6)
14
+ multipart-post (~> 1.1.0)
15
+ rack (>= 1.1.0, < 2)
16
+ multipart-post (1.1.2)
17
+ rack (1.3.0)
10
18
  rspec (2.6.0)
11
19
  rspec-core (~> 2.6.0)
12
20
  rspec-expectations (~> 2.6.0)
@@ -1,4 +1,4 @@
1
1
  module Zunnit
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
4
4
 
@@ -0,0 +1,58 @@
1
+ module Zunnit
2
+ # Fixed constants
3
+ API_URL = "http://api.zunnit.com/"
4
+ API_ACTIONS = {
5
+ :related_items => "/related/items",
6
+ :recommendation_items_for_user => "/recommendation/items/for_user",
7
+ :recommendation_groups_for_user => "/recommendation/groups/for_user",
8
+ :recommendation_users_for_user => "/recommendation/users/for_user",
9
+ :recommendation_users_for_item => "/recommendation/users/for_item",
10
+ :recommendation_tags_for_item => "/recommendation/tags/for_item",
11
+ :recommendation_cluster_for_item => "/recommendation/cluster/for_item",
12
+ :action_items_add => "/action/items/add",
13
+ :action_items_rate => "/action/items/rate",
14
+ :action_items_view => "/action/items/view",
15
+ :action_user_follow => "/action/user/follow"
16
+ }
17
+
18
+ # Configurable constants
19
+ API_CLIENT = "busk"
20
+ API_KEY = "busk"
21
+ API_VERSION = "1.0"
22
+
23
+ class << self
24
+ # API URL for action
25
+ def url_for(action)
26
+ raise "Invalid action '#{action}'" unless API_ACTIONS[action]
27
+
28
+ # Generate the URL
29
+ url = "#{API_URL}#{API_CLIENT}#{API_ACTIONS[action]}?api_key=#{API_KEY}"
30
+ url
31
+ end
32
+
33
+ # Make a request to Zunnit's API
34
+ def request(http_method, action, options={})
35
+ connection = Faraday.new(:url => self.url_for(action))
36
+ response = case http_method.to_sym
37
+ when :get
38
+ connection.get { |req| req.params = options }
39
+ when :post
40
+ connection.post { |req| req.params = options }
41
+ else
42
+ raise "Invalid http_method \"#{http_method}\""
43
+ end
44
+
45
+ response
46
+ end
47
+
48
+ # Make a GET request to Zunnit's API
49
+ def get(action, options={})
50
+ self.request(:get, action, options)
51
+ end
52
+
53
+ # Make a POST request to Zunnit's API
54
+ def post(action, options={})
55
+ self.request(:post, action, options)
56
+ end
57
+ end
58
+ end
data/lib/zunnit.rb CHANGED
@@ -1,4 +1,9 @@
1
- module Zunnit
2
- # Your code goes here...
3
- end
1
+ # encoding: utf-8
2
+ require 'rubygems'
3
+ require "faraday"
4
+
5
+
6
+ # Local Libs
7
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
8
+ require 'zunnit/zunnit'
4
9
 
data/spec/spec_helper.rb CHANGED
@@ -5,5 +5,5 @@ require 'rspec'
5
5
  require 'zunnit'
6
6
 
7
7
  RSpec.configure do |config|
8
-
8
+ config.fail_fast = true
9
9
  end
data/spec/zunnit_spec.rb CHANGED
@@ -3,5 +3,18 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
3
3
 
4
4
  describe Zunnit do
5
5
 
6
+ describe "url_for" do
7
+ it "return url for related item" do
8
+ url = Zunnit.url_for(:related_items)
9
+ url.should == "http://api.zunnit.com/busk/related/items?api_key=busk"
10
+ end
11
+ end
12
+
13
+ describe "get" do
14
+ it "should return related items" do
15
+ response = Zunnit.get(:related_items, {:item_id=>"20275919"})
16
+ response.status.should == 200
17
+ end
18
+ end
6
19
  end
7
20
 
data/zunnit.gemspec CHANGED
@@ -19,6 +19,9 @@ 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"
24
+
22
25
  # Development Dependencies
23
26
  s.add_development_dependency "rspec"
24
27
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: zunnit
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Marcelo Eden
@@ -14,7 +14,7 @@ date: 2011-06-20 00:00:00 -03:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: rspec
17
+ name: faraday
18
18
  prerelease: false
19
19
  requirement: &id001 !ruby/object:Gem::Requirement
20
20
  none: false
@@ -22,8 +22,19 @@ dependencies:
22
22
  - - ">="
23
23
  - !ruby/object:Gem::Version
24
24
  version: "0"
25
- type: :development
25
+ type: :runtime
26
26
  version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: "0"
36
+ type: :development
37
+ version_requirements: *id002
27
38
  description: Gem do access zunnit's API
28
39
  email:
29
40
  - marcelo@busk.com
@@ -35,18 +46,14 @@ extra_rdoc_files: []
35
46
 
36
47
  files:
37
48
  - .DS_Store
38
- - .Gemfile.swp
39
- - .Rakefile.swp
40
49
  - .gitignore
41
50
  - Gemfile
42
51
  - Gemfile.lock
43
52
  - README
44
53
  - Rakefile
45
- - lib/.zunnit.rb.swp
46
54
  - lib/zunnit.rb
47
- - lib/zunnit/.version.rb.swp
48
55
  - lib/zunnit/version.rb
49
- - spec/.spec_helper.rb.swp
56
+ - lib/zunnit/zunnit.rb
50
57
  - spec/spec_helper.rb
51
58
  - spec/zunnit_spec.rb
52
59
  - zunnit.gemspec
data/.Gemfile.swp DELETED
Binary file
data/.Rakefile.swp DELETED
Binary file
data/lib/.zunnit.rb.swp DELETED
Binary file
Binary file
Binary file