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



423
424
425
426
427
428
# File 'lib/cocoapods-byte-panglem-beta/recorder.rb', line 423

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

.get_infoObject



419
420
421
# File 'lib/cocoapods-byte-panglem-beta/recorder.rb', line 419

def self.get_info()
    @@possibilities
end

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



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
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
# File 'lib/cocoapods-byte-panglem-beta/recorder.rb', line 430

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"]
  original_sdk_version = original_sdk_spec.spec.version.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 = "0.0.0.0"
    original_rely_version = "0.0.0.0"
    if Gem::Version.new(target_sdk_version) < Gem::Version.new("6.3.0.0")
      target_rely_version = target_sdk_root_spec.get_rely_version
    end
    if Gem::Version.new(original_sdk_version) < Gem::Version.new("6.3.0.0")
      original_rely_version = original_sdk_spec.spec.get_rely_version
    end


    # target_rely_version = "0.2.0.0"
    ## 判断灰度目标版本是否>=6300, 大于等于 则删除rely的依赖
    if Gem::Version.new(target_sdk_version) >= Gem::Version.new("6.3.0.0")
      result.is_rely_remove = true;
      result.is_rely_update = false
      result.rely_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
    else

      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_remove = false;
        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

  end
  result
end

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



412
413
414
415
416
417
# File 'lib/cocoapods-byte-panglem-beta/recorder.rb', line 412

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