class TYCiCore::Podfile

Constants

PODFILE_TARGET_METHOD

Attributes

content[RW]
file[RW]
main_target[RW]
multi_target[RW]
targets[RW]

Public Class Methods

new(file='./Podfile') click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 28
def initialize(file='./Podfile')

        @file = file

        puts 'Can not find a Podfile'.red unless File.exist? @file

        @content = File.read @file
        @multi_target = is_multi_target
        @targets = targets
        @main_target = @targets[0][0] if (@targets.size > 0 && @targets[0].size > 0)

end

Public Instance Methods

save() click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 71
def save

        puts "Podfile: #{@file} saved".green
        puts "Podfile content is: \n #{@content}".green

        fh = File.new(@file, "w")
        fh.puts @content
        fh.close
end
source_add(source) click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 49
def source_add(source)
        if source.nil? || source.empty?
                puts "source is empty".red
        elsif source_exist(source)
                puts "source #{source} alread exist".yellow
        else
                line = TYUtil::TYFile.line_contain_content(@content, "source")
                TYUtil::TYFile.add_to_line(@content, "source '#{source}'", line)
        end
end
source_exist(source) click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 45
def source_exist(source)
        TYUtil::TYFile.line_contain_content(@content, source) > 0
end
source_replace(replace_old, replace_new) click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 41
def source_replace(replace_old, replace_new)
        @content.gsub!(/#{replace_old}/, replace_new)
end
update(updates, deletes) click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 60
def update(updates, deletes)

        puts "Podfile must contain at least one target".red unless @main_target

        if @multi_target
                update_pod_methods(updates, deletes)
        else
                update_single_target(updates, deletes)
        end
end

Private Instance Methods

debug?(name) click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 145
def debug?(name)
        @content.scan(/^[^#]\s*pod\s*'#{name}',(.*,)*\s*:configuration\s*=>\s*'Debug'/).size > 0
end
is_multi_target() click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 149
def is_multi_target
        @content.include? PODFILE_TARGET_METHOD
end
update_delete_pods(deletes) click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 108
def update_delete_pods(deletes)
        deletes.each do |delete|
                json = JSON.parse(JSON(delete))
                name = json["name"]
                @content.gsub!(/^\s*pod\s*'#{name}'(.*)$/, "")
        end

end
update_pod_methods(updates, deletes) click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 83
def update_pod_methods(updates, deletes)
        update_pods(updates, deletes, "def #{PODFILE_TARGET_METHOD}")
end
update_pods(updates, deletes, mark_label) click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 91
def update_pods(updates, deletes, mark_label)

        append_modules = "#{mark_label}\n"
        append_modules = update_update_pods(updates, append_modules) if updates && updates.size > 0

        # deletes.each do |delete|
        #    json = JSON.parse(JSON(delete))
        #    name = json["name"]
        #    @content.gsub!(/\s*pod\s*'#{name}(.*)'$/, "")
        # end

        update_delete_pods deletes if deletes && deletes.size > 0

        @content.gsub!(/^#{mark_label}/, "#{append_modules}\n")
        @content.gsub!(/\n{2,}/, "\n")
end
update_single_target(updates, deletes) click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 87
def update_single_target(updates, deletes)
        update_pods(updates, deletes, "target '#{@main_target}' do")
end
update_update_pods(updates, append_modules) click to toggle source
# File lib/tuya/ci/core/podfile.rb, line 117
def update_update_pods(updates, append_modules)
        updates.each do |update|
                json = JSON.parse(JSON(update))
                name = json["name"]
                version = json["version"]

                module_replace = "\n    pod '#{name}', '#{version}'"
                if @content.scan(/^[^#]\s*pod\s*'#{name}'(.*)'$/).size == 0
                        puts "Module #{name} can not find".yellow
                        append_modules << module_replace
                else
                        puts "Module #{name} got it".green
                        if debug? name
                                puts "Module #{name} find debug parameter".green
                                module_replace = "#{module_replace}, :configuration => 'Debug'"
                        else
                                puts "Module #{name} did not find debug".yellow
                        end
                        @content.gsub!(/^[^#]\s*pod\s*'#{name}'(.*)'$/, module_replace)
                end
        end
        append_modules
end