spaceship 0.29.1 → 0.30.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d4e75e36b96e235ad42ccf5b079606cb07035d7
4
- data.tar.gz: c9fc39ec8e35fe6f33742aef5de6060319dc6f4d
3
+ metadata.gz: 0c8703b43554cede5448efcfdca163bd53a68bab
4
+ data.tar.gz: f36dc587a3b0b35f7822a2239842c938f8ff960b
5
5
  SHA512:
6
- metadata.gz: 821dba04783f7d0562570e94e090bddc5c5a1f57b792b41ebac591392d72bb829967ad12bbb6aa572c1e0992d3f4d3df100a264d0193bea78d8b7eb29b6644f2
7
- data.tar.gz: af3c621980ae4195d17f4871b52f20c568f940147a7820ff0d5d5ad2f8a5cf77f0d4c868d5111161626350c793becf1f71ce119fe2f14d87a13ebc382654fa64
6
+ metadata.gz: cee57e7c7ce91123da67e7ea96b701ca14995f2d8d846f181f969be2173953be2c850fbafe5eb0162ad16978670b7e80e8ccdb14673ccad2fed76e0ea597899c
7
+ data.tar.gz: 3eef484c169b9b547659e9898ded742a1fd717ed8eee91e6db4794c659699a65e8ff25d21b8294f8ef0def0d90a296abd0a2ace0f9d35ce4d6a8984e9aded644
@@ -358,6 +358,7 @@ module Spaceship
358
358
  raise "sort_order must not be > 5" if sort_order > 5
359
359
  # this will also check both language and device parameters
360
360
  device_lang_screenshots = screenshots_data_for_language_and_device(language, device)["value"]
361
+
361
362
  existing_sort_orders = device_lang_screenshots.map { |s| s["value"]["sortOrder"] }
362
363
  if screenshot_path # adding / replacing
363
364
  upload_file = UploadFile.from_path screenshot_path
@@ -372,6 +373,15 @@ module Spaceship
372
373
  "originalFileName" => upload_file.file_name
373
374
  }
374
375
  }
376
+
377
+ # We disable "scaling" for this device type / language combination
378
+ # We only set this, if we actually successfully uploaded a new screenshot
379
+ # for this device / language combination
380
+ # if this value is not set, iTC will fallback to another device type for screenshots
381
+ language_details = raw_data_details.find { |d| d["language"] == language }["displayFamilies"]["value"]
382
+ device_language_details = language_details.find { |display_family| display_family['name'] == device }
383
+ device_language_details["scaled"]["value"] = false
384
+
375
385
  if existing_sort_orders.include?(sort_order) # replace
376
386
  device_lang_screenshots[existing_sort_orders.index(sort_order)] = new_screenshot
377
387
  else # add
@@ -528,13 +538,17 @@ module Spaceship
528
538
  # IDEA: better error for non existing language
529
539
  raise "#{language} isn't an activated language" unless languages.count > 0
530
540
  lang_details = languages[0]
531
- devices_details = lang_details[data_field]["value"]
532
- raise "Unexpected state: missing device details for #{device}" unless devices_details.key? device
533
- devices_details[device]
541
+ display_families = lang_details["displayFamilies"]["value"]
542
+ device_details = display_families.find { |display_family| display_family['name'] == device }
543
+ raise "Unexpected state: missing device details for #{device}" unless device_details.key?(data_field)
544
+ return device_details[data_field]
545
+ rescue => ex
546
+ raise "iTunes Connect error: #{ex}"
534
547
  end
535
548
 
536
549
  def setup_screenshots
537
550
  @screenshots = {}
551
+
538
552
  raw_data_details.each do |row|
539
553
  # Now that's one language right here
540
554
  @screenshots[row['language']] = setup_screenshots_for(row)
@@ -543,16 +557,58 @@ module Spaceship
543
557
 
544
558
  # generates the nested data structure to represent screenshots
545
559
  def setup_screenshots_for(row)
