hubs3d 0.0.1 → 0.1.0
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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/hubs3d/cart.rb +8 -3
- data/lib/hubs3d/model.rb +10 -3
- data/lib/hubs3d/tip.rb +19 -0
- data/lib/hubs3d/version.rb +1 -1
- data/spec/api_spec.rb +2 -2
- data/spec/cart_spec.rb +47 -11
- data/spec/model_spec.rb +16 -3
- data/spec/spec_helper.rb +1 -2
- data/spec/tip_spec.rb +33 -0
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6b984a6af7ce4d5ac992157348261ed66441d5a1
|
4
|
+
data.tar.gz: b203fda414d4590c8ff2c4cd847ce8e55020356f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11e09f5c6847ea09e86428b7345b736c8d20cfcc922e08c3d97a67308d508c918b884e5d0f263435dcdaa11283777c35d579d76a6eb711448b22fc72b5bb70e6
|
7
|
+
data.tar.gz: 7a7abc828b13b019d04f7c95ea28378f65d16e38b8bb913b87083a9971f9c11fe41602abcc6f093e2cd65a7fc283ee0d3fea8eac5ec12371084276328474eda9
|
data/README.md
CHANGED
data/lib/hubs3d/cart.rb
CHANGED
@@ -2,10 +2,13 @@ require "hubs3d/api"
|
|
2
2
|
|
3
3
|
module Hubs3D
|
4
4
|
class Cart
|
5
|
-
attr_reader :items
|
5
|
+
attr_reader :items, :designer_tip, :third_party_id
|
6
6
|
|
7
|
-
def initialize
|
7
|
+
def initialize(designer_tip: nil,
|
8
|
+
third_party_id: nil)
|
8
9
|
@items = []
|
10
|
+
@designer_tip = designer_tip
|
11
|
+
@third_party_id = third_party_id
|
9
12
|
end
|
10
13
|
|
11
14
|
def <<(item)
|
@@ -27,7 +30,9 @@ module Hubs3D
|
|
27
30
|
hash[item.id] = { modelId: item.id, quantity: 1 }
|
28
31
|
end
|
29
32
|
|
30
|
-
API.post("/cart", items: hash
|
33
|
+
API.post("/cart", items: hash,
|
34
|
+
designer_tip: designer_tip && designer_tip.to_h,
|
35
|
+
third_party_id: third_party_id)
|
31
36
|
end
|
32
37
|
end
|
33
38
|
end
|
data/lib/hubs3d/model.rb
CHANGED
@@ -3,11 +3,16 @@ require "hubs3d/api"
|
|
3
3
|
|
4
4
|
module Hubs3D
|
5
5
|
class Model
|
6
|
-
|
7
|
-
|
6
|
+
attr_reader :name, :path, :attachments
|
7
|
+
|
8
|
+
def initialize(id: nil,
|
9
|
+
name: nil,
|
10
|
+
path: nil,
|
11
|
+
attachments: nil)
|
8
12
|
@id = id
|
9
13
|
@name = name
|
10
14
|
@path = path
|
15
|
+
@attachments = attachments
|
11
16
|
end
|
12
17
|
|
13
18
|
def id
|
@@ -22,7 +27,9 @@ module Hubs3D
|
|
22
27
|
end
|
23
28
|
|
24
29
|
def post
|
25
|
-
API.post("/model", file: base_64,
|
30
|
+
API.post("/model", file: base_64,
|
31
|
+
fileName: name,
|
32
|
+
attachments: attachments)
|
26
33
|
end
|
27
34
|
end
|
28
35
|
end
|
data/lib/hubs3d/tip.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
module Hubs3D
|
2
|
+
class Tip
|
3
|
+
attr_reader :amount, :currency, :uuid, :mandatory
|
4
|
+
|
5
|
+
def initialize(amount: nil,
|
6
|
+
currency: nil,
|
7
|
+
uuid: nil,
|
8
|
+
mandatory: nil)
|
9
|
+
@amount = amount
|
10
|
+
@currency = currency
|
11
|
+
@uuid = uuid
|
12
|
+
@mandatory = mandatory
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_h
|
16
|
+
{ amount: amount, currency: currency, uuid: uuid, mandatory: mandatory }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/hubs3d/version.rb
CHANGED
data/spec/api_spec.rb
CHANGED
@@ -14,8 +14,8 @@ describe Hubs3D::API do
|
|
14
14
|
})
|
15
15
|
.to_return(status: 200, body: '{ "answer": 42 }')
|
16
16
|
|
17
|
-
post =
|
18
|
-
post.
|
17
|
+
post = described_class.post("/some/path", foo: "bar")
|
18
|
+
expect(post).to eq("answer" => 42)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
data/spec/cart_spec.rb
CHANGED
@@ -1,13 +1,31 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
require "hubs3d/cart"
|
3
|
+
require "hubs3d/tip"
|
3
4
|
|
4
5
|
describe Hubs3D::Cart do
|
5
|
-
let(:
|
6
|
-
|
6
|
+
let(:designer_tip) { Hubs3D::Tip.new(amount: 42_00,
|
7
|
+
currency: "EUR",
|
8
|
+
uuid: 5,
|
9
|
+
mandatory: true) }
|
10
|
+
let(:cart) { described_class.new(designer_tip: designer_tip,
|
11
|
+
third_party_id: "foo0") }
|
12
|
+
let(:item) { double(:item, id: 42) }
|
13
|
+
|
14
|
+
describe "#designer_tip" do
|
15
|
+
it "returns the designer_tip" do
|
16
|
+
expect(cart.designer_tip).to eq(designer_tip)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "#third_party_id" do
|
21
|
+
it "returns the third_party_id" do
|
22
|
+
expect(cart.third_party_id).to eq("foo0")
|
23
|
+
end
|
24
|
+
end
|
7
25
|
|
8
26
|
describe "#items" do
|
9
27
|
it "defaults to empty" do
|
10
|
-
cart.items.empty
|
28
|
+
expect(cart.items.empty?).to eq(true)
|
11
29
|
end
|
12
30
|
end
|
13
31
|
|
@@ -15,22 +33,40 @@ describe Hubs3D::Cart do
|
|
15
33
|
it "adds items" do
|
16
34
|
cart << item
|
17
35
|
cart << item
|
18
|
-
cart.items.size.
|
36
|
+
expect(cart.items.size).to eq(2)
|
19
37
|
end
|
20
38
|
end
|
21
39
|
|
22
40
|
describe "#url" do
|
41
|
+
let(:api_result) { { "url" => "http://example" } }
|
42
|
+
|
23
43
|
before do
|
44
|
+
allow(Hubs3D::API).to receive(:post) { api_result }
|
24
45
|
cart << item
|
25
|
-
item.expect :id, 42
|
26
|
-
item.expect :id, 42
|
27
46
|
end
|
28
47
|
|
29
|
-
it "calls the API" do
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
48
|
+
it "calls the API with the correct args" do
|
49
|
+
cart.url
|
50
|
+
args = {
|
51
|
+
items: {
|
52
|
+
42 => {
|
53
|
+
modelId: 42,
|
54
|
+
quantity: 1,
|
55
|
+
},
|
56
|
+
},
|
57
|
+
designer_tip: {
|
58
|
+
amount: 42_00,
|
59
|
+
currency: "EUR",
|
60
|
+
uuid: 5,
|
61
|
+
mandatory: true
|
62
|
+
},
|
63
|
+
third_party_id: "foo0",
|
64
|
+
}
|
65
|
+
expect(Hubs3D::API).to have_received(:post).with("/cart", args)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "returns the url from the API" do
|
69
|
+
expect(cart.url).to eq("http://example")
|
34
70
|
end
|
35
71
|
end
|
36
72
|
end
|
data/spec/model_spec.rb
CHANGED
@@ -2,7 +2,20 @@ require "spec_helper"
|
|
2
2
|
require "hubs3d/model"
|
3
3
|
|
4
4
|
describe Hubs3D::Model do
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
let(:model) { described_class.new(name: "Foo", path: "example.stl") }
|
6
|
+
|
7
|
+
describe "#name" do
|
8
|
+
it "returns the name" do
|
9
|
+
expect(model.name).to eq("Foo")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "#path" do
|
14
|
+
it "returns the path" do
|
15
|
+
expect(model.path).to eq("example.stl")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
pending "#id"
|
20
|
+
pending "#attachments"
|
8
21
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/tip_spec.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "hubs3d/model"
|
3
|
+
|
4
|
+
describe Hubs3D::Tip do
|
5
|
+
let(:model) { described_class.new(amount: 42_00,
|
6
|
+
currency: "EUR",
|
7
|
+
uuid: "51",
|
8
|
+
mandatory: false) }
|
9
|
+
|
10
|
+
describe "#amount" do
|
11
|
+
it "returns the amount" do
|
12
|
+
expect(model.amount).to eq(42_00)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#currency" do
|
17
|
+
it "returns the currency" do
|
18
|
+
expect(model.currency).to eq("EUR")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#uuid" do
|
23
|
+
it "returns the uuid" do
|
24
|
+
expect(model.uuid).to eq("51")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "#mandatory" do
|
29
|
+
it "returns the mandatory" do
|
30
|
+
expect(model.mandatory).to eq(false)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hubs3d
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sunny Ripert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: Upload 3D Models and create carts on 3DHubs
|
70
84
|
email:
|
71
85
|
- sunny@sunfox.org
|
@@ -81,12 +95,14 @@ files:
|
|
81
95
|
- lib/hubs3d/cart.rb
|
82
96
|
- lib/hubs3d/configuration.rb
|
83
97
|
- lib/hubs3d/model.rb
|
98
|
+
- lib/hubs3d/tip.rb
|
84
99
|
- lib/hubs3d/version.rb
|
85
100
|
- spec/api_spec.rb
|
86
101
|
- spec/cart_spec.rb
|
87
102
|
- spec/fixtures/example.stl
|
88
103
|
- spec/model_spec.rb
|
89
104
|
- spec/spec_helper.rb
|
105
|
+
- spec/tip_spec.rb
|
90
106
|
homepage: http://github.com/sunny/hubs3d
|
91
107
|
licenses:
|
92
108
|
- MIT
|
@@ -117,3 +133,4 @@ test_files:
|
|
117
133
|
- spec/fixtures/example.stl
|
118
134
|
- spec/model_spec.rb
|
119
135
|
- spec/spec_helper.rb
|
136
|
+
- spec/tip_spec.rb
|