Class: Merb::Generators::Generator
- Inherits:
-
Templater::Generator
- Object
- Templater::Generator
- Merb::Generators::Generator
- Includes:
- ColorfulMessages
- Defined in:
- lib/merb-gen/generator.rb
Direct Known Subclasses
MigrationGenerator, NamedGenerator, ResourceGenerator, SessionMigrationGenerator
Class Method Summary collapse
Instance Method Summary collapse
-
#go_up(num) ⇒ String
Returns a string of num times ‘..’, useful for example in tests for namespaced generators to find the spec_helper higher up in the directory structure.
-
#initialize(*args) ⇒ Generator
constructor
A new instance of Generator.
-
#with_modules(modules, options = {}, &block) ⇒ Object
Inside a template, wraps a block of code properly in modules, keeping the indentation correct.
Methods included from ColorfulMessages
Constructor Details
#initialize(*args) ⇒ Generator
Returns a new instance of Generator.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/merb-gen/generator.rb', line 32 def initialize(*args) Merb::Config.setup({ :log_level => :fatal, :log_delimiter => " ~ ", :log_auto_flush => false, :reload_templates => false, :reload_classes => false }) Merb::BootLoader::Logger.run Merb::BootLoader::BuildFramework.run Merb::BootLoader::Dependencies.run super [:orm] ||= Merb.orm [:testing_framework] ||= Merb.test_framework [:template_engine] ||= Merb.template_engine end |
Class Method Details
.source_root ⇒ Object
77 78 79 |
# File 'lib/merb-gen/generator.rb', line 77 def self.source_root File.join(File.dirname(__FILE__), '..', 'generators', 'templates') end |
Instance Method Details
#go_up(num) ⇒ String
Returns a string of num times ‘..’, useful for example in tests for namespaced generators to find the spec_helper higher up in the directory structure.
73 74 75 |
# File 'lib/merb-gen/generator.rb', line 73 def go_up(num) (["'..'"] * num).join(', ') end |
#with_modules(modules, options = {}, &block) ⇒ Object
Inside a template, wraps a block of code properly in modules, keeping the indentation correct
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/merb-gen/generator.rb', line 55 def with_modules(modules, ={}, &block) indent = [:indent] || 0 text = capture(&block) modules.each_with_index do |mod, i| concat((" " * (indent + i)) + "module #{mod}\n", block.binding) end text = Array(text).map{ |line| (" " * modules.size) + line }.join concat(text, block.binding) modules.reverse.each_with_index do |mod, i| concat((" " * (indent + modules.size - i - 1)) + "end # #{mod}\n", block.binding) end end |