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