class Pod::Command::Bin::Init

Public Class Methods

new(argv) click to toggle source
Calls superclass method Pod::Command::Bin::new
# File lib/cocoapods-bin/command/bin/init.rb, line 21
def initialize(argv)
  @bin_url = argv.option('bin-url')
  super
end
options() click to toggle source
Calls superclass method
# File lib/cocoapods-bin/command/bin/init.rb, line 15
def self.options
  [
    ['--bin-url=URL', '配置文件地址,直接从此地址下载配置文件']
  ].concat(super)
end

Public Instance Methods

run() click to toggle source
# File lib/cocoapods-bin/command/bin/init.rb, line 26
def run
  if @bin_url.nil?
    config_with_asker
  else
    config_with_url(@bin_url)
  end
end

Private Instance Methods

config_with_asker() click to toggle source
# File lib/cocoapods-bin/command/bin/init.rb, line 50
def config_with_asker
  asker = CBin::Config::Asker.new
  asker.wellcome_message

  config = {}
  template_hash = CBin.config.template_hash
  template_hash.each do |k, v|
    default = begin
                CBin.config.send(k)
              rescue StandardError
                nil
              end
    config[k] = asker.ask_with_answer(v[:description], default, v[:selection])
  end

  CBin.config.sync_config(config)
  asker.done_message
end
config_with_url(url) click to toggle source
# File lib/cocoapods-bin/command/bin/init.rb, line 36
def config_with_url(url)
  require 'open-uri'

  UI.puts "开始下载配置文件...\n"
  file = open(url)
  contents = YAML.safe_load(file.read)

  UI.puts "开始同步配置文件...\n"
  CBin.config.sync_config(contents.to_hash)
  UI.puts "设置完成.\n".green
rescue Errno::ENOENT => e
  raise Informative, "配置文件路径 #{url} 无效,请确认后重试."
end