# Generated from syncache-1.4.gem by gem2rpm -*- rpm-spec -*-
%global gem_name syncache

Name: rubygem-%{gem_name}
Version: 1.4
Release: 1%{?dist}
Summary: Thread-safe time-limited cache with flexible replacement policy
License: GPL-3.0+
URL: https://github.com/angdraug/syncache
Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem
BuildRequires: ruby(release)
BuildRequires: rubygems-devel
BuildRequires: ruby
BuildArch: noarch

%description
SynCache stores cached objects in a Hash that is protected by an advanced
two-level locking mechanism which ensures that:
* Multiple threads can add and fetch objects in parallel.
* While one thread is working on a cache entry, other threads can access
the rest of the cache with no waiting on the global lock, no race
conditions nor deadlock or livelock situations.
* While one thread is performing a long and resource-intensive
operation, other threads that request the same data will be put on hold,
and as soon as the first thread completes the operation, the result will be
returned to all threads.


%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}/


mkdir -p %{buildroot}%{_bindir}
cp -a .%{_bindir}/* \
        %{buildroot}%{_bindir}/

find %{buildroot}%{gem_instdir}/bin -type f | xargs chmod a+x

%check
pushd .%{gem_instdir}
# Run the test suite.
popd

%files
%dir %{gem_instdir}
%{_bindir}/syncache-drb
%license %{gem_instdir}/COPYING
%{gem_instdir}/bin
%{gem_libdir}
%{gem_instdir}/man
%{gem_instdir}/setup.rb
%exclude %{gem_cache}
%{gem_spec}

%files doc
%doc %{gem_docdir}
%doc %{gem_instdir}/ChangeLog.mtn
%doc %{gem_instdir}/README.rdoc
%{gem_instdir}/Rakefile
%{gem_instdir}/syncache.gemspec
%{gem_instdir}/test

%changelog
* Thu Sep 16 2021 mockbuilder - 1.4-1
- Initial package