octopart 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -45,7 +45,7 @@ Find a part by it's octopart ID.
45
45
 
46
46
  ```ruby
47
47
  part = Octopart::Part.find(39619421)
48
- # => <Octopart::Part >
48
+ # => <#Octopart::Part >
49
49
 
50
50
  part.short_description
51
51
  # => "Dial; Turns-Counting, Analog; 20 Turns; 100per Turn; Shaft Dia 0.25in"
@@ -54,7 +54,7 @@ part.mpn
54
54
  # => "H-46-6A"
55
55
 
56
56
  parts = Octopart::Part.find(39619421, 29035751, 31119928)
57
- # => [<Octopart::Part >, ... ]
57
+ # => [#<Octopart::Part >, ... ]
58
58
  ```
59
59
 
60
60
  * * *
@@ -65,10 +65,10 @@ Search all parts that match a given query string.
65
65
 
66
66
  ```ruby
67
67
  Octopart::Part.search('resistor')
68
- # => [<Octopart::Part >, ... ]
68
+ # => [#<Octopart::Part >, ... ]
69
69
 
70
70
  Octopart::Part.search('resistor', limit: 10)
71
- # => [<Octopart::Part >, ... ]
71
+ # => [#<Octopart::Part >, ... ]
72
72
  ```
73
73
 
74
74
  * * *
@@ -90,10 +90,59 @@ Return an array of parts for each line specified.
90
90
 
91
91
  ```ruby
92
92
  Octopart::Part.bom(mpn: 'SN74LS240N')
93
- # => [[<Octopart::Part >, ... ]]
93
+ # => [[#<Octopart::Part >, ... ]]
94
94
 
95
95
  Octopart::Part.bom([{mpn: 'SN74LS240N'}, {mpn: 'ATMEGA328P-PU'}])
96
- # => [[<Octopart::Part >, ... ], [<Octopart::Part >, ... ]]
96
+ # => [[#<Octopart::Part >, ... ], [#<Octopart::Part >, ... ]]
97
+ ```
98
+
99
+ * * *
100
+
101
+ **.datasheet**
102
+
103
+ Returns the highest rated datasheet for the part, or nil if there are no
104
+ datasheets.
105
+
106
+ ```ruby
107
+ part = Octopart::Part.find(39619421)
108
+ # => #<Octopart::Part >
109
+
110
+ part.datasheet
111
+ # => http://datasheet.octopart.com/H-46-6A-Bourns-datasheet-12570.pdf
112
+ ```
113
+
114
+ * * *
115
+
116
+ **.best_offer**
117
+
118
+ Returns the best offer (lowest price) for the quantity specified.
119
+
120
+ ```ruby
121
+ part = Octopart::Part.find(39619421)
122
+ # => #<Octopart::Part >
123
+
124
+ part.best_offer
125
+ # => #<Hashie::Mash >
126
+
127
+ part.best_offer.prices
128
+ # => [[1, 14.67, "USD"], [10, 13.69, "USD"], [30, 12.84, "USD"]]
129
+ ```
130
+
131
+ * * *
132
+
133
+ Returns the best price (lowest price) for the quantity specified.
134
+
135
+ **.best_price**
136
+
137
+ ```ruby
138
+ part = Octopart::Part.find(39619421)
139
+ # => #<Octopart::Part >
140
+
141
+ part.best_price
142
+ # => 14.67
143
+
144
+ part.best_price(100)
145
+ # => 12.84
97
146
  ```
98
147
 
99
148
  ## Contributing
@@ -3,8 +3,8 @@ module Octopart
3
3
 
4
4
  class << self
5
5
 
6
- # Public: Find's a part for a given uid and returns an Octopart::Part or
7
- # an Array of Octopart::Part if multipled UIDs are given.
6
+ # Public: Finds a part for a given uid and returns an Octopart::Part or
7
+ # an Array of Octopart::Part if multiple UIDs are given.
8
8
  #
9
9
  # args - Either a single Octopart UID, or multiple
10
10
  #
@@ -99,5 +99,67 @@ module Octopart
99
99
 
100
100
  end
101
101
 