546
- screenshots = row.fetch("screenshots", {}).fetch("value", nil)
547
- return [] unless screenshots
560
+ display_families = row.fetch("displayFamilies", {}).fetch("value", nil)
561
+ return [] unless display_families
548
562
 
549
563
  result = []
550
564
 
551
- screenshots.each do |device_type, value|
552
- value["value"].each do |screenshot|
565
+ display_families.each do |display_family|
566
+ # {
567
+ # "name": "iphone6Plus",
568
+ # "scaled": {
569
+ # "value": false,
570
+ # "isEditable": false,
571
+ # "isRequired": false,
572
+ # "errorKeys": null
573
+ # },
574
+ # "screenshots": {
575
+ # "value": [{
576
+ # "value": {
577
+ # "assetToken": "Purple62/v4/08/0a/04/080a0430-c2cc-2577-f491-9e0a09c58ffe/mzl.pbcpzqyg.jpg",
578
+ # "sortOrder": 1,
579
+ # "type": null,
580
+ # "originalFileName": "ios-414-1.jpg"
581
+ # },
582
+ # "isEditable": true,
583
+ # "isRequired": false,
584
+ # "errorKeys": null
585
+ # }, {
586
+ # "value": {
587
+ # "assetToken": "Purple71/v4/de/81/aa/de81aa10-64f6-332e-c974-9ee46adab675/mzl.cshkjvwl.jpg",
588
+ # "sortOrder": 2,
589
+ # "type": null,
590
+ # "originalFileName": "ios-414-2.jpg"
591
+ # },
592
+ # "isEditable": true,
593
+ # "isRequired": false,
594
+ # "errorKeys": null
595
+ # }],
596
+ # "isEditable": true,
597
+ # "isRequired": false,
598
+ # "errorKeys": null
599
+ # },
600
+ # "trailer": {
601
+ # "value": null,
602
+ # "isEditable": true,
603
+ # "isRequired": false,
604
+ # "errorKeys": null
605
+ # }
606
+ # }
607
+
608
+ display_family.fetch("screenshots", {}).fetch("value", []).each do |screenshot|
553
609
  screenshot_data = screenshot["value"]
554
610
  data = {
555
- device_type: device_type,
611
+ device_type: display_family['name'],
556
612
  language: row["language"]
557
613
  }.merge(screenshot_data)
558
614
  result << Tunes::AppScreenshot.factory(data)
@@ -572,19 +628,24 @@ module Spaceship
572
628
 
573
629
  # generates the nested data structure to represent trailers
574
630
  def setup_trailers_for(row)
575
- trailers = row.fetch("appTrailers", {}).fetch("value", nil)
576
- return [] unless trailers
631
+ display_families = row.fetch("displayFamilies", {}).fetch("value", nil)
632
+ return [] unless display_families
577
633
 
578
634
  result = []
579
635
 
580
- trailers.each do |device_type, value|
581
- trailer_data = value["value"]
582
- next if trailer_data.nil?
583
- data = {
584
- device_type: device_type,
585
- language: row["language"]
586
- }.merge(trailer_data)
587
- result << Tunes::AppTrailer.factory(data)
636
+ display_families.each do |display_family|
637
+ trailers = display_family.fetch("trailer", {}).fetch("value")
638
+ next if trailers.nil?
639
+
640
+ trailers.each do |trailer|
641
+ trailer_data = trailer["value"]
642
+ next if trailer_data.nil?
643
+ data = {
644
+ device_type: display_family['name'],
645
+ language: row["language"]
646
+ }.merge(trailer_data)
647
+ result << Tunes::AppTrailer.factory(data)
648
+ end
588
649
  end
589
650
 
590
651
  return result
@@ -1,4 +1,4 @@
1
1
  module Spaceship
2
- VERSION = "0.29.1".freeze
2
+ VERSION = "0.30.0".freeze
3
3
  DESCRIPTION = "Ruby library to access the Apple Dev Center and iTunes Connect".freeze
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spaceship
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.1
4
+ version: 0.30.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-07-31 00:00:00.000000000 Z
12
+ date: 2016-08-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: credentials_manager