# Generated from filesystem_cleaner-0.0.1.gem by gem2rpm -*- rpm-spec -*- %global gem_name filesystem_cleaner Name: rubygem-%{gem_name} Version: 0.0.1 Release: 1%{?dist} Summary: ```ruby # spec/spec_helper.rb RSpec.configure do |config| fs_cleaner = FileSystemCleaner.new( Rails.root.join("public", "system", "test", "files"), Rails.root.join("tmp, "files.bak") ) config.before(:each) { fs_cleaner.save_files!(example) } config.after(:each) { fs_cleaner.restore_files!(example) } end ``` ```ruby # spec/some_spec.rb describe "a filesystem modification", file: true do # `file: true` activates the cleaner before do test_file = Rails.root.join("public", "system", "test", "files", "#{filename}.txt") `cp #{fixture_file} #{test_file}` end it "reads the file" do expect(MyFileReader.new(filename).to_s).to eq(File.read(fixture_file)) end let(:filename) { SecureRandom.uuid } let(:fixture_file) { Rails.root.join("spec", "fixtures", "some_data.txt") } end ``` After the test runs, `public/system/test/files` is restored to it's pre-test state License: MIT URL: https://github.com/dapplebeforedawn/filesystem-cleaner-gem Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem BuildRequires: ruby(release) BuildRequires: rubygems-devel BuildRequires: ruby BuildArch: noarch %description For tests that need to modify files. %package doc Summary: Documentation for %{name} Requires: %{name} = %{version}-%{release} BuildArch: noarch %description doc Documentation for %{name}. %prep %setup -q -n %{gem_name}-%{version} %build # Create the gem as gem install only works on a gem file gem build ../%{gem_name}-%{version}.gemspec # %%gem_install compiles any C extensions and installs the gem into ./%%gem_dir # by default, so that we can move it into the buildroot in %%install %gem_install %install mkdir -p %{buildroot}%{gem_dir} cp -a .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ %check pushd .%{gem_instdir} # Run the test suite. popd %files %dir %{gem_instdir} %exclude %{gem_instdir}/.gitignore %license %{gem_instdir}/LICENSE.txt %{gem_libdir} %exclude %{gem_cache} %{gem_spec} %files doc %doc %{gem_docdir} %{gem_instdir}/Gemfile %doc %{gem_instdir}/README.md %{gem_instdir}/Rakefile %{gem_instdir}/filesystem_cleaner.gemspec %changelog * Tue Apr 19 2022 mockbuilder - 0.0.1-1 - Initial package