RubiGen::GeneratorTestHelper

Public Instance Methods

app_root_files() click to toggle source
     # File lib/rubigen/helpers/generator_test_helper.rb, line 104
104:     def app_root_files
105:       Dir[APP_ROOT + '/**/*']
106:     end
assert_directory_exists(path) click to toggle source

asserts that the given directory exists

    # File lib/rubigen/helpers/generator_test_helper.rb, line 57
57:     def assert_directory_exists(path)
58:       assert File.directory?("#{APP_ROOT}/#{path}"),"The directory '#{path}' should exist"
59:     end
assert_file_exists(path) click to toggle source

asserts that the given file exists

    # File lib/rubigen/helpers/generator_test_helper.rb, line 52
52:     def assert_file_exists(path)
53:       assert File.exists?("#{APP_ROOT}/#{path}"),"The file '#{path}' should exist"
54:     end
assert_generated_class(path,parent=nil) click to toggle source

asserts that the given class source file was generated. It takes a path without the .rb part and an optional super class. the contents of the class source file is passed to a block.

    # File lib/rubigen/helpers/generator_test_helper.rb, line 64
64:     def assert_generated_class(path,parent=nil)
65:       path=~/\/?(\d+_)?(\w+)$/
66:       class_name=$2.camelize
67:       assert_generated_file("#{path}.rb") do |body|
68:         assert body=~/class #{class_name}#{parent.nil? ? '':" < #{parent}"}/,"the file '#{path}.rb' should be a class"
69:         yield body if block_given?
70:       end
71:     end
assert_generated_file(path) click to toggle source

asserts that the given file was generated. the contents of the file is passed to a block.

    # File lib/rubigen/helpers/generator_test_helper.rb, line 44
44:     def assert_generated_file(path)
45:       assert_file_exists(path)
46:       File.open("#{APP_ROOT}/#{path}") do |f|
47:         yield f.read if block_given?
48:       end
49:     end
assert_generated_module(path) click to toggle source

asserts that the given module source file was generated. It takes a path without the .rb part. the contents of the class source file is passed to a block.

    # File lib/rubigen/helpers/generator_test_helper.rb, line 76
76:     def assert_generated_module(path)
77:       path=~/\/?(\w+)$/
78:       module_name=$1.camelize
79:       assert_generated_file("#{path}.rb") do |body|
80:         assert body=~/module #{module_name}/,"the file '#{path}.rb' should be a module"
81:         yield body if block_given?
82:       end
83:     end
assert_generated_test_for(name, parent="Test::Unit::TestCase") click to toggle source

asserts that the given unit test was generated. It takes a name or symbol without the test_ part and an optional super class. the contents of the class source file is passed to a block.

    # File lib/rubigen/helpers/generator_test_helper.rb, line 88
88:     def assert_generated_test_for(name, parent="Test::Unit::TestCase")
89:       assert_generated_class "test/test_#{name.to_s.underscore}", parent do |body|
90:         yield body if block_given?
91:       end
92:     end
assert_has_method(body,*methods) click to toggle source

asserts that the given methods are defined in the body. This does assume standard rails code conventions with regards to the source code. The body of each individual method is passed to a block.

     # File lib/rubigen/helpers/generator_test_helper.rb, line 97
 97:     def assert_has_method(body,*methods)
 98:       methods.each do |name|
 99:         assert body=~/^  def #{name.to_s}\n((\n|   .*\n)*)  end/,"should have method #{name.to_s}"
100:         yield( name, $1 ) if block_given?
101:       end
102:     end
bare_setup() click to toggle source
     # File lib/rubigen/helpers/generator_test_helper.rb, line 123
123:     def bare_setup
124:       FileUtils.mkdir_p(APP_ROOT)
125:       @stdout = StringIO.new
126:     end
bare_teardown() click to toggle source
     # File lib/rubigen/helpers/generator_test_helper.rb, line 128
128:     def bare_teardown
129:       FileUtils.rm_rf TMP_ROOT || APP_ROOT
130:     end
build_generator(name, params, sources, options) click to toggle source

Instatiates the Generator

    # File lib/rubigen/helpers/generator_test_helper.rb, line 15
15:     def build_generator(name, params, sources, options)
16:       @stdout ||= StringIO.new
17:       options.merge!(:collision => :force)  # so no questions are prompted
18:       options.merge!(:stdout => @stdout)  # so stdout is piped to a StringIO
19:       if sources.is_a?(Symbol)
20:         if sources == :app
21:           RubiGen::Base.use_application_sources!
22:         else
23:           RubiGen::Base.use_component_sources!
24:         end
25:       else
26:         RubiGen::Base.reset_sources
27:         RubiGen::Base.prepend_sources(*sources) unless sources.blank?
28:       end
29:       RubiGen::Base.instance(name, params, options)
30:     end
rubygem_folders() click to toggle source
     # File lib/rubigen/helpers/generator_test_helper.rb, line 108
108:     def rubygem_folders
109:       ]bin examples lib test]
110:     end
rubygems_setup() click to toggle source
     # File lib/rubigen/helpers/generator_test_helper.rb, line 112
112:     def rubygems_setup
113:       bare_setup
114:       rubygem_folders.each do |folder|
115:         Dir.mkdir("#{APP_ROOT}/#{folder}") unless File.exists?("#{APP_ROOT}/#{folder}")
116:       end
117:     end
rubygems_teardown() click to toggle source
     # File lib/rubigen/helpers/generator_test_helper.rb, line 119
119:     def rubygems_teardown
120:       bare_teardown
121:     end
run_generator(name, params, sources, options = {}) click to toggle source

Runs the create command (like the command line does)

    # File lib/rubigen/helpers/generator_test_helper.rb, line 6
 6:     def run_generator(name, params, sources, options = {})
 7:       generator = build_generator(name, params, sources, options)
 8:       silence_generator do
 9:         generator.command(:create).invoke!
10:       end
11:       generator
12:     end
silence_generator() click to toggle source

Silences the logger temporarily and returns the output as a String

    # File lib/rubigen/helpers/generator_test_helper.rb, line 33
33:     def silence_generator
34:       logger_original      = RubiGen::Base.logger
35:       myout                = StringIO.new
36:       RubiGen::Base.logger = RubiGen::SimpleLogger.new(myout)
37:       yield if block_given?
38:       RubiGen::Base.logger = logger_original
39:       myout.string
40:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.