%global gem_name activerecord
Name:                rubygem-%{gem_name}
Epoch:               1
Version:             5.2.4.4
Release:             3
Summary:             Object-relational mapper framework (part of Rails)
License:             MIT
URL:                 http://rubyonrails.org
Source0:             https://rubygems.org/gems/activerecord-5.2.4.4.gem
Source1:             https://github.com/rails/rails/archive/v5.2.4.4.tar.gz
Patch0:              CVE-2021-22880-1.patch 
Patch1:              CVE-2021-22880-2.patch

Suggests:            %{_bindir}/sqlite3
BuildRequires:       rubygems-devel rubygem(bcrypt) rubygem(activesupport) = %{version}
BuildRequires:       rubygem(activemodel) = %{version} rubygem(builder) rubygem(sqlite3)
BuildRequires:       rubygem(mocha) rubygem(arel) rubygem(rack) sqlite
BuildArch:           noarch
%description
Implements the ActiveRecord pattern (Fowler, PoEAA) for ORM. It ties database
tables and classes together for business objects, like Customer or
Subscription, that can find, save, and destroy themselves without resorting to
manual SQL.

%package doc
Summary:             Documentation for %{name}
Requires:            %{name} = %{epoch}:%{version}-%{release}
BuildArch:           noarch
%description doc
Documentation for %{name}.

%prep
%setup -q -n %{gem_name}-%{version} -b 1
%patch0 -p1
pushd %{_builddir}
%patch1 -p1
popd

%build
gem build ../%{gem_name}-%{version}.gemspec
%gem_install

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

%check
pushd .%{gem_instdir}
cp -a %{_builddir}/rails-%{version}/%{gem_name}/test test
sed -i '/(SEARCH )/d' test/cases/adapters/sqlite3/explain_test.rb
sed -i '/(SCAN )/d' test/cases/adapters/sqlite3/explain_test.rb
sed -i '/^\s*def test_too_many_binds$/ a skip' \
  test/cases/bind_parameter_test.rb
sed -i '/^\s*def test_preloading_has_many_through_with_implicit_source$/ a skip' \
  test/cases/associations/eager_test.rb
sed -i '/^\s*def test_eager_habtm_with_association_inheritance$/ a skip' \
  test/cases/associations/eager_test.rb
ruby -Itest:lib <<EOF
  test_files = Dir.glob( "./test/cases/**/*_test.rb" )
  test_files.reject! { |x| x =~ %r|/adapters/| }
  # Only test sqlite3 backend
  test_files += Dir.glob("./test/cases/adapters/sqlite3/*_test.rb")
  test_files.sort.each { |f| require f }
EOF
popd

%files
%dir %{gem_instdir}
%license %{gem_instdir}/MIT-LICENSE
%{gem_libdir}
%exclude %{gem_cache}
%{gem_spec}

%files doc
%doc %{gem_docdir}
%doc %{gem_instdir}/CHANGELOG.md
%doc %{gem_instdir}/README.rdoc
%{gem_instdir}/examples

%changelog
* Sat Jan 15 2021 Ge Wang <wangge20@huawei.com> - 5.2.4.4-3
- fix check failure

* Tue Mar 16 2021 wangyue <wangyue92@huawei.com> - 5.2.4.4-2
- fix CVE-2021-22880
 
* Mon Feb  8 2021 sunguoshuai<sunguoshuai@huawei.com>- 5.2.4.4-1
- Upgrade to 5.2.4.4

* Wed Aug 12 2020 chengzihan <chengzihan2@huawei.com> - 5.2.3-1
- Package init
