Module: Rake::DevEiate::Generate
- Defined in:
- lib/rake/deveiate/generate.rb
Overview
Project-file generation tasks
Constant Summary collapse
- README_TEMPLATE =
Template files
'README.erb'- HISTORY_TEMPLATE =
'History.erb'- RUBY_VERSION_FILE =
RVM metadata files
Rake::DevEiate::PROJECT_DIR + '.ruby-version'
- GEMSET_FILE =
Rake::DevEiate::PROJECT_DIR + '.ruby-gemset'
- FILE_CREATION_FLAGS =
Flags to use when opening a file for generation
File::WRONLY | File::CREAT | File::EXCL
Instance Method Summary collapse
-
#define_tasks ⇒ Object
Define generation tasks.
-
#do_diff_manifest(task, args) ⇒ Object
Task body for the ‘diff_manifest` task.
-
#do_generate_gemset_file(task, args) ⇒ Object
Generate a file that sets the project’s gemset.
-
#do_generate_history_file(task, args) ⇒ Object
Generate a History file if one doesn’t already exist.
-
#do_generate_manifest_file(task, args) ⇒ Object
Generate a manifest with a default set of files listed.
-
#do_generate_readme_file(task, args) ⇒ Object
Generate a README file if one doesn’t already exist.
-
#do_generate_ruby_version_file(task, args) ⇒ Object
Generate a file that sets the project’s working Ruby version.
-
#generate_from_template(filename, template_path) ⇒ Object
Generate the given
filenamefrom the template filed attemplate_path.
Instance Method Details
#define_tasks ⇒ Object
Define generation tasks.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/rake/deveiate/generate.rb', line 27 def define_tasks super if defined?( super ) file( self.readme_file.to_s ) file( self.history_file.to_s ) file( self.manifest_file.to_s ) file( RUBY_VERSION_FILE.to_s ) file( GEMSET_FILE.to_s ) task( self.readme_file, &method(:do_generate_readme_file) ) task( self.history_file, &method(:do_generate_history_file) ) task( self.manifest_file, &method(:do_generate_manifest_file) ) task( RUBY_VERSION_FILE, &method(:do_generate_ruby_version_file) ) task( GEMSET_FILE, &method(:do_generate_gemset_file) ) desc "Generate any missing project files." task :generate => [ self.readme_file, self.history_file, self.manifest_file, RUBY_VERSION_FILE, GEMSET_FILE, ] desc "Diff the manifest file against the default set of project files." task( :diff_manifest, &method(:do_diff_manifest) ) end |
#do_diff_manifest(task, args) ⇒ Object
Task body for the ‘diff_manifest` task
98 99 100 101 102 103 104 105 106 |
# File 'lib/rake/deveiate/generate.rb', line 98 def do_diff_manifest( task, args ) Tempfile.open( ['Manifest','.txt'], Rake::DevEiate::PROJECT_DIR ) do |io| file_list = self.default_manifest.to_a io.puts( *file_list ) io.flush sh 'diff', '-ub', self.manifest_file.to_s, io.path end end |
#do_generate_gemset_file(task, args) ⇒ Object
Generate a file that sets the project’s gemset
89 90 91 92 93 94 |
# File 'lib/rake/deveiate/generate.rb', line 89 def do_generate_gemset_file( task, args ) self.prompt.ok "Generating #{task.name}..." File.open( task.name, FILE_CREATION_FLAGS, 0644, encoding: 'utf-8' ) do |io| io.puts( self.name ) end end |
#do_generate_history_file(task, args) ⇒ Object
Generate a History file if one doesn’t already exist. Error if one does.
65 66 67 |
# File 'lib/rake/deveiate/generate.rb', line 65 def do_generate_history_file( task, args ) self.generate_from_template( task.name, HISTORY_TEMPLATE ) end |
#do_generate_manifest_file(task, args) ⇒ Object
Generate a manifest with a default set of files listed.
71 72 73 74 75 76 |
# File 'lib/rake/deveiate/generate.rb', line 71 def do_generate_manifest_file( task, args ) self.prompt.ok "Generating #{task.name}..." File.open( task.name, FILE_CREATION_FLAGS, 0644, encoding: 'utf-8' ) do |io| io.puts( *self.project_files ) end end |
#do_generate_readme_file(task, args) ⇒ Object
Generate a README file if one doesn’t already exist. Error if one does.
58 59 60 |
# File 'lib/rake/deveiate/generate.rb', line 58 def do_generate_readme_file( task, args ) self.generate_from_template( task.name, README_TEMPLATE ) end |
#do_generate_ruby_version_file(task, args) ⇒ Object
Generate a file that sets the project’s working Ruby version.
80 81 82 83 84 85 |
# File 'lib/rake/deveiate/generate.rb', line 80 def do_generate_ruby_version_file( task, args ) self.prompt.ok "Generating #{task.name}..." File.open( task.name, FILE_CREATION_FLAGS, 0644, encoding: 'utf-8' ) do |io| io.puts( RUBY_VERSION.sub(/\.\d+$/, '') ) end end |
#generate_from_template(filename, template_path) ⇒ Object
Generate the given filename from the template filed at template_path.
110 111 112 113 114 115 116 |
# File 'lib/rake/deveiate/generate.rb', line 110 def generate_from_template( filename, template_path ) self.prompt.ok "Generating #{filename}..." File.open( filename, FILE_CREATION_FLAGS, 0644, encoding: 'utf-8' ) do |io| result = self.load_and_render_template( template_path ) io.print( result ) end end |