dawanda_client 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/dawanda_client.gemspec +2 -2
- data/lib/dawanda/model.rb +4 -2
- data/lib/dawanda/product.rb +2 -4
- data/lib/dawanda/request.rb +0 -1
- data/lib/dawanda.rb +11 -11
- data/test/test_helper.rb +9 -1
- data/test/unit/dawanda/category_test.rb +2 -3
- data/test/unit/dawanda/product_test.rb +1 -1
- data/test/unit/dawanda_test.rb +15 -9
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.9
|
data/dawanda_client.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{dawanda_client}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.9"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["DaWanda GmbH"]
|
12
|
-
s.date = %q{2010-03-
|
12
|
+
s.date = %q{2010-03-09}
|
13
13
|
s.description = %q{Provides a friendly ruby-like interface to the Dawanda API}
|
14
14
|
s.email = %q{api@dawanda.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/dawanda/model.rb
CHANGED
@@ -47,7 +47,8 @@ module Dawanda
|
|
47
47
|
def find_all(parameter, endpoint)
|
48
48
|
class_eval <<-CODE
|
49
49
|
def self.find_all_by_#{parameter}(#{parameter}, params = {})
|
50
|
-
response = Request.get("#{endpoint}", params)
|
50
|
+
response = Request.get("#{endpoint}", params.reject{|key, value| key == :raw_response})
|
51
|
+
return response if params[:raw_response]
|
51
52
|
response.result.map {|listing| new(listing) }
|
52
53
|
end
|
53
54
|
CODE
|
@@ -56,7 +57,8 @@ module Dawanda
|
|
56
57
|
def find_one(parameter, endpoint)
|
57
58
|
class_eval <<-CODE
|
58
59
|
def self.find_by_#{parameter}(#{parameter}, params = {})
|
59
|
-
response = Request.get("#{endpoint}", params)
|
60
|
+
response = Request.get("#{endpoint}", params.reject{|key, value| key == :raw_response})
|
61
|
+
return response if params[:raw_response]
|
60
62
|
new response.result
|
61
63
|
end
|
62
64
|
CODE
|
data/lib/dawanda/product.rb
CHANGED
@@ -26,8 +26,6 @@ module Dawanda
|
|
26
26
|
finder :all, '/colors/:hex_search/products/search'
|
27
27
|
finder :all, '/product/:method'
|
28
28
|
|
29
|
-
|
30
|
-
|
31
29
|
finder :one, '/products/:id'
|
32
30
|
|
33
31
|
attribute :created, :created_at
|
@@ -35,7 +33,7 @@ module Dawanda
|
|
35
33
|
attribute :user_id, [ :user => :id ]
|
36
34
|
|
37
35
|
attributes :id, :name, :description, :created_at, :view_count, :tags,
|
38
|
-
:ending, :quantity, :materials, :price, :restful_path, :product_url, :images
|
36
|
+
:ending, :quantity, :materials, :price, :restful_path, :product_url, :images, :user
|
39
37
|
|
40
38
|
|
41
39
|
# Time that this product was created
|
@@ -74,7 +72,7 @@ module Dawanda
|
|
74
72
|
end
|
75
73
|
|
76
74
|
def shop(params = {})
|
77
|
-
Shop.find_by_user_id(
|
75
|
+
Shop.find_by_user_id(user["id"])
|
78
76
|
end
|
79
77
|
end
|
80
78
|
end
|
data/lib/dawanda/request.rb
CHANGED
data/lib/dawanda.rb
CHANGED
@@ -71,29 +71,29 @@ module Dawanda
|
|
71
71
|
@country || 'de'
|
72
72
|
end
|
73
73
|
|
74
|
-
# Find a user by username.
|
75
|
-
def self.user(username_or_id)
|
76
|
-
User.find_by_user_id(username_or_id)
|
74
|
+
# Find a user by username. See Dawanda::User for more information.
|
75
|
+
def self.user(username_or_id, options={})
|
76
|
+
User.find_by_user_id(username_or_id, options)
|
77
77
|
end
|
78
78
|
|
79
79
|
# Find a shop by username. See Dawanda::Shop for more information.
|
80
|
-
def self.shop(username_or_id)
|
81
|
-
Shop.find_by_user_id(username_or_id)
|
80
|
+
def self.shop(username_or_id, options={})
|
81
|
+
Shop.find_by_user_id(username_or_id, options)
|
82
82
|
end
|
83
83
|
|
84
84
|
# Find a product by id. See Dawanda::Product for more information.
|
85
|
-
def self.product(product_id)
|
86
|
-
Product.find_by_id(product_id)
|
85
|
+
def self.product(product_id, options={})
|
86
|
+
Product.find_by_id(product_id, options)
|
87
87
|
end
|
88
88
|
|
89
89
|
# Find a category by id. See Dawanda::Category for more information.
|
90
|
-
def self.category(category_id)
|
91
|
-
Category.find_by_id(category_id)
|
90
|
+
def self.category(category_id, options={})
|
91
|
+
Category.find_by_id(category_id, options)
|
92
92
|
end
|
93
93
|
|
94
94
|
# Find a shop_category by id. See Dawanda::ShopCategory for more information.
|
95
|
-
def self.shop_category(shop_category_id)
|
96
|
-
ShopCategory.find_by_id(shop_category_id)
|
95
|
+
def self.shop_category(shop_category_id, options={})
|
96
|
+
ShopCategory.find_by_id(shop_category_id, options)
|
97
97
|
end
|
98
98
|
|
99
99
|
end
|
data/test/test_helper.rb
CHANGED
@@ -3,6 +3,9 @@ $:.reject! { |e| e.include? 'TextMate' }
|
|
3
3
|
|
4
4
|
require 'rubygems'
|
5
5
|
require 'throat_punch'
|
6
|
+
require 'net/http'
|
7
|
+
require 'json'
|
8
|
+
require 'time'
|
6
9
|
|
7
10
|
require File.dirname(__FILE__) + '/../lib/dawanda'
|
8
11
|
|
@@ -21,7 +24,7 @@ class Test::Unit::TestCase
|
|
21
24
|
response = Dawanda::Response.new(stub())
|
22
25
|
|
23
26
|
data = read_fixture(options[:data])
|
24
|
-
data = data.first if data.size == 1
|
27
|
+
data = data.to_a.first if data.size == 1
|
25
28
|
|
26
29
|
response.stubs(:result).with().returns(data)
|
27
30
|
Dawanda::Request.stubs(:get).with(options[:for], {}).returns(response)
|
@@ -50,4 +53,9 @@ class Test::Unit::TestCase
|
|
50
53
|
end
|
51
54
|
end
|
52
55
|
|
56
|
+
def response_from_fixture(method_name)
|
57
|
+
file = File.dirname(__FILE__) + "/fixtures/#{method_name}.json"
|
58
|
+
Dawanda::Response.new(File.read(file))
|
59
|
+
end
|
60
|
+
|
53
61
|
end
|
@@ -7,10 +7,9 @@ module Dawanda
|
|
7
7
|
|
8
8
|
should "be able to find a category by :id" do
|
9
9
|
id = 5327518
|
10
|
-
response = mock_request_cycle
|
10
|
+
response = mock_request_cycle({:for => "/categories/#{id}", :data => 'getCategoryDetails'})
|
11
11
|
|
12
12
|
Category.expects(:new).with(response.result).returns('category')
|
13
|
-
|
14
13
|
Category.find_by_id(id, {}).should == 'category'
|
15
14
|
end
|
16
15
|
|
@@ -19,7 +18,7 @@ module Dawanda
|
|
19
18
|
context "An instance of the Category class" do
|
20
19
|
when_populating Category, :from => 'getCategoryDetails' do
|
21
20
|
value_for :name, :is => '1003'
|
22
|
-
value_for :product_count, :is => 754
|
21
|
+
value_for :product_count, :is => 754
|
23
22
|
value_for :parent_id, :is => 406
|
24
23
|
value_for :id, :is => 418
|
25
24
|
end
|
@@ -31,7 +31,7 @@ module Dawanda
|
|
31
31
|
user_id = 5327518
|
32
32
|
|
33
33
|
product = Product.new
|
34
|
-
product.expects(:
|
34
|
+
product.expects(:user).returns({"id" => user_id}).at_least_once
|
35
35
|
response = mock_request_cycle :for => "/shops/#{user_id}", :data => 'getShopDetails'
|
36
36
|
|
37
37
|
Shop.expects(:new).with(response.result).returns('shop')
|
data/test/unit/dawanda_test.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../test_helper'
|
2
2
|
|
3
3
|
class DawandaTest < Test::Unit::TestCase
|
4
|
-
|
5
4
|
context "The Dawanda module" do
|
6
|
-
|
7
5
|
should "be able to set and retrieve the API key" do
|
8
6
|
Dawanda.api_key = 'key'
|
9
7
|
Dawanda.api_key.should == 'key'
|
@@ -17,38 +15,46 @@ class DawandaTest < Test::Unit::TestCase
|
|
17
15
|
should "be able to find a user by username" do
|
18
16
|
user = stub()
|
19
17
|
|
20
|
-
Dawanda::User.expects(:find_by_user_id).with('littletjane').returns(user)
|
18
|
+
Dawanda::User.expects(:find_by_user_id).with('littletjane', {}).returns(user)
|
21
19
|
Dawanda.user('littletjane').should == user
|
22
20
|
end
|
23
21
|
|
22
|
+
should "be able to get the raw response" do
|
23
|
+
response = response_from_fixture('getUserDetails')
|
24
|
+
Dawanda::Request.expects(:get).returns(response)
|
25
|
+
|
26
|
+
user = Dawanda.user("meko", {:raw_response => true})
|
27
|
+
user.result.should_not == nil
|
28
|
+
user.pages.should_not == nil
|
29
|
+
user.entries.should_not == nil
|
30
|
+
end
|
31
|
+
|
24
32
|
should "be able to find a shop by username" do
|
25
33
|
shop = stub()
|
26
34
|
|
27
|
-
Dawanda::Shop.expects(:find_by_user_id).with('littletjane').returns(shop)
|
35
|
+
Dawanda::Shop.expects(:find_by_user_id).with('littletjane', {}).returns(shop)
|
28
36
|
Dawanda.shop('littletjane').should == shop
|
29
37
|
end
|
30
38
|
|
31
39
|
should "be able to find a product by id" do
|
32
40
|
product = stub()
|
33
41
|
|
34
|
-
Dawanda::Product.expects(:find_by_id).with(15).returns(product)
|
42
|
+
Dawanda::Product.expects(:find_by_id).with(15, {}).returns(product)
|
35
43
|
Dawanda.product(15).should == product
|
36
44
|
end
|
37
45
|
|
38
46
|
should "be able to find a category by id" do
|
39
47
|
category = stub()
|
40
48
|
|
41
|
-
Dawanda::Category.expects(:find_by_id).with(16).returns(category)
|
49
|
+
Dawanda::Category.expects(:find_by_id).with(16, {}).returns(category)
|
42
50
|
Dawanda.category(16).should == category
|
43
51
|
end
|
44
52
|
|
45
53
|
should "be able to find a shop category by id" do
|
46
54
|
shop_category = stub()
|
47
55
|
|
48
|
-
Dawanda::ShopCategory.expects(:find_by_id).with(16).returns(shop_category)
|
56
|
+
Dawanda::ShopCategory.expects(:find_by_id).with(16, {}).returns(shop_category)
|
49
57
|
Dawanda.shop_category(16).should == shop_category
|
50
58
|
end
|
51
|
-
|
52
59
|
end
|
53
|
-
|
54
60
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 9
|
9
|
+
version: 0.1.9
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- DaWanda GmbH
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-03-
|
17
|
+
date: 2010-03-09 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|