# Generated from ruby_rolling_rate_limiter-0.1.5.gem by gem2rpm -*- rpm-spec -*- %global gem_name ruby_rolling_rate_limiter Name: rubygem-%{gem_name} Version: 0.1.5 Release: 1%{?dist} Summary: Ruby Rolling Rate Limiter provides a redis backed rolling window rate limiting service License: MIT URL: https://github.com/logicsaas/ruby_rolling_rate_limiter Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem BuildRequires: ruby(release) BuildRequires: rubygems-devel BuildRequires: ruby # BuildRequires: rubygem(minitest) >= 5.0 # BuildRequires: rubygem(minitest) < 6 # BuildRequires: rubygem(bump) BuildArch: noarch %description Often Redis is used for rate limiting purposes. Usually the rate limit packages available count how many times something happens on a certain second or a certain minute. When the clock ticks to the next minute, rate limit counter is reset back to the zero. This might be problematic if you are looking to limit rates where hits per integration time window is very low. If you are looking to limit to the five hits per minute, in one time window you get just one hit and six in another, even though the average over two minutes is 3.5. This package allows you to implement a correct rolling window of threshold that's backed by ATOMIC storage in Redis meaning you can use this implementation across multiple machines and processes. %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} # ruby -e 'Dir.glob "./test/**/*_test.rb", &method(:require)' popd %files %dir %{gem_instdir} %exclude %{gem_instdir}/.gitignore %exclude %{gem_instdir}/.travis.yml %{gem_instdir}/CODE_OF_CONDUCT.md %license %{gem_instdir}/LICENSE.txt %{gem_instdir}/bin %{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}/ruby_rolling_rate_limiter.gemspec %changelog * Wed Apr 20 2022 mockbuilder - 0.1.5-1 - Initial package