102
+ # Public: Returns the datasheet with the highest score, or nil of no
103
+ # datasheets
104
+ #
105
+ # Examples
106
+ #
107
+ # Octopart::Part.find(39619421).datasheet
108
+ # # => http://datasheet.octopart.com/H-46-6A-Bourns-datasheet-12570.pdf
109
+ def datasheet
110
+ return nil unless datasheets.length > 0
111
+ datasheets.first.url
112
+ end
113
+
114
+ # Public: Returns the average price of the part in USD currency
115
+ #
116
+ # Examples
117
+ #
118
+ # Octopart::Part.find(39619421).average_price
119
+ # # => 16.455546153846154
120
+ def average_price
121
+ avg_price[0]
122
+ end
123
+
124
+ # Public: Returns the offer with the lowest price for the quantity
125
+ # requested
126
+ #
127
+ # Examples
128
+ #
129
+ # part = Octopart::Part.find(39619421)
130
+ # # => #<Octopart::Part >
131
+ #
132
+ # part.best_offer
133
+ # # => #<Hashie::Mash >
134
+ #
135
+ # part.best_offer.prices
136
+ # # => [[1, 14.67, "USD"], [10, 13.69, "USD"], [30, 12.84, "USD"]]
137
+ def best_offer(quantity = 1)
138
+ prices = []
139
+ offers.each do |offer|
140
+ p = offer.prices.select { |p| p[0] <= quantity }.last
141
+ prices << { sku: offer.sku, price: p[1] } if p
142
+ end
143
+ best = prices.min_by { |p| p[:price] }
144
+ offers.find { |offer| offer.sku == best[:sku] }
145
+ end
146
+
147
+ # Public: Returns the the lowest price of the best offer for the quantity
148
+ # requested
149
+ #
150
+ # Examples
151
+ #
152
+ # part = Octopart::Part.find(39619421)
153
+ # # => #<Octopart::Part >
154
+ #
155
+ # part.best_price
156
+ # # => 14.67
157
+ #
158
+ # part.best_price(100)
159
+ # # => 12.84
160
+ def best_price(quantity = 1)
161
+ best_offer.prices.reject { |p| p[0] > quantity }.last[1]
162
+ end
163
+
102
164
  end
103
165
  end
