Module: QuickShoulda::FileWriter
- Included in:
- QuickShoulda
- Defined in:
- lib/quick_shoulda/file_writer.rb
Constant Summary collapse
- DescribeRegex =
/^describe\s.+\sdo$/i
Instance Method Summary collapse
- #clear_all_blocks ⇒ Object
- #clear_block(block) ⇒ Object
- #create_file_and_write_init_content ⇒ Object
- #write_block(shoulda_content) ⇒ Object
Instance Method Details
#clear_all_blocks ⇒ Object
14 15 16 17 18 |
# 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) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# 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 ⇒ Object
7 8 9 10 11 12 |
# 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) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# 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 |