# Generated from code_error-1.0.0.gem by gem2rpm -*- rpm-spec -*- %global gem_name code_error Name: rubygem-%{gem_name} Version: 1.0.0 Release: 1%{?dist} Summary: Inherit CodeError::Base to create your own code-based error. You need to assign "error_codes" with a hash to define your own error code map. class MyError < CodeError::Base error_codes({ purchase_info_incorrect: { status: :failed, msg: 'Purchase information format is incorrect.' }, device_info_incorrect: { status: :failed, msg: 'Device information format is incorrect.' }, unknown_store: { status: :failed, msg: 'Unknown store.' }, duplicated_request: { status: :duplicated, msg: 'A duplicated IAP request is sent.' }, resend_iap: { status: :retry, msg: 'Client should send the IAP request again.' } }) end Raise an error with a code when you need. raise MyError.gen(:purchase_info_incorrect) Rescue and handle it. begin #... raise MyError.gen(:purchase_info_incorrect) #... rescue MyError => e raise e if e.internal? msg = e.msg code = e.code info = e.info data = e.data case(e.status) when :failed #... when :duplicated #... else #... end #... end Please see "README" to get more details License: MIT URL: https://github.com/sibevin/code_error 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 BuildArch: noarch %description A code-based customized error. %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} %license %{gem_instdir}/LICENSE.txt %{gem_libdir} %exclude %{gem_cache} %{gem_spec} %files doc %doc %{gem_docdir} %doc %{gem_instdir}/HISTORY.md %doc %{gem_instdir}/README.md %{gem_instdir}/code_error.gemspec %{gem_instdir}/test %changelog * Mon Feb 07 2022 mockbuilder - 1.0.0-1 - Initial package