magento_remote 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/magento_remote/magento_mech.rb +22 -1
- data/lib/magento_remote/version.rb +1 -1
- data/magento_remote.gemspec +2 -2
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZWJlMDMyMjViOWFmMDdjYTMyODVlNTViMTYwYWQ5MjU5MDUwZjg1Zg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OWVmMjRhMDA0OGU1NzhlMWFmOTk5MTA2ZmM3ZThhZWJkNTc0ZmVkNQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Y2VhYWQxMjNlZmQ1ZDk5YjQ0ZDc3ZjBkN2RmMzlmN2RjNjM1ZGY1YjdkYTgx
|
10
|
+
OGE2OGNmODcxZTAzNDc0ZGNiMzM4ZDEyMDQyOWEzNmEyYjNjOTY2YjIxMmM2
|
11
|
+
ODAzNWI4YTZmMmM5N2I4MDcwMWY4NzllZTUyYWEzODY3Mzk2ZmQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MzdjMzk0ZjZjZjkzZmFmYjdiZjgxNjUzZDYxOWY2MDEzOGJkMzk0MTYxYzU1
|
14
|
+
ZjkyMDk5MjNmNWMzMDA3OTM1YWM5YzMxMDZmNjdmOWVjNmNhNDMxODQ2MDI2
|
15
|
+
Zjg3MjVmNTE2YTVkOTRjODgyZmNmNzUwMWM5ZWQ0MTExMWE0NWU=
|
@@ -64,10 +64,27 @@ class MagentoMech
|
|
64
64
|
# Puts as many items of given product to cart as possible
|
65
65
|
# Returns number of items put to cart.
|
66
66
|
def add_to_cart! product_id, qty
|
67
|
+
# Try to be a bit clever and early find out whether article
|
68
|
+
# is out of stock.
|
69
|
+
if add_to_cart(product_id, qty)
|
70
|
+
return qty
|
71
|
+
end
|
72
|
+
num_ordered = 0
|
73
|
+
# Apparently not enough in stock!
|
74
|
+
|
75
|
+
if qty.to_i > 4
|
76
|
+
if !add_to_cart(product_id, 1)
|
77
|
+
# out of stock
|
78
|
+
return 0
|
79
|
+
else
|
80
|
+
num_ordered = 1
|
81
|
+
qty = qty.to_i - 1
|
82
|
+
end
|
83
|
+
end
|
67
84
|
while qty.to_i > 0 && !add_to_cart(product_id, qty)
|
68
85
|
qty = qty.to_i - 1
|
69
86
|
end
|
70
|
-
qty.to_i
|
87
|
+
qty.to_i + num_ordered
|
71
88
|
end
|
72
89
|
|
73
90
|
# Get the current carts contents
|
@@ -134,6 +151,7 @@ class MagentoMech
|
|
134
151
|
# start_pid: With which product id to start scraping
|
135
152
|
# returns [[name1, product_id1, instock?1],[name2, p_id2...]...]
|
136
153
|
# or nil if not found.
|
154
|
+
# yielding would be nice
|
137
155
|
def scrape_products start_pid, limit
|
138
156
|
products = []
|
139
157
|
limit.times do |idx|
|
@@ -145,6 +163,9 @@ class MagentoMech
|
|
145
163
|
wishlist_link.attributes['href'].value[/product\/(\d+)/]
|
146
164
|
pid = $1
|
147
165
|
products << [product_name, pid]
|
166
|
+
if block_given?
|
167
|
+
yield [product_name, pid]
|
168
|
+
end
|
148
169
|
end
|
149
170
|
|
150
171
|
return products
|
data/magento_remote.gemspec
CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency 'mechanize'
|
22
|
-
spec.add_dependency 'terminal-table'
|
21
|
+
spec.add_dependency 'mechanize', "~> 2.7"
|
22
|
+
spec.add_dependency 'terminal-table', "~> 1.4"
|
23
23
|
|
24
24
|
spec.add_development_dependency "bundler", "~> 1.6"
|
25
25
|
spec.add_development_dependency "rake"
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: magento_remote
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Wolfsteller
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mechanize
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.7'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.7'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: terminal-table
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '1.4'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1.4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|