@@ -1,3 +1,3 @@
1
1
  module Octopart
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -0,0 +1,108 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://octopart.com/api/v2/parts/get?uid=39619421
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - ! '*/*; q=0.5, application/xml'
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ user-agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "Y2FjaGUtY29udHJvbA==":
23
+ - !binary |-
24
+ bm8tY2FjaGU=
25
+ !binary "Y29udGVudC1lbmNvZGluZw==":
26
+ - !binary |-
27
+ Z3ppcA==
28
+ !binary "Y29udGVudC10eXBl":
29
+ - !binary |-
30
+ dGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOA==
31
+ !binary "ZGF0ZQ==":
32
+ - !binary |-
33
+ U2F0LCAyOCBBcHIgMjAxMiAyMjo0NTowMiBHTVQ=
34
+ !binary "cHJhZ21h":
35
+ - !binary |-
36
+ bm8tY2FjaGU=
37
+ !binary "eC1hcHAtdGltZQ==":
38
+ - !binary |-
39
+ MC4wNjE=
40
+ !binary "dHJhbnNmZXItZW5jb2Rpbmc=":
41
+ - !binary |-
42
+ Y2h1bmtlZA==
43
+ !binary "Y29ubmVjdGlvbg==":
44
+ - !binary |-
45
+ a2VlcC1hbGl2ZQ==
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: !binary |-
49
+ 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
104
+ TQqg7LYOtd2zhVzj238Btf3WIsYtAAA=
105
+ http_version: !binary |-
106
+ MS4x
107
+ recorded_at: Sat, 28 Apr 2012 22:45:02 GMT
108
+ recorded_with: VCR 2.1.1
@@ -0,0 +1,108 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://octopart.com/api/v2/parts/get?uid=39619421
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - ! '*/*; q=0.5, application/xml'
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ user-agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "Y2FjaGUtY29udHJvbA==":
23
+ - !binary |-
24
+ bm8tY2FjaGU=
25
+ !binary "Y29udGVudC1lbmNvZGluZw==":
26
+ - !binary |-
27
+ Z3ppcA==
28
+ !binary "Y29udGVudC10eXBl":
29
+ - !binary |-
30
+ dGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOA==
31
+ !binary "ZGF0ZQ==":
32
+ - !binary |-
33
+ U2F0LCAyOCBBcHIgMjAxMiAyMjo0NTo1OSBHTVQ=
34
+ !binary "cHJhZ21h":
35
+ - !binary |-
36
+ bm8tY2FjaGU=
37
+ !binary "eC1hcHAtdGltZQ==":
38
+ - !binary |-
39
+ MC4wNjY=
40
+ !binary "dHJhbnNmZXItZW5jb2Rpbmc=":
41
+ - !binary |-
42
+ Y2h1bmtlZA==
43
+ !binary "Y29ubmVjdGlvbg==":
44
+ - !binary |-
45
+ a2VlcC1hbGl2ZQ==
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: !binary |-
49
+ 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
104
+ TQqg7LYOtd2zhVzj238Btf3WIsYtAAA=
105
+ http_version: !binary |-
106
+ MS4x
107
+ recorded_at: Sat, 28 Apr 2012 22:45:59 GMT
108
+ recorded_with: VCR 2.1.1
@@ -0,0 +1,108 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://octopart.com/api/v2/parts/get?uid=39619421
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - ! '*/*; q=0.5, application/xml'
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ user-agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "Y2FjaGUtY29udHJvbA==":
23
+ - !binary |-
24
+ bm8tY2FjaGU=
25
+ !binary "Y29udGVudC1lbmNvZGluZw==":
26
+ - !binary |-
27
+ Z3ppcA==
28
+ !binary "Y29udGVudC10eXBl":
29
+ - !binary |-
30
+ dGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOA==
31
+ !binary "ZGF0ZQ==":
32
+ - !binary |-
33
+ U2F0LCAyOCBBcHIgMjAxMiAyMzowMzo0MiBHTVQ=
34
+ !binary "cHJhZ21h":
35
+ - !binary |-
36
+ bm8tY2FjaGU=
37
+ !binary "eC1hcHAtdGltZQ==":
38
+ - !binary |-
39
+ MC4wNTU=
40
+ !binary "dHJhbnNmZXItZW5jb2Rpbmc=":
41
+ - !binary |-
42
+ Y2h1bmtlZA==
43
+ !binary "Y29ubmVjdGlvbg==":
44
+ - !binary |-
45
+ a2VlcC1hbGl2ZQ==
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: !binary |-
49
+ H4sIAAAAAAAAA81abW/byBH+Kwt9aQtYNJfvtFAUipNrjDs7geVcWqSGQFMr
50
+ iTXJ5S1JO6qR/96ZJVeiaEmkUyWuPhjyajmcnWfnfZ4GM5aHIsqKiKf54Ix8
51
+ eRoU7GsB3wbnHz5d3Vxc/Z28vRj/dkKoTW4+XV9NToijmXaSjMhkGcwL8jYK
52
+ ElYwcaaWr7hG+JzclCLNzwx9hDtics6TjOcRvudsEhRRSsKl4AkbkXEYsjzn
53
+ YkVuVhk7k8/B9jKFTQv58Ij8wgX5lDPyOSqWZ284kiYfBQujHOiRj7xgsBuo
54
+ AR85gb28WDJBrnmBbwIi7CGClwxOyCAUbBYV0xlPgijFY7KYJfA0tbSQJ40d
55
+ pYjx52VRZGenpzwseBaIYhjGUXif495T+fX0IStEEN7/7SGLZn81Peq5hu4P
56
+ vp2QjSR/TfldflJJhIT1yfod/DcWzNgMzspRSFKKcKS7mJ39k+UjgpRPpXwn
57
+ xQoWr4H4bESeQdCCStcM+18DMrrm7yeSZhwFaXFGgGZDAhsZpewxEPdHEZBu
58
+ UMu1tuWDBxhJ3IcK9xMyToOYL0bE0CvBjaiuZwAq7hutz0PwKADkLmSDOI7Y
59
+ DPANj8G55eDH9rZZH5+fv5tMPlxfvAPFkPox3NabyRh0iJy/v/5w+Y78cnF1
60
+ MXm/k9kHJqIwiI/BqaEbhu2Yuy6hvCs5IZaTJOQNn60IPbUqRd7JVcLLnIlj
61
+ MGW6DrVNtyU+NC1kCOxcXp4QfYhYo40hSoY7mWLDnKfRkUD1XJs65jaoa66S
62
+ pD9XPI2jlIFdyHgK9kSaiAb732dObN03TGOf0F7CXhLkYBxnUV6I6K4suDgK
63
+ g5ZuG5Zj0W35KfSk52jA2hDHxrbMokV0z1bHuGPUs23T0AffbsEcCDZnYhrN
64
+ wIinZRzDSin/MX2H+pZBYSHJpAd4P7ScoTNG7qIkWIANlH4QEJv6eva14QXy
65
+ aJEEmvIFyPKpR33fdE/lg6eVZxrWBLVFNEeiSMjsR8jqInSYGcu1fcc4SOOZ
66
+ /zu+ba+PbNu9ZOccZFfKrh8hez8h6Y374em71HBcfzetf2eL/oBWlPYcb0Pp
67
+ MKIVkT1Hq4k8g/QHOb7euFZMe90y7AS2orRHvfD4L0HWpDY192jYBo8equpL
68
+ SrTrfB3ISiL6QSLPkP0BxrI/qpJh8yDD/dS1kt8eOyVRRQO+hGxAgE+9R3v8
69
+ BEAPptMwDvJ8OkXJfoRoHJUxLZNpXmYZxHoCd1IHFvMlFxDkb3IbfEKGmVUw
70
+ eSjOJM1Ac5PkNCLNWVAE+ZKxYuMpkH6dKqx/3XYUtVMY1j5ivWtIDdvVtWwm
71
+ fUUecsGAmKEu9v9A2Hcsj7YJ02MQ9g3D/RGEqe7Zvmuaz2njheBz8Oi1yPP7
72
+ EiXj6m98T/fwHgQPQYQZm2Gia89ZOhPzP6ZwIWGtDgAyCLEr7/4F9hhUc03Y
73
+ +mnydgDkv1AdklxXc/TmB2ltNuAOS7Mba7aOa6bmumoROZWZYQH5bblY1iyo
74
+ 26GCh65Ess6TgJi63HCOp8ESktwMYpQW1cfHR23bkUOkl8XBKoXkHAV1JTM4
75
+ lNOWEr0RQTrDVRkaGZaO924Q5dOgLECFov8wjJ8KUbJq+U7wewYZNCzOgzjH
76
+ 1QyS32ABWTas1XK+K1cpf2yx+MKDAx9Pgxpl6vim7hhbKHsGvLsPyrbm+PsR
77
+ BfA8zTeaG5CwhPxISKqSAPJb2ykQ1UEot2oSp3juFpzrDWT8cXyOGw7Aarr/
78
+ B7AqKTRxdWxDxcp4BKXBrrTg3QoMykp1v/kBIsdETqWsQLYvctsJcwu1S5lN
79
+ d6AFSog2+nWVUJ28iVYjTVJImWD8upUQLaSveZ7ZBOu4UK1LHi+AqlVxaWH1
80
+ e1WP6QLLoe5rg7U+ewdY/bXKgJy28TkuVNS1Pd3RKUq2j1YFDymUdb9mAuqf
81
+ mvxHlQpaiI1xI3lX7ezEzfBeG7e1ILZwgzKjrEQoFbMsjCx6ODoITJx1EKLC
82
+ GROcn4IP1lBfqaF5llq7hS9HCFZUmQo57eni9pXLWqB+2FNVO+DuDMvwXxtb
83
+ U0lkC9tNnUmhSzEA7QOuo3kNjYSvx0XQprrpV3F0XwBFjpX1QmApVtYSd8Up
84
+ 1xPybrOrSymhKvfawClBdODWy+/J2NJshpb6Op24PYriUcu2deq4fW0ppgmB
85
+ EPwxDWT5fBdkY/y9AylKdee1kVqfvQMqu4eKHQcNy6mbCS8wg41exi4wauUh
86
+ E9SyDlAs3Xr17G0tgi1Q2j7N9DGF7mP2Xs+nrTsbPcHc3V/Zheml7MRAY3vT
87
+ iulA1rD94xtGzNW3UKq80/DqLXKjHFRPQwe1FPtZ8OFqlr32UzIiwfDD0qAL
88
+ CG9QVRVVQXHgkGr5OPqo2kE9EUTj2KqvtoKRt9CqGv7KVh1wwalBsK+awKmj
89
+ 7wC4iS5FiXfo4XGwcMEGGL6FL+8dYARxtmwHGUighco17vtTLgMNrQMaiA13
90
+ Oi5VzILK148vcSlZdIAzxCj9p4BjmLbtuI7/EnS+5kkUCr4nF/vHhFzizx1w
91
+ mKZr7lKV3XDUZciuguMew4asKKtmYK3358gWhl0MHUaCXiLbgpfhMi9gjmCY
92
+ r/bG1jfrXWSyguZ+Imd3DiRGpuXr/aWtMHixuNve/ufdY4uapmEb9ktknUPb
93
+ SASbaZKWcZnIn8lFV40VDIvdX7Yvucm3cFPDoGALmJCDcQbZ/7CoAxGU5bsG
94
+ /KXYxbB8G79DJRtXvOqv/NXDX6lnIZ3gYTGVTRAoQH+hDvhn27ZwLsfDv+uq
95
+ AOxMYN6LFdMcBuhKfOXg8/j6CoYBz8gkgfYy+Z3HZcLIGJsuwV0UR8WK/Bka
96
+ ZySLGPRY/oIQYGcO+wjK4CMdmfDOWAGP7ekPyKmKpQxGguEdx1G/IcxsIME8
97
+ Y2Hd/wmKao4FmxtPbY/wmUWLpWwOwkRggJ22ahd8KaCpiMeZxzyQO8o0wmlH
98
+ 6DWskjsuR/5kj181TqDFjLjOIxbP1Nrjmv6WtmFHcrzmCx5SLwNB3DGBverB
99
+ QxCX6wGTNGQCJJEWq2kSpVLOdQdFbgO2XFNDS1U2dmbxeuO3WyD5NDgoi3Me
100
+ c4HCa4iifsnWmUK1r9+R5JDo9oEGN9BMymFIEqafBj04u4RLLWDyrwdzSWPr
101
+ 9/N3CZch7sMZDl0OfxGMkUl1/7vFF8Mj0zk8olQGHvl+TpEBggz04RaHOHvI
102
+ UPDlcwex98ruwvccZtvkoGgfribQOxxCx13O5LbYA4XtqYpyIFepXbJDFXN4
103
+ zXTWeE0/oX+/RuqaDvG971ubug4WGPZr6C1eniAt50FYlALMwI7eX62QLd9T
104
+ TQqg7LYOtd2zhVzj238Btf3WIsYtAAA=
105
+ http_version: !binary |-
106
+ MS4x
107
+ recorded_at: Sat, 28 Apr 2012 23:03:42 GMT
108
+ recorded_with: VCR 2.1.1
@@ -0,0 +1,108 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://octopart.com/api/v2/parts/get?uid=39619421
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - ! '*/*; q=0.5, application/xml'
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ user-agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "Y2FjaGUtY29udHJvbA==":
23
+ - !binary |-
24
+ bm8tY2FjaGU=
25
+ !binary "Y29udGVudC1lbmNvZGluZw==":
26
+ - !binary |-
27
+ Z3ppcA==
28
+ !binary "Y29udGVudC10eXBl":
29
+ - !binary |-
30
+ dGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOA==
31
+ !binary "ZGF0ZQ==":
32
+ - !binary |-
33
+ U2F0LCAyOCBBcHIgMjAxMiAyMzowMzo0MyBHTVQ=
34
+ !binary "cHJhZ21h":
35
+ - !binary |-
36
+ bm8tY2FjaGU=
37
+ !binary "eC1hcHAtdGltZQ==":
38
+ - !binary |-
39
+ MC4wNjg=
40
+ !binary "dHJhbnNmZXItZW5jb2Rpbmc=":
41
+ - !binary |-
42
+ Y2h1bmtlZA==
43
+ !binary "Y29ubmVjdGlvbg==":
44
+ - !binary |-
45
+ a2VlcC1hbGl2ZQ==
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: !binary |-
49
+ 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
104
+ TQqg7LYOtd2zhVzj238Btf3WIsYtAAA=
105
+ http_version: !binary |-
106
+ MS4x
107
+ recorded_at: Sat, 28 Apr 2012 23:03:43 GMT
108
+ recorded_with: VCR 2.1.1
@@ -0,0 +1,69 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://octopart.com/api/v2/parts/get?uid=2042793624385
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - ! '*/*; q=0.5, application/xml'
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ user-agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "Y2FjaGUtY29udHJvbA==":
23
+ - !binary |-
24
+ bm8tY2FjaGU=
25
+ !binary "Y29udGVudC1lbmNvZGluZw==":
26
+ - !binary |-
27
+ Z3ppcA==
28
+ !binary "Y29udGVudC10eXBl":
29
+ - !binary |-
30
+ dGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOA==
31
+ !binary "ZGF0ZQ==":
32
+ - !binary |-
33
+ U2F0LCAyOCBBcHIgMjAxMiAyMjowNjozNyBHTVQ=
34
+ !binary "cHJhZ21h":
35
+ - !binary |-
36
+ bm8tY2FjaGU=
37
+ !binary "eC1hcHAtdGltZQ==":
38
+ - !binary |-
39
+ MC4wMTQ=
40
+ !binary "Y29udGVudC1sZW5ndGg=":
41
+ - !binary |-
42
+ NzU3
43
+ !binary "Y29ubmVjdGlvbg==":
44
+ - !binary |-
45
+ a2VlcC1hbGl2ZQ==
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: !binary |-
49
+ H4sIAAAAAAAAA71V227aQBD9FctS3wr4Do5UVSFpeklDWqIqqlBlLfZib3zb
50
+ 7q4hFPHvnVlMAlQttA/1kz2eOTM7c+bsykyojAXjitWVNM+MycpU9FHBmzl+
51
+ c2c4XevauH13Y9g9797wXxgX5+Ph7ci4ev/xxnxpmLGgCVNRUpeEVRiUsJTl
52
+ dNmN63LnfyMK/Jkpxc96vTpWNSdCdeKCxblE355+7c25EiTOX885S165YeC6
53
+ Xj80198gk6AzKiKWAE7VFAVYGv3hWJ7TD93A8dyBD9aS6zoursYdx/8w7PiO
54
+ c42VsJKktD0hlBOFFn/cqUmytCTdbWW6pNBybT9wezqy9xXC684ebPeBpwiN
55
+ cO6JcNZJcCcU5ofHkf7LdNoG+P5p/XSOl637eSKcfQROcydbcioKVuU4/9Ua
56
+ Ko6iuCBSRhF2+hNwEedYNWUkG84LRgV62mCTWS2A389LggFjKnEzcuM2K3Ez
57
+ FnoziJjWlXHFCs38hCgiM0qV5hwyuJ4Bg1sGyrxBIFyvz8PrzugS85M5Ybgn
58
+ ge+7OjetEjH7HkE/wNqyngsWb3g8AbpbXSsYWHsPLsGXu0sTUk5sS7v4g3Dv
59
+ 6e+4ONbGx/HsPZ9wxydofWyvvxtqQ16Nb1uDYC94J9bfOln9/i4mBm+irWAP
60
+ 1XmO8EN8f368A9w23veezox91lKiMlE3adb27l+VB9C2hIAJrMysLikHITiA
61
+ XSwW3QPhS5jkBVlWpKQ46EuQxc41XeKY97g3FKRK0KrFzPNDZCeTEWkUMI/9
62
+ oCh4SjR0Y56KOqeguWCckUKilYNgkpRVKdhajkybZVUvDorcattfqW5MFE1r
63
+ sQThfeIxmaeRZiEknAAB/8AusyQipyqSiqgGAcz78/Ho/ejtmXHDHmlinCPl
64
+ yZQVTOne4Ari0bddxxhchYQqcPzNiTYXyEyA4D9MUfDzzlKr9fZuwP5KTuOn
65
+ I5SkamYkVo2gAjL8Mti2jwdD1FfAkQkGjr1e/wQuebR5VgcAAA==
66
+ http_version: !binary |-
67
+ MS4x
68
+ recorded_at: Sat, 28 Apr 2012 22:06:37 GMT
69
+ recorded_with: VCR 2.1.1
@@ -0,0 +1,108 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://octopart.com/api/v2/parts/get?uid=39619421
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - ! '*/*; q=0.5, application/xml'
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ user-agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "Y2FjaGUtY29udHJvbA==":
23
+ - !binary |-
24
+ bm8tY2FjaGU=
25
+ !binary "Y29udGVudC1lbmNvZGluZw==":
26
+ - !binary |-
27
+ Z3ppcA==
28
+ !binary "Y29udGVudC10eXBl":
29
+ - !binary |-
30
+ dGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOA==
31
+ !binary "ZGF0ZQ==":
32
+ - !binary |-
33
+ U2F0LCAyOCBBcHIgMjAxMiAyMjowNzozMiBHTVQ=
34
+ !binary "cHJhZ21h":
35
+ - !binary |-
36
+ bm8tY2FjaGU=
37
+ !binary "eC1hcHAtdGltZQ==":
38
+ - !binary |-
39
+ MC4wNjQ=
40
+ !binary "dHJhbnNmZXItZW5jb2Rpbmc=":
41
+ - !binary |-
42
+ Y2h1bmtlZA==
43
+ !binary "Y29ubmVjdGlvbg==":
44
+ - !binary |-
45
+ a2VlcC1hbGl2ZQ==
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: !binary |-
49
+ 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
104
+ TQqg7LYOtd2zhVzj238Btf3WIsYtAAA=
105
+ http_version: !binary |-
106
+ MS4x
107
+ recorded_at: Sat, 28 Apr 2012 22:07:32 GMT
108
+ recorded_with: VCR 2.1.1
@@ -0,0 +1,108 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://octopart.com/api/v2/parts/get?uid=39619421
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - ! '*/*; q=0.5, application/xml'
12
+ accept-encoding:
13
+ - gzip, deflate
14
+ user-agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: !binary |-
20
+ T0s=
21
+ headers:
22
+ !binary "Y2FjaGUtY29udHJvbA==":
23
+ - !binary |-
24
+ bm8tY2FjaGU=
25
+ !binary "Y29udGVudC1lbmNvZGluZw==":
26
+ - !binary |-
27
+ Z3ppcA==
28
+ !binary "Y29udGVudC10eXBl":
29
+ - !binary |-
30
+ dGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOA==
31
+ !binary "ZGF0ZQ==":
32
+ - !binary |-
33
+ U2F0LCAyOCBBcHIgMjAxMiAyMjoxMzo0NiBHTVQ=
34
+ !binary "cHJhZ21h":
35
+ - !binary |-
36
+ bm8tY2FjaGU=
37
+ !binary "eC1hcHAtdGltZQ==":
38
+ - !binary |-
39
+ MC4wNzI=
40
+ !binary "dHJhbnNmZXItZW5jb2Rpbmc=":
41
+ - !binary |-
42
+ Y2h1bmtlZA==
43
+ !binary "Y29ubmVjdGlvbg==":
44
+ - !binary |-
45
+ a2VlcC1hbGl2ZQ==
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: !binary |-
49
+ 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
104
+ TQqg7LYOtd2zhVzj238Btf3WIsYtAAA=
105
+ http_version: !binary |-
106
+ MS4x
107
+ recorded_at: Sat, 28 Apr 2012 22:13:46 GMT
108
+ recorded_with: VCR 2.1.1
@@ -67,4 +67,59 @@ describe Octopart::Part do
67
67
  end
