Module: RubiGen::GeneratorTestHelper

### Home Classes Methods

### In Files

- lib/rubigen/helpers/generator_test_helper.rb

### Methods

- #app_root_files
- #assert_directory_exists
- #assert_file_exists
- #assert_generated_class
- #assert_generated_file
- #assert_generated_module
- #assert_generated_test_for
- #assert_has_method
- #bare_setup
- #bare_teardown
- #build_generator
- #rubygem_folders
- #rubygems_setup
- #rubygems_teardown
- #run_generator
- #silence_generator

### Files

- History.txt
- License.txt
- Manifest.txt
- Todo.txt
- README.txt
- index.txt
- version-raw.txt
- version.txt

### Class/Module Index

Quicksearch

- RubiGen
- RubiGen::AbstractGemSource
- RubiGen::Base
- RubiGen::Commands
- RubiGen::Commands::Base
- RubiGen::Commands::Create
- RubiGen::Commands::Destroy
- RubiGen::Commands::List
- RubiGen::Commands::RewindBase
- RubiGen::Commands::Update
- RubiGen::GemPathSource
- RubiGen::GeneratedAttribute
- RubiGen::GeneratorError
- RubiGen::GeneratorTestHelper
- RubiGen::Lookup
- RubiGen::Lookup::ClassMethods
- RubiGen::Manifest
- RubiGen::Options
- RubiGen::Options::ClassMethods
- RubiGen::PathFilteredSource
- RubiGen::PathSource
- RubiGen::Scripts
- RubiGen::Scripts::Base
- RubiGen::Scripts::Destroy
- RubiGen::Scripts::Generate
- RubiGen::Scripts::Update
- RubiGen::Source
- RubiGen::Spec
- RubiGen::UsageError
- Rubigen
- Rubigen::CLI
- Dir
- Object

No matching classes.

# RubiGen::GeneratorTestHelper

### Public Instance Methods

app_root_files() click to toggle source

    # File lib/rubigen/helpers/generator_test_helper.rb, line 104
    def app_root_files
      Dir[APP_ROOT + '/**/*']
    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
    def assert_directory_exists(path)
      assert File.directory?("#{APP_ROOT}/#{path}"),"The directory '#{path}' should exist"
    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
    def assert_file_exists(path)
      assert File.exists?("#{APP_ROOT}/#{path}"),"The file '#{path}' should exist"
    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
    def assert_generated_class(path,parent=nil)
      path=~/\/?(\d+_)?(\w+)$/
      class_name=$2.camelize
      assert_generated_file("#{path}.rb") do |body|
        assert body=~/class #{class_name}#{parent.nil? ? '':" < #{parent}"}/,"the file '#{path}.rb' should be a class"
        yield body if block_given?
      end
    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
    def assert_generated_file(path)
      assert_file_exists(path)
      File.open("#{APP_ROOT}/#{path}") do |f|
        yield f.read if block_given?
      end
    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
    def assert_generated_module(path)
      path=~/\/?(\w+)$/
      module_name=$1.camelize
      assert_generated_file("#{path}.rb") do |body|
        assert body=~/module #{module_name}/,"the file '#{path}.rb' should be a module"
        yield body if block_given?
      end
    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
    def assert_generated_test_for(name, parent="Test::Unit::TestCase")
      assert_generated_class "test/test_#{name.to_s.underscore}", parent do |body|
        yield body if block_given?
      end
    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
    def assert_has_method(body,*methods)
      methods.each do |name|
        assert body=~/^  def #{name.to_s}\n((\n|   .*\n)*)  end/,"should have method #{name.to_s}"
        yield( name, $1 ) if block_given?
      end
    end

bare_setup() click to toggle source

    # File lib/rubigen/helpers/generator_test_helper.rb, line 123
    def bare_setup
      FileUtils.mkdir_p(APP_ROOT)
      @stdout = StringIO.new
    end

bare_teardown() click to toggle source

    # File lib/rubigen/helpers/generator_test_helper.rb, line 128
    def bare_teardown
      FileUtils.rm_rf TMP_ROOT || APP_ROOT
    end

build_generator(name, params, sources, options) click to toggle source

Instatiates the Generator

    # File lib/rubigen/helpers/generator_test_helper.rb, line 15
    def build_generator(name, params, sources, options)
      @stdout ||= StringIO.new
      options.merge!(:collision => :force)  # so no questions are prompted
      options.merge!(:stdout => @stdout)  # so stdout is piped to a StringIO
      if sources.is_a?(Symbol)
        if sources == :app
          RubiGen::Base.use_application_sources!
        else
          RubiGen::Base.use_component_sources!
        end
      else
        RubiGen::Base.reset_sources
        RubiGen::Base.prepend_sources(*sources) unless sources.blank?
      end
      RubiGen::Base.instance(name, params, options)
    end

rubygem_folders() click to toggle source

    # File lib/rubigen/helpers/generator_test_helper.rb, line 108
    def rubygem_folders
      ]bin examples lib test]
    end

rubygems_setup() click to toggle source

    # File lib/rubigen/helpers/generator_test_helper.rb, line 112
    def rubygems_setup
      bare_setup
      rubygem_folders.each do |folder|
        Dir.mkdir("#{APP_ROOT}/#{folder}") unless File.exists?("#{APP_ROOT}/#{folder}")
      end
    end

rubygems_teardown() click to toggle source

    # File lib/rubigen/helpers/generator_test_helper.rb, line 119
    def rubygems_teardown
      bare_teardown
    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
    def run_generator(name, params, sources, options = {})
      generator = build_generator(name, params, sources, options)
      silence_generator do
        generator.command(:create).invoke!
      end
      generator
    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
    def silence_generator
      logger_original      = RubiGen::Base.logger
      myout                = StringIO.new
      RubiGen::Base.logger = RubiGen::SimpleLogger.new(myout)
      yield if block_given?
      RubiGen::Base.logger = logger_original
      myout.string
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.