Skip to content

Commit ab7a4c2

Browse files
committed
Required Ruby 3.1 minimum
Set stricter dependency related to Ruby 3 it helps with CI stability Add more description to Rakefile in order to display the target with `rake --task`
1 parent 79a6626 commit ab7a4c2

File tree

2 files changed

+48
-29
lines changed

2 files changed

+48
-29
lines changed

Rakefile

Lines changed: 43 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
1+
# Automate serpapi ruby gem end to end
2+
#
3+
# rake --task
4+
#
5+
# main targets:
6+
#
7+
# rake dependency # to install dependency
8+
# rake oobt # pre
9+
#
10+
111
require 'rake'
212
require 'rspec/core/rake_task'
313
require 'rubocop/rake_task'
414
require 'yard'
515
require_relative 'lib/serpapi'
616

7-
task :check do
8-
if ENV['API_KEY']
9-
puts 'check: found $API_KEY'
10-
else
11-
puts 'check: API_KEY must be defined'
12-
exit 1
13-
end
14-
end
17+
desc "run out of box testing using the local gem file pre-release"
18+
task oobt: %i[check readme doc check build install demo]
1519

20+
desc "execute all the steps except release"
21+
task default: %i[check dependency version readme doc build test oobt]
22+
23+
desc "update README.md from the template"
1624
task readme: ['README.md.erb'] do
1725
`erb -T '-' README.md.erb > README.md`
1826
end
@@ -32,45 +40,56 @@ RuboCop::RakeTask.new(:lint) do |t|
3240
t.options = ['--display-cop-names']
3341
end
3442

43+
desc "format ruby code using rubocop"
44+
task :format do
45+
sh('rubocop --auto-correct')
46+
end
47+
48+
desc 'install project dependencies'
3549
task :dependency do
3650
sh 'bundle install'
3751
end
3852

53+
desc 'build serpapi library as a gem'
3954
task :build do
4055
sh 'gem build serpapi'
4156
end
4257

58+
desc 'install serpapi library from the .gem'
4359
task :install do
4460
sh "gem install ./serpapi-#{SerpApi::VERSION}.gem"
4561
end
4662

63+
desc 'run demo example'
4764
task :demo do
4865
sh 'ruby oobt/demo.rb'
4966
end
5067

68+
desc 'release the gem to the public rubygems.org'
69+
task release: [:oobt] do
70+
sh 'gem push `ls -t1 *.gem | head -1`'
71+
puts 'release public on: https://rubygems.org/gems/serpapi/versions'
72+
end
73+
74+
# private
75+
task :check do
76+
if ENV['API_KEY']
77+
puts 'check: found $API_KEY'
78+
else
79+
puts 'check: API_KEY must be defined'
80+
exit 1
81+
end
82+
end
83+
84+
desc 'print current version'
5185
task :version do
5286
puts 'current version: ' + SerpApi::VERSION
5387
end
5488

89+
desc 'create a tag'
5590
task :tag do
5691
version = SerpApi::VERSION
5792
puts "create git tag #{version}"
5893
sh "git tag #{version}"
5994
puts "now publish the tag:\n$ git push origin #{version}"
60-
end
61-
62-
task release: [:oobt] do
63-
sh 'gem push `ls -t1 *.gem | head -1`'
64-
puts 'release public on: https://rubygems.org/gems/serpapi/versions'
65-
end
66-
67-
desc "run out of box testing using the gem file"
68-
task oobt: %i[readme doc check build install demo]
69-
70-
desc "execute all the steps"
71-
task default: %i[dependency version readme doc build test oobt]
72-
73-
desc "format ruby code using rubocop"
74-
task :format do
75-
sh('rubocop --auto-correct')
7695
end

serpapi.gemspec

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ end
2020
s.require_paths = ['lib']
2121
s.homepage = 'https://github.com/serpapi/serpapi-ruby'
2222
s.license = 'MIT'
23-
s.required_ruby_version = '>= 1.9'
23+
s.required_ruby_version = '>= 3.1'
2424

2525
# faraday
2626
s.add_dependency 'faraday', '~> 2.13'
2727

2828
# development dependency
29-
s.add_development_dependency 'rake'
30-
s.add_development_dependency 'rspec'
31-
s.add_development_dependency 'yard'
32-
s.add_development_dependency 'rubocop'
29+
s.add_development_dependency 'rake', '~> 13.2.1'
30+
s.add_development_dependency 'rspec', '~>3.11'
31+
s.add_development_dependency 'yard', '~>0.9.28'
32+
s.add_development_dependency 'rubocop', '~>1.75.7'
3333

3434
end

0 commit comments

Comments
 (0)