68
68
  end
69
69
  end
70
+
71
+ describe ".datasheet" do
72
+ context "when a part has datasheets" do
73
+ use_vcr_cassette
74
+ subject { described_class.find(39619421).datasheet }
75
+
76
+ it { should eq('http://datasheet.octopart.com/H-46-6A-Bourns-datasheet-12570.pdf') }
77
+ end
78
+
79
+ context "when a part doesn't have any datasheets" do
80
+ use_vcr_cassette
81
+ subject { described_class.find(2042793624385).datasheet }
82
+
83
+ it { should be_nil }
84
+ end
85
+ end
86
+
87
+ describe ".price" do
88
+ use_vcr_cassette
89
+ subject { described_class.find(39619421).average_price }
90
+
91
+ it { should eq(16.455546153846154) }
92
+ end
93
+
94
+ describe ".best_offer" do
95
+ context "for a quantity of 1" do
96
+ use_vcr_cassette
97
+ subject { described_class.find(39619421).best_offer.sku }
98
+
99
+ it { should eq('H466A') }
100
+ end
101
+
102
+ context "for a quantity of 100" do
103
+ use_vcr_cassette
104
+ subject { described_class.find(39619421).best_offer(100).sku }
105
+
106
+ it { should eq('H466A') }
107
+ end
108
+ end
109
+
110
+ describe ".best_price" do
111
+ context "for a quantity of 1" do
112
+ use_vcr_cassette
113
+ subject { described_class.find(39619421).best_price }
114
+
115
+ it { should eq(14.67) }
116
+ end
117
+
118
+ context "for a quantity of 100" do
119
+ use_vcr_cassette
120
+ subject { described_class.find(39619421).best_price(100) }
121
+
122
+ it { should eq(12.84) }
123
+ end
124
+ end
70
125
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: octopart
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-26 00:00:00.000000000 Z
12
+ date: 2012-04-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: hashie
16
- requirement: &2156957740 !ruby/object:Gem::Requirement
16
+ requirement: &70117845539880 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156957740
24
+ version_requirements: *70117845539880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: json
27
- requirement: &2156957320 !ruby/object:Gem::Requirement
27
+ requirement: &70117845533620 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2156957320
35
+ version_requirements: *70117845533620
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rest-client
38
- requirement: &2156956900 !ruby/object:Gem::Requirement
38
+ requirement: &70117845543100 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2156956900
46
+ version_requirements: *70117845543100
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &2156956480 !ruby/object:Gem::Requirement
49
+ requirement: &70117845557740 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2156956480
57
+ version_requirements: *70117845557740
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: vcr
60
- requirement: &2156956060 !ruby/object:Gem::Requirement
60
+ requirement: &70117845567240 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2156956060
68
+ version_requirements: *70117845567240
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: fakeweb
71
- requirement: &2156955640 !ruby/object:Gem::Requirement
71
+ requirement: &70117845588580 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2156955640
79
+ version_requirements: *70117845588580
80
80
  description: Ruby gem for the Octopart API
