class Object
Constants
- Binary
- CurrentPodfilePath
- Deprecated
- DevPods
- EachDevPods
- Now
- PODS
- Podfile_Map
- SourceContainer
- SourceContainerUri
- Target_Dev_Pod_Container
- Target_Dev_Pods_Map
- WarningModules
Public Instance Methods
adaptPodinfoToHashArray(podInfo)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 319 def adaptPodinfoToHashArray(podInfo) argsment = Array.new() podInfo.each do |key,value| if key != 'name' && key != 'version' argsment << Hash[key.to_sym => value] end end argsment end
bd_awesome_func(text)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 242 def bd_awesome_func(text) system ("osascript -e 'display notification \"废弃理由:#{text},\n 组件废弃时间:#{text} \" with title \"#{text}-#{text} 被废弃\" subtitle \"操作人:#{text}\" '") end
bd_enable_DevelopMode()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 271 def bd_enable_DevelopMode if File::exist?('Podfile_Patch') $Bd_enable_DevelopMode = true load 'Podfile_Patch' end end
bd_fetch(tag)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 287 def bd_fetch(tag) component = get_fetch('http://tosv.byted.org/obj/iosbinary/component_test.json') $AllInfo = JSON.parse(component.body) raise "标签不相符" unless $AllInfo['uuid'] == tag createProject end
bd_ignore_binary!()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 411 def bd_ignore_binary!() raise "You should set bd_ignore_binary! before bd_use_binary! 、 bd_use_source!、bd_use_app" if $BD_used $BD_ignore = 'binary' bd_use_source! end
bd_ignore_source!()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 417 def bd_ignore_source!() raise "You should set bd_ignore_source! before bd_use_binary! 、 and bd_use_source!、bd_use_app" if $BD_used $BD_ignore = 'source' bd_use_binary! end
bd_source(url)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 423 def bd_source(url) if $LOADEDBINARYSOURCE == 0 source 'git@code.byted.org:wusizhen.arch/ios_frameworks.git' $LOADEDBINARYSOURCE = 1 end source url end
bd_use_app(*appName)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 365 def bd_use_app (*appName) plugin 'cocoapods-bytedance-transform' plugin 'cocoapods-bytedance-Slardar' plugin 'cocoapods-bytedance-PlatformRecord' plugin 'cocoapods-bytedance-DebugBinary' $BD_used = true $Apps = Array.new for app in 0...appName.length each_bd_use_app(appName[app]) end end
bd_use_binary!()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 405 def bd_use_binary!() $BD_used = true raise "You have already setted bd_use_source! or bd_ignore_binary!" unless $NEEDSOURCE != 1 $NEEDBINARY = 1 end
bd_use_source!()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 399 def bd_use_source!() $BD_used = true raise "You have already setted bd_use_binary! or bd_ignore_source!" unless $NEEDBINARY != 1 $NEEDSOURCE = 1 end
bytedanceAnalyzeSpeed(enable=true,type = {:project_type => 'objective-c'})
click to toggle source
# File lib/bd_pod_extension_net.rb, line 354 def bytedanceAnalyzeSpeed(enable=true,type = {:project_type => 'objective-c'}) if enable if type[:project_type] == 'swift' removeDependencyVersion elsif type[:project_type] == 'objective-c' startSpeed end end end
bytedanceRemoveAllConfuse()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 350 def bytedanceRemoveAllConfuse $Confuse_Enable = true end
colorize(text, color = "default", bgColor = "default")
click to toggle source
# File lib/bd_pod_extension_net.rb, line 701 def colorize(text, color = "default", bgColor = "default") colors = {"default" => "38","black" => "30","red" => "31","green" => "32","brown" => "33", "blue" => "34", "purple" => "35", "cyan" => "36", "gray" => "37", "dark gray" => "1;30", "light red" => "1;31", "light green" => "1;32", "yellow" => "1;33", "light blue" => "1;34", "light purple" => "1;35", "light cyan" => "1;36", "white" => "1;37"} bgColors = {"default" => "0", "black" => "40", "red" => "41", "green" => "42", "brown" => "43", "blue" => "44", "purple" => "45", "cyan" => "46", "gray" => "47", "dark gray" => "100", "light red" => "101", "light green" => "102", "yellow" => "103", "light blue" => "104", "light purple" => "105", "light cyan" => "106", "white" => "107"} color_code = colors[color] bgColor_code = bgColors[bgColor] return "\033[#{bgColor_code};#{color_code}m#{text}\033[0m" end
common_pod_command(moduleName,argsment,binary=1)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 522 def common_pod_command(moduleName,argsment,binary=1) if $CurrentDevPods return unless !$CurrentDevPods.include?(moduleName) end moduleName,argsment = subspecHandle(moduleName,argsment) if argsment.empty? puts "#{colorize("===============================================================================","purple")}" puts "#{colorize("#{moduleName} undefined the exact version","purple")}" puts "#{colorize("===============================================================================","purple")}" bd_platform_pod moduleName else versionTemparray = argsment.reject{ |item| item.class != String || item == -1 } newarray = argsment.reject { |item| item.class == String || item == -1 } if versionTemparray.empty? if newarray.length == 0 puts "#{colorize("===============================================================================","purple")}" puts "#{colorize("#{moduleName} undefined the exact version","purple")}" puts "#{colorize("===============================================================================","purple")}" bd_platform_pod moduleName elsif newarray.length == 1 bd_platform_pod moduleName,newarray[0] elsif newarray.length == 2 bd_platform_pod moduleName,newarray[0],newarray[1] elsif newarray.length == 3 bd_platform_pod moduleName,newarray[0],newarray[1],newarray[2] elsif newarray.length == 4 bd_platform_pod moduleName,newarray[0],newarray[1],newarray[2],newarray[3] end else if newarray.empty? bd_platform_pod moduleName,pod_binary_version_check(moduleName,versionTemparray[0],binary) elsif newarray.length == 1 bd_platform_pod moduleName,pod_binary_version_check(moduleName,versionTemparray[0],binary),newarray[0] elsif newarray.length == 2 bd_platform_pod moduleName,pod_binary_version_check(moduleName,versionTemparray[0],binary),newarray[0],newarray[1] elsif newarray.length == 3 bd_platform_pod moduleName,pod_binary_version_check(moduleName,versionTemparray[0],binary),newarray[0],newarray[1],newarray[2] elsif newarray.length == 4 bd_platform_pod moduleName,pod_binary_version_check(moduleName,versionTemparray[0],binary),newarray[0],newarray[1],newarray[2],newarray[3] end end end end
containSubspecComponent(argsment)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 508 def containSubspecComponent(argsment) if !argsment.empty? argsment.each do |subspec| if subspec.class == Hash if subspec.keys.include?(:subspecs) return true end end end end return false end
createProject()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 294 def createProject $AllInfo['projects'].each do |project| target project['name'] do project['components'].each do |podInfo| value = adaptPodinfoToHashArray(podInfo) if podInfo['version'] case value.size when 0 pod_binary podInfo['name'],podInfo['version'] when 1 pod_binary podInfo['name'],podInfo['version'],value[0] when 2 pod_binary podInfo['name'],podInfo['version'],value[0],value[1] when 3 pod_binary podInfo['name'],podInfo['version'],value[0],value[1],value[2] when 4 pod_binary podInfo['name'],podInfo['version'],value[0],value[1],value[2],value[3] end end end end end end
each_bd_use_app(appName="toutiao")
click to toggle source
# File lib/bd_pod_extension_net.rb, line 377 def each_bd_use_app(appName="toutiao") apps = SourceContainer["apps"] $CurrentApp = apps["#{appName}"] $Apps << $CurrentApp allsource = SourceContainer["source"] placehold = apps["#{appName}"] currentSourceContainer = allsource["#{placehold}"] if currentSourceContainer currentSourceContainer.each do |eachSource| next if $BD_ignore == 'binary' && eachSource.include?("_binary_repo.git") next if $BD_ignore == 'source' && eachSource.include?("_source_repo.git") source eachSource; end else source 'git@code.byted.org:iOS_Library/toutiao_binary_repo.git' source 'git@code.byted.org:iOS_Library/toutiao_source_repo.git' source 'git@code.byted.org:TTIOS/cocoapods-master-specs-mirror.git' source 'git@code.byted.org:TTVideo/ttvideo-pods.git' source 'git@code.byted.org:ugc/UGCSpecs.git' end end
getBinaryContainerByApp(apps=["13"],moduleName)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 673 def getBinaryContainerByApp(apps=["13"],moduleName) versions = Array.new apps.each do |app| currentAppVersions = getEachBinaryContainerByApp(app,moduleName) if currentAppVersions versions = versions | currentAppVersions end end return versions end
getDeprecatedContainerByApp(apps=["13"],moduleName)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 649 def getDeprecatedContainerByApp(apps=["13"],moduleName) raise '不应该在Podfile_Patch使用pod_source or pod_binary' if !apps && $Bd_enable_DevelopMode versions = Array.new apps.each do |app| currentAppVersions = getEachDeprecatedContainerByApp(app,moduleName) if currentAppVersions versions = versions | currentAppVersions end end return versions end
getEachBinaryContainerByApp(appName="13",moduleName)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 684 def getEachBinaryContainerByApp(appName="13",moduleName) currentAppBinaryContainer = PODS["#{appName}"] if !currentAppBinaryContainer return nil end currentModuleVersions = currentAppBinaryContainer["#{moduleName}"] if !currentModuleVersions currentModuleVersions = PODS["#{moduleName}"] end return currentModuleVersions; end
getEachDeprecatedContainerByApp(appName="13",moduleName)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 661 def getEachDeprecatedContainerByApp(appName="13",moduleName) currentAppBinaryContainer = Deprecated["#{appName}"] if !currentAppBinaryContainer return nil end currentModuleVersions = currentAppBinaryContainer["#{moduleName}"] return currentModuleVersions; end
get_fetch(url)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 278 def get_fetch(url) begin url_str = URI.parse(url) return Net::HTTP.get_response(url_str) rescue Exception => ex p ex end end
get_response(url) { |callObject| ... }
click to toggle source
# File lib/bd_pod_extension_net.rb, line 79 def get_response(url) begin url_str = URI.parse(url) callObject = Net::HTTP.get_response(url_str) yield callObject rescue Exception => ex p ex end end
loadDev()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 89 def loadDev if File::exist?('Podfile_Dev') $Loaded_dev = true end end
pod_binary(moduleName,version=-1,args2=-1,args3=-1,args4=-1)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 459 def pod_binary(moduleName,version=-1,args2=-1,args3=-1,args4=-1) argsment = rebuild_pod(version,args2,args3,args4,moduleName) if $NEEDSOURCE == 1 common_pod_command(moduleName,argsment,-1) else common_pod_command(moduleName,argsment,1) end end
pod_binary_version_check(moduleName,version,needcheck=-1)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 586 def pod_binary_version_check(moduleName,version,needcheck=-1) deprecatedVersions = getDeprecatedContainerByApp($Apps,moduleName) if deprecatedVersions deprecatedVersions.each do |deprecated| if deprecated["version"] == version show_deprecated(moduleName,deprecated) end end end if needcheck == -1 return version end if version.class == Hash if (version.keys.include?(:path)) || (version.keys.include?(:git)) return version end end currentModuleVersions = getBinaryContainerByApp($Apps,moduleName) if !currentModuleVersions return version end if version.include?"-" if currentModuleVersions.include?("#{version}.1.binary") recordBinaryPods(moduleName) return "#{version}.1.binary" end if currentModuleVersions.include?("#{version}.1-binary") recordBinaryPods(moduleName) return "#{version}.1-binary" end else if currentModuleVersions.include?("#{version}.1-binary") recordBinaryPods(moduleName) return "#{version}.1-binary" end end if currentModuleVersions.include?(version) if WarningModules.include?(moduleName) return version end WarningModules << moduleName puts "#{colorize("===============================================================================","light red")}" puts "#{colorize("Binary Warning:You should not use binary version directly for #{moduleName}","light red")}" puts "#{colorize("===============================================================================","light red")}" recordBinaryPods(moduleName) return version end if WarningModules.include?(moduleName) return version end WarningModules << moduleName puts "#{colorize("===============================================================================","red")}" puts "#{colorize("#{moduleName} Binary Warning:Current version:#{version} have no binary version","red")}" puts "#{colorize("===============================================================================","red")}" return version end
pod_dev(moduleName,*requirements)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 266 def pod_dev(moduleName,*requirements) DevPods << {moduleName => requirements} EachDevPods << moduleName end
pod_install_dev()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 329 def pod_install_dev if $CurrentDevPodsMap $CurrentDevPodsMap.each do |hash| hash.each { |key,value| case value.size when 0 pod key when 1 pod key,value[0] when 2 pod key,value[0],value[1] when 3 pod key,value[0],value[1],value[2] when 4 pod key,value[0],value[1],value[2],value[3] end } end end end
pod_source(moduleName,version=-1,args2=-1,args3=-1,args4=-1)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 468 def pod_source(moduleName,version=-1,args2=-1,args3=-1,args4=-1) argsment = rebuild_pod(version,args2,args3,args4,moduleName) if $NEEDBINARY == 1 common_pod_command(moduleName,argsment,1) else common_pod_command(moduleName,argsment,-1) end end
rebuild_pod(version=-1,args2=-1,args3=-1,args4=-1,moduleName)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 572 def rebuild_pod(version=-1,args2=-1,args3=-1,args4=-1,moduleName) argsment=Array[version,args2,args3,args4] return argsment.uniq.reject{ |item| if item.class == Hash if item.key?(:confuse) $Confuse_Pods << moduleName unless $Confuse_Pods.include?(moduleName) item.key?(:confuse) end else item == -1 end } end
recordBinaryPods(moduleName)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 645 def recordBinaryPods(moduleName) Binary << moduleName; end
removeDependencyVersion()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 254 def removeDependencyVersion() $work_dir = Dir.home() + '/.bd_pod_extension_scripts' load "#{$work_dir}/swift_spped.rb" end
showCode!()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 237 def showCode! $ShowCode_Enable = true end
show_deprecated(moduleName,deprecated)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 431 def show_deprecated(moduleName,deprecated) deprecated_time = Time.at deprecated['deTime'] operate_time = Time.at deprecated['opTime'] user = deprecated['username'] version = deprecated['version'] des = deprecated['des'] level = deprecated['level'] case level when 'error' if Now > deprecated_time.to_i system ("osascript -e 'display notification \"废弃理由:#{des},\n 组件废弃时间:#{deprecated_time.inspect} \" with title \"#{moduleName}-#{version} 被废弃\" subtitle \"操作人:#{user}\" '") raise "#{moduleName} - #{version} 被废弃,原因为:#{des},操作人:#{user},组件废弃时间:#{deprecated_time.inspect},操作废弃时间:#{operate_time.inspect}" end when 'warning' if Now > deprecated_time.to_i system ("osascript -e 'display notification \"废弃理由:#{des},\n 组件废弃时间:#{deprecated_time.inspect} \" with title \"#{moduleName}-#{version} 被废弃\" subtitle \"操作人:#{user}\" '") raise "#{moduleName} - #{version} 被废弃,原因为:#{des},操作人:#{user},组件废弃时间:#{deprecated_time.inspect}" end system ("osascript -e 'display notification \"废弃理由:#{des},\n 组件废弃时间:#{deprecated_time.inspect} \" with title \"#{moduleName}-#{version} 被废弃\" subtitle \"操作人:#{user}\" '") puts "#{colorize("===============================================================================","red")}" puts "#{colorize("#{moduleName} 将于 #{deprecated_time.inspect} 废弃,废弃理由:#{des},操作人:#{user}","red")}" puts "#{colorize("===============================================================================","red")}" end end
startSpeed()
click to toggle source
# File lib/bd_pod_extension_net.rb, line 247 def startSpeed() $NEEDSPEED = 1 $work_dir = Dir.home() + '/.bd_pod_extension_scripts' $LOAD_PATH << "#{$work_dir}" load "oc_spped.rb" end
subspecHandle(moduleName, argsment)
click to toggle source
# File lib/bd_pod_extension_net.rb, line 477 def subspecHandle(moduleName, argsment) if moduleName.include?"/" subspecArray = moduleName.split("/") subspecArray.delete_at(0) newsubspecs = subspecArray.join("/") if containSubspecComponent(argsment) argsment.each do |subspec| if subspec.class == Hash if subspec.keys.include?(:subspecs) subspec[:subspecs] = subspec[:subspecs].map { |e| newsubspecs + "/" + e } end end end return [moduleName.split("/")[0], argsment] else if argsment.empty? argsment = Hash.new argsment[:subspecs] = [newsubspecs] return [moduleName.split("/")[0], [argsment]] end subspecComponent = Hash.new subspecComponent[:subspecs] = [newsubspecs] argsment << subspecComponent return [moduleName.split("/")[0], argsment] end end [moduleName, argsment] end
target_patch(name,options = nil) { || ... }
click to toggle source
# File lib/bd_pod_extension_net.rb, line 259 def target_patch(name,options = nil) DevPods.clear yield if block_given? Target_Dev_Pods_Map[name] = DevPods.dup Target_Dev_Pod_Container[name] = EachDevPods.dup end
use_PlaceHoldScript()
click to toggle source
# File lib/bd_pod_extentions.rb, line 53 def use_PlaceHoldScript $work_dir = $origin end