shopifydev 0.0.11 → 0.0.12

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.
@@ -57,12 +57,19 @@ module Shopifydev
57
57
  end
58
58
 
59
59
  def metafield_import_csv(resources, opts={})
60
- opts[:import_type] ||= :product_variant_sku
60
+ opts[:import_type] ||= :product_variant_multikey
61
61
  opts[:num] ||= 1
62
62
  opts[:namespace] ||= namespace
63
+ opts[:keys] ||= [key]
64
+ opts[:keys] = [opts[:keys]].flatten
65
+
66
+ resources = [resources].flatten
63
67
 
64
68
  out = ""
65
69
 
70
+ while(opts[:keys].length < opts[:num]); opts[:keys] << key; end
71
+ puts "opts: #{opts.inspect}" if opts[:verbose]
72
+
66
73
  case opts[:import_type]
67
74
  when :owner_resource
68
75
  when :product_handle
@@ -87,7 +94,16 @@ module Shopifydev
87
94
  raise "don't know how to create import csv for #{opts[:type].to_s}"
88
95
  end
89
96
 
90
- out
97
+ if opts[:file]
98
+ opts[:file] << ".csv" unless opts[:file].include?('.csv')
99
+ File.open(opts[:file], 'w') { |file|
100
+ file.write(out)
101
+ }
102
+ puts "wrote #{out.lines.to_a.length - 1} records to #{opts[:file]}"
103
+ nil
104
+ else
105
+ out
106
+ end
91
107
  end
92
108
  end
93
109
  end
@@ -380,19 +380,17 @@ shopifydev_command_set = Pry::CommandSet.new do
380
380
  end
381
381
 
382
382
  block_command "consume_api", "use up Shopify API calls until only [x] remain (default 0)" do |num|
383
-
384
- num ||= 1
385
- num = num.to_i
386
- puts Color.yellow{ "consuming api calls until only #{num} are left..."}
387
- res = Shydra::Resources::Product.new.run
388
- pids = res.data.map{|r| r['id']}
389
- used, max = res.headers['HTTP_X_SHOPIFY_SHOP_API_CALL_LIMIT'].split('/').map(&:to_i)
390
- h = Shydra::Hydra.new(max_concurrency: 50)
391
- to_consume = max - used - num - 1
392
- if to_consume > 0
393
- to_consume.times{ h.queue(Shydra::Resources::Product.new(id: pids.sample)) }
394
- h.run
395
- end
383
+ require "shopifydev/shopify_api/consume_api"
384
+ report = Shopifydev::ShopifyAPI::ConsumeAPI.consume(num) do |report_line|
385
+ case report_line.first.first
386
+ when :info
387
+ puts Color.yellow{ report_line.first.last }
388
+ when :status
389
+ puts Color.blue{ report_line.first.last }
390
+ else
391
+ puts report_line.first.last
392
+ end
393
+ end
396
394
  end
397
395
 
398
396
  end
@@ -0,0 +1,31 @@
1
+ module Shopifydev
2
+ module ShopifyAPI
3
+ module ConsumeAPI
4
+ def self.consume(num=nil)
5
+ report = []
6
+ num ||= 1
7
+ num = num.to_i
8
+ report << {info: "consuming api calls until only #{num} are left..."}
9
+ yield report.last if block_given?
10
+ res = Shydra::Resources::Product.new.run
11
+ pids = res.data.map{|r| r['id']}
12
+ used, max = res.headers['HTTP_X_SHOPIFY_SHOP_API_CALL_LIMIT'].split('/').map(&:to_i)
13
+ report << {debug: "used: #{used.inspect} max: #{max.inspect}"}
14
+ yield report.last if block_given?
15
+ h = Shydra::Hydra.new(max_concurrency: 50)
16
+ to_consume = max - used - num - 2
17
+ report << {debug: "queueing to_consume: #{to_consume.inspect} requests"}
18
+ yield report.last if block_given?
19
+ if to_consume > 0
20
+ to_consume.times{ h.queue(Shydra::Resources::Product.new(id: pids.sample)) }
21
+ h.run
22
+ ::ShopifyAPI::Shop.current
23
+ end
24
+ report << {status: "credit_left: #{::ShopifyAPI.credit_left}"}
25
+ yield report.last if block_given?
26
+
27
+ return report
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,3 +1,3 @@
1
1
  module Shopifydev
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopifydev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-18 00:00:00.000000000 Z
12
+ date: 2013-07-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -294,6 +294,7 @@ files:
294
294
  - lib/shopifydev/railtie.rb
295
295
  - lib/shopifydev/shop.rb
296
296
  - lib/shopifydev/shopify_api/caches.rb
297
+ - lib/shopifydev/shopify_api/consume_api.rb
297
298
  - lib/shopifydev/spec/helpers.rb
298
299
  - lib/shopifydev/template.rb
299
300
  - lib/shopifydev/version.rb
@@ -320,7 +321,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
320
321
  version: '0'
321
322
  segments:
322
323
  - 0
323
- hash: 3004059551718716320
324
+ hash: -3704745161446576111
324
325
  required_rubygems_version: !ruby/object:Gem::Requirement
325
326
  none: false
326
327
  requirements:
@@ -329,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
329
330
  version: '0'
330
331
  segments:
331
332
  - 0
332
- hash: 3004059551718716320
333
+ hash: -3704745161446576111
333
334
  requirements: []
334
335
  rubyforge_project:
335
336
  rubygems_version: 1.8.25