81
81
  email:
82
82
  - eric@ejholmes.net
@@ -97,10 +97,17 @@ files:
97
97
  - lib/octopart/part.rb
98
98
  - lib/octopart/version.rb
99
99
  - octopart.gemspec
100
+ - spec/fixtures/cassettes/Octopart_Part/_best_offer/for_a_quantity_of_1.yml
101
+ - spec/fixtures/cassettes/Octopart_Part/_best_offer/for_a_quantity_of_100.yml
102
+ - spec/fixtures/cassettes/Octopart_Part/_best_price/for_a_quantity_of_1.yml
103
+ - spec/fixtures/cassettes/Octopart_Part/_best_price/for_a_quantity_of_100.yml
100
104
  - spec/fixtures/cassettes/Octopart_Part/_bom/when_give_an_mpn.yml
105
+ - spec/fixtures/cassettes/Octopart_Part/_datasheet/when_a_part_doesn_t_have_any_datasheets.yml
106
+ - spec/fixtures/cassettes/Octopart_Part/_datasheet/when_a_part_has_datasheets.yml
101
107
  - spec/fixtures/cassettes/Octopart_Part/_find/when_given_a_part_uid.yml
102
108
  - spec/fixtures/cassettes/Octopart_Part/_find/when_given_multiple_part_uids.yml
