module Tcms::Helper

Public Instance Methods

_css_for_local(name) click to toggle source
# File lib/tcms/helper.rb, line 17
def _css_for_local name
  file_path = @_project["css"]["folder"]
  link_output = '<link rel="stylesheet" href="/'+file_path+"/"+name+'.css"></href>'
  return link_output
end
_css_for_publish(name) click to toggle source
# File lib/tcms/helper.rb, line 23
def _css_for_publish name
  file_path = @_project["css"]["folder"]
  file_content = File.read(file_path+"/#{name}.css",:encoding=>"utf-8")

  publish_name = name+'.'+ @_project["version"].to_s
  assets_path = @_project['assets']["folder"]

  write_file = assets_path+'/'+publish_name+'.css';

  if File.exist? write_file
    File.delete write_file
  end

  concat_file = File.new(write_file,'w+')
  concat_file.puts file_content
  concat_file.close

  puts write_file
  puts '-生成素材'+publish_name+'.css'

  assets = @_project["assets"]

  if @_build_type == "test"
    url = "/"+@_project["assets"]["folder"]
    return '<link rel="stylesheet" href="'+url+"/"+publish_name+'.css?v='+Digest::MD5.hexdigest(file_content)+'"></link>'
  else
    site = assets["site"]
    domain = 'qq.com'
    remote_path = assets["remotepath"]
    if site.match 'mat1' then domain = "gtimg.com/#{assets["channel"]}" end
    if site.match 'pingjs' then site = 'rss' end
    url = "http://#{site}.#{domain}/#{remote_path}"

    return '<link rel="stylesheet" href="'+url+"/"+publish_name+'.css?v='+Digest::MD5.hexdigest(file_content)+'"></link>'
  end
end
_script_for_local(name) click to toggle source
# File lib/tcms/helper.rb, line 60
def _script_for_local name
  file_path = @_project["scripts"]["folder"]
  target_file = file_path+"/#{name}.js"
  script_output = ''

  if File.exist? target_file
    file_content = File.read(target_file,:encoding=>"utf-8")
    file_output = file_content.gsub(/\/\/=include\s([^\s]+)/){|include_str|
      matches = /\/\/=include\s([^\s]+)/.match(include_str)
      file_url = file_path+"/#{matches[1]}.js"
      script_output+= '<script type="text/javascript" charset="utf-8" src="/'+file_url+'"></script>';
      script_output+="\n"
    }
  else
    puts "文件不存在:#{target_file}"
  end

  script_output += '<script type="text/javascript" charset="utf-8" src="/'+file_path+"/"+name+'.js"></script>'
  return script_output
end
_script_for_publish(name) click to toggle source
# File lib/tcms/helper.rb, line 81
def _script_for_publish name
  file_path = @_project["scripts"]["folder"]
  file_content = File.read(file_path+"/#{name}.js",:encoding=>"utf-8")
  script_output = "";
  file_output = file_content.gsub(/\/\/=include\s([^\s]+)/){|include_str|
    matches = /\/\/=include\s([^\s]+)/.match(include_str)
    file_url = file_path+"/#{matches[1]}.js"

    unless File.exist?(file_url)
      puts 'no file include exist!|'+ file_url
      return
    end

    File.read(file_url,:encoding=>"utf-8")
  }
  publish_name = name+'.'+ @_project["version"].to_s

  assets_path = @_project['assets']["folder"]
  #写文件
  write_file =assets_path+'/'+publish_name+'.js';

  if File.exist? write_file
    File.delete write_file
  end

  concat_file = File.new(write_file,'w+')
  concat_file.puts file_output
  concat_file.close

  puts write_file
  puts '-生成素材'+publish_name+'.js'

  assets = @_project["assets"]

  if @_build_type == "test"
    url = "/"+@_project["assets"]["folder"]
    return '<script type="text/javascript" charset="utf-8" src="'+url+"/"+publish_name+'.js?v='+Digest::MD5.hexdigest(file_output)+'"></script>'
  else
    site = assets["site"]
    domain = 'qq.com'
    remote_path = assets["remotepath"]
    if site.match 'mat1' then domain = "gtimg.com/#{assets["channel"]}" end
    if site.match 'pingjs' then site = 'rss' end
    url = "http://#{site}.#{domain}/#{remote_path}"

    return '<script type="text/javascript" charset="utf-8" src="'+url+"/"+publish_name+'.js?v='+Digest::MD5.hexdigest(file_output)+'"></script>'
  end
end
script_for(name) click to toggle source
# File lib/tcms/helper.rb, line 3
def script_for name
  if @_build_type  == "dev"
    return self._script_for_local name
  else
    return self._script_for_publish name
  end
end