class PodfileGenerator::Generator

Constants

DEFAULT_LABEL

Public Class Methods

new(podfile_path, podfile_template_path, label = nil) click to toggle source
# File lib/podfile_generator/generator.rb, line 8
def initialize(podfile_path, podfile_template_path, label = nil) 
        raise "podfile path is required" unless podfile_path
        raise "podfile template path is required" unless podfile_template_path

        @podfile_path = podfile_path.is_a?(Pathname) ? podfile_path.to_s : podfile_path
        @podfile_template_path = podfile_template_path.is_a?(Pathname) ? podfile_template_path.to_s : podfile_template_path
        @label = label || DEFAULT_LABEL
end

Public Instance Methods

generate!() click to toggle source
# File lib/podfile_generator/generator.rb, line 17
def generate!
        raise "cant't find podfile at #{@podfile_path}" unless File.exist?(@podfile_path)
        raise "cant't find podfile template at #{@podfile_template_path}" unless File.exist?(@podfile_template_path)

        spec = ''
        podfile = Pod::Podfile.from_file(Pathname.new(@podfile_path))
        File.open(@podfile_template_path, 'r') do |file|
                file.each_line do |line|
                        if line.strip.match(@label)
                                podfile.dependencies.each do |dep|
                                        spec << "\tpod '#{dep.name}'"
                                        spec << ", '#{dep.requirement.to_s}'" unless dep.requirement.none?

                                        if dep.external? && dep.external_source[:branch]
                                                spec << ", '= #{dep.external_source[:branch].split('/').last}'" if dep.external_source[:branch].start_with?('release/')
                                        end

                                        spec << "\n"
                                end
                        else
                                spec << line
                        end
                end
        end

        File.open(@podfile_path, 'w') do |io|
                io << spec
        end

        spec
end