103
109
  - spec/fixtures/cassettes/Octopart_Part/_match/when_given_a_manufacturer_and_an_mpn.yml
110
+ - spec/fixtures/cassettes/Octopart_Part/_price.yml
104
111
  - spec/fixtures/cassettes/Octopart_Part/_search/when_given_a_query.yml
105
112
  - spec/lib/config_spec.rb
106
113
  - spec/lib/part_spec.rb
@@ -130,11 +137,19 @@ signing_key:
130
137
  specification_version: 3
131
138
  summary: Ruby gem for the Octopart API
132
139
  test_files:
140
+ - spec/fixtures/cassettes/Octopart_Part/_best_offer/for_a_quantity_of_1.yml
141
+ - spec/fixtures/cassettes/Octopart_Part/_best_offer/for_a_quantity_of_100.yml
142
+ - spec/fixtures/cassettes/Octopart_Part/_best_price/for_a_quantity_of_1.yml
143
+ - spec/fixtures/cassettes/Octopart_Part/_best_price/for_a_quantity_of_100.yml
133
144
  - spec/fixtures/cassettes/Octopart_Part/_bom/when_give_an_mpn.yml
145
+ - spec/fixtures/cassettes/Octopart_Part/_datasheet/when_a_part_doesn_t_have_any_datasheets.yml
146
+ - spec/fixtures/cassettes/Octopart_Part/_datasheet/when_a_part_has_datasheets.yml
134
147
  - spec/fixtures/cassettes/Octopart_Part/_find/when_given_a_part_uid.yml
135
148
  - spec/fixtures/cassettes/Octopart_Part/_find/when_given_multiple_part_uids.yml
136
149
  - spec/fixtures/cassettes/Octopart_Part/_match/when_given_a_manufacturer_and_an_mpn.yml
150
+ - spec/fixtures/cassettes/Octopart_Part/_price.yml
137
151
  - spec/fixtures/cassettes/Octopart_Part/_search/when_given_a_query.yml
138
152
  - spec/lib/config_spec.rb
139
153
  - spec/lib/part_spec.rb
140
154
  - spec/spec_helper.rb
155
+ has_rdoc: