module Biogem::Render
Public Instance Methods
after_render_template(source,buf)
click to toggle source
new hook for removing stuff (FIXME: could use a test!!)
# File lib/bio-gem/generator/render.rb 7 def after_render_template(source,buf) 8 if source == 'other_tasks.erb' 9 $stdout.puts "\tremove jeweler rcov lines" 10 # remove rcov related lines from jeweler Rakefile 11 remove = "require 'rcov/rcovtask'" 12 if buf =~ /#{remove}/ 13 # $stdout.puts buf,'---' 14 buf1 = buf.split(/\n/) 15 i = buf1.index(remove) 16 buf = (buf1[0..i-1] + buf1[i+7..-1]).join("\n") 17 end 18 end 19 buf 20 end
create_bin()
click to toggle source
# File lib/bio-gem/generator/render.rb 90 def create_bin 91 # create the 'binary' in ./bin 92 mkdir_in_target bin_dir 93 output_template_in_target_generic path('bin/bio-plugin'), path(bin_dir, bin_name) 94 # TODO: set the file as executable (Windows?) 95 File.chmod 0755, path(target_dir, bin_dir, bin_name) 96 end
create_db_structure()
click to toggle source
# File lib/bio-gem/generator/render.rb 120 def create_db_structure 121 migrate_dir = path(db_dir, "migrate") 122 mkdir_in_target(db_dir) 123 mkdir_in_target(migrate_dir) 124 mkdir_in_target("config") unless exists_dir?("config") 125 mkdir_in_target(path("lib/bio")) 126 mkdir_in_target(lib_sub_module) 127 output_template_in_target_generic 'database', path("config/database.yml") 128 output_template_in_target_generic 'migration', path(migrate_dir,"001_create_example.rb" ) 129 output_template_in_target_generic 'seeds', path(db_dir, "seeds.rb") 130 output_template_in_target_generic_append 'rakefile', 'Rakefile', template_dir_biogem 131 #TODO I'd like to have a parameter from command like with defines the Namespace of the created bio-gem to automatically costruct directory structure 132 output_template_in_target_generic 'db_connection', path(lib_sub_module,"connect.rb") 133 output_template_in_target_generic 'db_model', path(lib_sub_module,"example.rb") 134 end
create_ffi_structure()
click to toggle source
# File lib/bio-gem/generator/render.rb 108 def create_ffi_structure 109 # create ./ext/src and ./ext/include for the .c and .h files 110 mkdir_in_target(ext_dir) 111 src_dir = path(ext_dir,'src') 112 mkdir_in_target(src_dir) 113 # create ./lib/ffi for the Ruby ffi 114 mkdir_in_target(path(lib_dir,"ffi")) 115 # copy C files 116 output_template_in_target_generic path('ffi/ext.c'), path(src_dir, "ext.c" ) 117 output_template_in_target_generic path('ffi/ext.h'), path(src_dir, "ext.h" ) 118 end
create_lib()
click to toggle source
# File lib/bio-gem/generator/render.rb 84 def create_lib 85 output_template_in_target_generic path('lib/bioruby-plugin.rb'), path(lib_dir, lib_filename) 86 mkdir_in_target(lib_plugin_dir) 87 output_template_in_target_generic path('lib/plugin.rb'), path(lib_dir, project_name, lib_plugin_filename) 88 end
create_meta()
click to toggle source
# File lib/bio-gem/generator/render.rb 70 def create_meta 71 # this section is for Biogem META packages only! 72 unless File.exists?(target_dir) || File.directory?(target_dir) 73 FileUtils.mkdir target_dir 74 else 75 raise FileInTheWay, "The directory #{target_dir} already exists, aborting. Maybe move it out of the way before continuing?" 76 end 77 output_template_in_target '.gitignore' 78 output_template_in_target 'Rakefile' 79 output_template_in_target 'Gemfile' if should_use_bundler 80 output_template_in_target 'LICENSE.txt' 81 output_template_in_target '.document' 82 end
create_plugin_files()
click to toggle source
# File lib/bio-gem/generator/render.rb 51 def create_plugin_files 52 if options[:biogem_meta] 53 create_meta 54 else 55 original_create_files 56 create_lib 57 create_bin if options[:biogem_bin] 58 create_test_data if options[:biogem_test_data] 59 create_ffi_structure if options[:biogem_ffi] 60 create_db_structure if options[:biogem_db] 61 create_rails_engine if options[:biogem_engine] 62 end 63 # Always do these 64 output_template_in_target_generic 'README.rdoc' 65 output_template_in_target_generic 'README.md' 66 output_template_in_target_generic_append 'gitignore', '.gitignore' 67 output_template_in_target_generic_append 'travis.yml', '.travis.yml' 68 end
create_rails_engine()
click to toggle source
# File lib/bio-gem/generator/render.rb 136 def create_rails_engine 137 # create the structures and files needed to have a ready to go Rails' engine 138 namespace = options[:biogem_engine] # are we using this? 139 engine_dirs.each do |dir| 140 mkdir_in_target(dir) unless exists_dir?(dir) 141 end 142 output_template_in_target_generic 'engine', path('lib', engine_filename ) 143 output_template_in_target_generic_append 'library', path('lib', lib_filename) 144 output_template_in_target_generic 'routes', path('config', "routes.rb" ) 145 output_template_in_target_generic 'foos_controller', path('app',"controllers", "foos_controller.rb" ) 146 output_template_in_target_generic 'foos_view_index', path('app',"views","foos", "index.html.erb" ) 147 output_template_in_target_generic 'foos_view_show', path('app',"views","foos", "show.html.erb" ) 148 output_template_in_target_generic 'foos_view_example', path('app',"views","foos", "example.html.erb" ) 149 output_template_in_target_generic 'foos_view_new', path('app',"views","foos", "new.html.erb" ) 150 end
create_test_data()
click to toggle source
# File lib/bio-gem/generator/render.rb 98 def create_test_data 99 mkdir_in_target("test") unless File.exists? "#{target_dir}/test" 100 #TODO use and iterator ... 101 mkdir_in_target test_data_dir 102 mkdir_in_target 'test/data/input' 103 mkdir_in_target 'test/data/regression' 104 mkdir_in_target 'test/data/rspec' 105 mkdir_in_target 'test/data/cucumber' 106 end
output_template_in_target_generic(source, destination = source, template_dir = template_dir_biogem)
click to toggle source
# File lib/bio-gem/generator/render.rb 30 def output_template_in_target_generic(source, destination = source, template_dir = template_dir_biogem) 31 final_destination = path(target_dir, destination) 32 template_result = render_template_generic(source, template_dir) 33 34 File.open(final_destination, 'w') {|file| file.write(template_result)} 35 $stdout.puts "\tcreate\t#{destination}" 36 end
output_template_in_target_generic_append(source, destination = source, template_dir = template_dir_biogem)
click to toggle source
# File lib/bio-gem/generator/render.rb 38 def output_template_in_target_generic_append(source, destination = source, template_dir = template_dir_biogem) 39 final_destination = path(target_dir, destination) 40 template_result = render_template_generic(source, template_dir) 41 42 File.open(final_destination, 'a') {|file| file.write(template_result)} 43 44 $stdout.puts "\tappend\t#{destination}" 45 end
render_template_generic(source, template_dir = template_dir_biogem)
click to toggle source
# File lib/bio-gem/generator/render.rb 22 def render_template_generic(source, template_dir = template_dir_biogem) 23 template_contents = File.read(path(template_dir, source)) 24 template = ERB.new(template_contents, nil, '<>') 25 26 # squish extraneous whitespace from some of the conditionals 27 template.result(binding).gsub(/\n\n\n+/, "\n\n") 28 end
template_dir_biogem()
click to toggle source
# File lib/bio-gem/generator/render.rb 47 def template_dir_biogem 48 path(File.dirname(__FILE__),'..', 'templates') 49 end