Class: PM::SpecificationInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods-byte-panglem-beta/recorder.rb

Overview

对应cocoapods 的Specification

Constant Summary collapse

@@possibilities =
{}

Class Method Summary collapse

Class Method Details

.get_a_specfication(name, version) ⇒ Object



405
406
407
408
409
410
# File 'lib/cocoapods-byte-panglem-beta/recorder.rb', line 405

def self.get_a_specfication(name, version)
  result =  @@possibilities[name].find { |specification|
    specification.version.version == version
  }
  result
end

.get_infoObject



401
402
403
# File 'lib/cocoapods-byte-panglem-beta/recorder.rb', line 401

def self.get_info()
    @@possibilities
end

.get_specfication(response_data = {}, original_sdk_spec) ⇒ Object



412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
# File 'lib/cocoapods-byte-panglem-beta/recorder.rb', line 412

def self.get_specfication(response_data ={}, original_sdk_spec)

  ##  这里需要获取到所有需要获取SDK期望版本下 所有subspec的specfication集合.
  ## 1. 获取到期望sdk的版本号 和 基础库的版本号
  ## 2. 计算出所有需要的subspec的名称
  ## 3. 计算出升级时需要替换的所有的specfication
  info_r = get_info
  target_sdk_version = response_data["data"]["pangle_sdk_version"]
  # target_sdk_version = "5.9.0.4"
  sdk_name = PM::BuildConfig.pangle_sdk_beta
  if target_sdk_version == nil || target_sdk_version.length == 0
    ## 兜底, 赋值为当前版本且为正式版
    target_sdk_version = original_sdk_spec.spec.version.version
    sdk_name = PM::BuildConfig.pangle_sdk_release
  else

  end
  rely_name = PM::BuildConfig.rely_name
  result = UpdateResut.new()
  result.sdk_name = sdk_name
  result.rely_name = rely_name
  target_sdk_root_spec = nil
  target_sdk_spec_list = info_r[sdk_name].select do |spec|
    target_sdk_root_spec = spec if spec.name == sdk_name && spec.version.version == target_sdk_version
    Pod::Specification.root_name(spec.name) == sdk_name && spec.version.version == target_sdk_version
  end
  if target_sdk_root_spec == nil
    raise "[cocoapods-byte-panglem-beta][error] pangle sdk(beta) version:#{target_sdk_version} not found, please try use `pod install --repo-update`"
  end
  if target_sdk_root_spec.version.version != original_sdk_spec.spec.version.version

    result.is_sdk_update = true
    result.sdk_list = target_sdk_spec_list
    result.sdk_original_version = original_sdk_spec.spec.version.version
    result.sdk_target_version = target_sdk_root_spec.version.version
    PM::Recorder.instance.sdk_original_version = result.sdk_original_version
    PM::Recorder.instance.sdk_target_version = result.sdk_target_version
    target_rely_version = target_sdk_root_spec.get_rely_version
    original_rely_version = original_sdk_spec.spec.get_rely_version
    # target_rely_version = "0.2.0.0"
    if target_rely_version != original_rely_version
      target_rely_spec_list = info_r[rely_name].select do |spec|
        Pod::Specification.root_name(spec.name) == rely_name && spec.version.version == target_rely_version
      end
      result.is_rely_update = true
      result.rely_list = target_rely_spec_list
      result.rely_original_version = original_rely_version
      result.rely_target_version = target_rely_version
      PM::Recorder.instance.rely_original_version = result.rely_original_version
      PM::Recorder.instance.rely_target_version = result.rely_target_version
    end
  end
  result
end

.update(name = '', possibilities) ⇒ Object



394
395
396
397
398
399
# File 'lib/cocoapods-byte-panglem-beta/recorder.rb', line 394

def self.update(name = '', possibilities)
    if name.length > 0
        @@possibilities[name] ||= []
        @@possibilities[name] = @@possibilities[name] | possibilities
    end
end