class Object
Public Instance Methods
addXcodeproj()
click to toggle source
# File lib/elm_plugin.rb, line 207 def addXcodeproj project = Xcodeproj::Project.open($project_dic.to_s+$projectName.to_s) target = project.targets.first group = project.main_group.find_subpath(File.join('Plugins'), true) group.set_source_tree('SOURCE_ROOT') Dir::entries($project_dic.to_s+$main_dir.to_s+'/Plugins/'+$plugin_name.to_s).each do |f| if f =~ /\.m$/i file_ref = group.new_reference($project_dic.to_s+$main_dir.to_s+'/Plugins/'+$plugin_name.to_s+'/'+f) target.add_file_references([file_ref]) end if f =~ /\.h$/i file_ref = group.new_reference($project_dic.to_s+$main_dir.to_s+'/Plugins/'+$plugin_name.to_s+'/'+f) end end project.save end
copySource()
click to toggle source
# File lib/elm_plugin.rb, line 54 def copySource if !File::exist?($project_dic+$main_dir+'/Plugins') error = 'error: you project don\'t have '+$main_dir+'/Plugins'+'in workspace' puts error.red exit(0) end if !File::exist?($project_dic+$main_dir+'/Plugins/'+$plugin_name) Dir.mkdir($project_dic+$main_dir+'/Plugins/'+$plugin_name) end Dir::entries($tmpPath+'/src'+'/ios').each do |f| puts 'copy source to plugins dic' if f =~ /\.[hm]$/i FileUtils.cp($tmpPath+'/src'+'/ios/'+f, $project_dic+$main_dir+'/Plugins/'+$plugin_name) end end end
copyjs()
click to toggle source
# File lib/elm_plugin.rb, line 19 def copyjs if !File::exist?($project_dic+'www') Dir.mkdir($project_dic+'www') end if !File::exist?($project_dic+'www/'+$plugin_name) Dir.mkdir($project_dic+'www/'+$plugin_name) end if !File::exist?($project_dic+'www/'+'plugins/'+$plugin_name) Dir.mkdir($project_dic+'www/'+'plugins/'+$plugin_name) end FileUtils.cp_r(Dir[$tmpPath+'/www'], $project_dic+'www/'+'plugins/'+$plugin_name) Dir::entries($project_dic+'www/'+'plugins/'+$plugin_name+'/www').each do |f| if f =~ /\.js$/ file = File.open($project_dic+'www/'+'plugins/'+$plugin_name+'/www'+'/'+f, "rb") contents = file.read file.close if contents =~ /^\s*cordova.define\s*\(\s*\"\s*cordova-plugin-console.logger\s*\"\s*,\s*function\s*\(\s*require\s*,\s*exports\s*,\s*module\s*\)\s*\{/ puts 'has cordova.define' else contents = "cordova.define(\"cordova-plugin-console.logger\", function(require, exports, module) {\n" +contents +"\n});" file=File.new($project_dic+'www/'+'plugins/'+$plugin_name+'/www'+'/'+f, 'w+') file.write(contents) puts 'dont match' end file.close end end end
findXmlConfig()
click to toggle source
# File lib/elm_plugin.rb, line 98 def findXmlConfig Dir::entries($project_dic).each do |f| if f == 'config.xml' writeConfigXml($project_dic + 'config.xml') return end end Find.find($project_dic+$main_dir) do |f| if f =~ /config.xml$/i writeConfigXml(f) break end end end
main_dir()
click to toggle source
# File lib/elm_plugin.rb, line 10 def main_dir Dir::entries($project_dic).each do |f| if f =~ /\.xcodeproj$/i main_dir = File.basename($project_dic+"/"+f, '.xcodeproj') return main_dir end end end
writeConfigXml(fileName)
click to toggle source
# File lib/elm_plugin.rb, line 117 def writeConfigXml(fileName) puts 'config'+fileName fw = File.open(fileName) docw = Document.new(fw) root = docw.root puts root f = File.open($project_dic+'ELMPlugins/'+$plugin_name+'/plugin.xml') doc = Document.new(f) doc.elements.each("*/platform") { |e| if e.attributes["name"] == 'ios' e.elements.each('config-file/feature') { |se| puts se root.add_element se puts root } end } docw.write(File.open(fileName,"w"), 2) fw.close f.close end
writeJs()
click to toggle source
cordova.define(‘cordova/plugin_list’, function(require, exports, module) { module.exports = [
{ "file": "plugins/cordova-plugin-device/www/device.js", "id": "cordova-plugin-device.device", "clobbers": [ "device" ] },
<js-module src=“www/logger.js” name=“logger”>
<clobbers target="cordova.logger" /> </js-module>
# File lib/elm_plugin.rb, line 155 def writeJs write = false tempfile=File.new($project_dic+'www/'+'temp.js', 'w+') f=File.new($project_dic+'www/'+'cordova_plugins.js') xmlf = File.open($project_dic+'ELMPlugins/'+$plugin_name+'/plugin.xml') doc = Document.new(xmlf) id = doc.root.attributes['id'] version = doc.root.attributes['version'] f.each do |line| if line =~ /^(\s)*module.exports(\s)*=(\s)*\[(\s)*\]/ doc.elements.each("*/js-module") { |e| puts e jsId = id + '.' + e.attributes['name'] jssSrc = 'plugins/'+$plugin_name +'/'+e.attributes['src'] e.elements.each('clobbers') { |se| clobbers = se.attributes['target'] tempfile<<"module.exports = \[ \n {\n \"File\": "+"\""+jssSrc+"\",\n"+" \"id\": "+"\""+jsId+"\",\n"+" \"clobbers\": "+"[\n"+" \""+clobbers+"\"\n"+" ]\n"+" }\n\];\n" } } else tempfile<<line if line.downcase=~ /^(\s)*module.exports(\s)*=(\s)*/ doc.elements.each("*/js-module") { |e| puts e jsId = id + '.' + e.attributes['name'] jssSrc = 'plugins/'+$plugin_name +'/'+e.attributes['src'] e.elements.each('clobbers') { |se| clobbers = se.attributes['target'] tempfile<<" {\n \"File\": "+"\""+jssSrc+"\",\n"+" \"id\": "+"\""+jsId+"\",\n"+" \"clobbers\": "+"[\n"+" \""+clobbers+"\"\n"+" ]\n"+" },\n" } } end end if write write = false # "org.apache.cordova.device": "0.2.14-dev" tempfile<< " \""+id+"\": "+"\""+version+"\",\n" end if line =~/^(\s)*\/\/ (\s)*TOP (\s)*OF(\s)* METADATA(\s)*/ write = true end end f.close tempfile.close FileUtils.mv($project_dic+'www/'+'temp.js', $project_dic+'www/'+'cordova_plugins.js') end
writePodfileAndUpdate()
click to toggle source
# File lib/elm_plugin.rb, line 74 def writePodfileAndUpdate puts $project_dic+'Podfile' if File::exist?($project_dic+'Podfile') f=File.new($project_dic+'Podfile', 'a+') f.puts "\npod \'" +$plugin_name+'\'' f.close puts 'update pod........................'.green result =`pod update` puts result else puts 'create Podfile.....' `touch Podfile` f=File.new($project_dic+'Podfile', 'a+') f.puts "source \'git@git.elenet.me:arch.mobile/iOS_specs.git\'\nsource \'https://github.com/CocoaPods/Specs.git\'\nplatform :ios, \'7.0\'" f.puts "\npod \'" +$plugin_name+'\'' f.close puts 'update pod........................'.green result =`pod install` puts result end end