spec/sugar-high/file/file_spec.rb in sugar-high-0.3.3 vs spec/sugar-high/file/file_spec.rb in sugar-high-0.3.4

- old
+ new

@@ -1,84 +1,127 @@ require 'spec_helper' require 'sugar-high/file' +require 'sugar-high/file_mutate' describe "SugarHigh" do describe "File" do let(:empty_file) { fixture_file 'empty.txt' } let(:non_empty_file) { fixture_file 'non-empty.txt'} let(:replace_file) { fixture_file 'file.txt' } + let(:search_file) { fixture_file 'search_file.txt' } before :each do File.delete replace_file if File.file?(replace_file) end - describe '#self.blank' do + describe '#self.blank?' do it "should return true for an empty file" do File.blank?(empty_file).should be_true end it "should return false for a NON-empty file" do File.blank?(non_empty_file).should_not be_true end end - describe '#blank' do + describe '#blank?' do it "should return true for an empty file" do File.new(empty_file).blank?.should be_true end it "should return false for a NON-empty file" do File.new(non_empty_file).blank?.should_not be_true end end - end - describe '#file_names' do - let(:replace_file) { fixture_file 'file.txt' } - - before :each do - File.delete replace_file if File.file?(replace_file) - end - - it "should return all file names of an array of paths to files" do - expr = fixtures_dir + '/*.txt' - Dir.glob(expr).file_names('txt').should == ['empty', 'non-empty'] - end - end + describe '#has_content?' do + it "should find content in file using String argument" do + File.overwrite(search_file) do + 'Find this line right here!' + end + File.has_content?(search_file, 'line right').should be_true + File.has_content?(search_file, 'line left').should be_false + end - describe '#read_from' do - let(:non_empty_file) { fixture_file 'non-empty.txt' } - - it "should read all the content into a block" do - File.read_from non_empty_file do |content| - content.should match /blip/ - content.should match /blup/ + it "should find content in file using Regexp argument" do + File.overwrite(search_file) do + 'Find this line right here!' + end + File.has_content?(search_file, /line right/).should be_true + File.has_content?(search_file, /line left/).should be_false end end + + describe '#read_from' do - it "should read all the content before a given marker" do - content = File.read_from non_empty_file, :before => 'blap' - content.should match /blip/ - content.should_not match /blap/ - end + it "should read all the content into a block" do + File.read_from non_empty_file do |content| + content.should match /blip/ + content.should match /blup/ + end + end - it "should read all the content after a given marker" do - content = File.read_from non_empty_file, :after => 'blap' - content.should match /blup/ - content.should_not match /blap/ - end - - it "should read all the content before a given marker into a block" do - File.read_from non_empty_file, :before => 'blap' do |content| + it "should read all the content before a given marker" do + content = File.read_from non_empty_file, :before => 'blap' content.should match /blip/ - content.should_not match /blap/ + content.should_not match /blap/ end - end - it "should read all the content after a given marker into a block" do - File.read_from non_empty_file, :after => 'blap' do |content| + it "should read all the content after a given marker" do + content = File.read_from non_empty_file, :after => 'blap' content.should match /blup/ - content.should_not match /blap/ + content.should_not match /blap/ + end + + it "should read all the content before a given marker into a block" do + File.read_from non_empty_file, :before => 'blap' do |content| + content.should match /blip/ + content.should_not match /blap/ + end + end + + it "should read all the content after a given marker into a block" do + File.read_from non_empty_file, :after => 'blap' do |content| + content.should match /blup/ + content.should_not match /blap/ + end + end + end + + describe '#read_content (instance)' do + let(:non_empty_file) { fixture_file 'non-empty.txt' } + + it "should read all the content into a block" do + File.new(non_empty_file).read_content do |content| + content.should match /blip/ + content.should match /blup/ + end + end + end + + describe '#read_from (class)' do + let(:non_empty_file) { fixture_file 'non-empty.txt' } + + it "should read all the content into a block" do + File.read_from(non_empty_file) do |content| + content.should match /blip/ + content.should match /blup/ + end + end + end + end + + describe "Array" do + describe '#file_names' do + let(:replace_file) { fixture_file 'file.txt' } + + before :each do + File.delete replace_file if File.file?(replace_file) + end + + it "should return all file names of an array of paths to files" do + expr = fixtures_dir + '/*.txt' + Dir.glob(expr).file_names('txt').should include('empty', 'non-empty') end end end end