module QuickShoulda::FileWriter

Constants

DescribeRegex

Public Instance Methods

clear_all_blocks() click to toggle source
# File lib/quick_shoulda/file_writer.rb, line 14
def clear_all_blocks
        [:validation, :association].each do |block_name| 
                clear_block block_describe_header(block_name)
        end
end
clear_block(block) click to toggle source
# File lib/quick_shoulda/file_writer.rb, line 36
def clear_block(block)
        file_content = ""
        File.open(spec_file_path, 'r') do | file |
                
                delete_mode = false                         

                while( line = file.gets )
                        filtered_line = line.gsub(/[\n\t]/,'')

                        if filtered_line == block || delete_mode
                                delete_mode = true if filtered_line == block
                                delete_mode = false if filtered_line == 'end'
                                next
                        end

                        file_content << line
                end
        end

        File.open(spec_file_path, 'w') { |file | file.write( file_content ) }
end
create_file_and_write_init_content() click to toggle source
# File lib/quick_shoulda/file_writer.rb, line 7
def create_file_and_write_init_content
        FileUtils.mkdir_p(File.dirname(spec_file_path))
        File.open(spec_file_path, 'w') do |file|
                file.write(spec_init_content)
        end
end
write_block(shoulda_content) click to toggle source
# File lib/quick_shoulda/file_writer.rb, line 20
def write_block(shoulda_content)      
        file_content = ''
        File.open(spec_file_path, 'a+') do |file|                            
                inserted = false
                while( line = file.gets )
                        file_content << line                                                                               
                        if !inserted && line.strip.gsub(/[\t\n]/,'') =~ DescribeRegex                                              
                        file_content << shoulda_content
                                inserted = true
                        end
                end                         
        end

        File.open(spec_file_path, 'w') { |file | file.write( file_content ) }
end