From 1ded4adcda1d29ac2d4bf7b0b8f5106af74a6335 Mon Sep 17 00:00:00 2001 From: Owens Ehimen Date: Mon, 9 Feb 2026 13:39:16 -0500 Subject: [PATCH 1/6] CON 889: Upgrade ruby to 4.0.1 + downstream updates --- .ruby-version | 2 +- CHANGELOG.md | 10 ++ Gemfile | 4 +- Rakefile | 42 +----- action_kit_rest.gemspec | 144 ++++++-------------- lib/action_kit_rest/api.rb | 33 +++-- lib/action_kit_rest/response/raise_error.rb | 2 +- lib/action_kit_rest/user.rb | 2 +- lib/action_kit_rest/version.rb | 2 +- spec/lib/action_kit_rest/user_spec.rb | 3 +- 10 files changed, 84 insertions(+), 160 deletions(-) diff --git a/.ruby-version b/.ruby-version index be94e6f..4d54dad 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.2 +4.0.2 diff --git a/CHANGELOG.md b/CHANGELOG.md index e2fd660..bd17c2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## [0.4.12] - 2026-02-09 + +### Changed +- Upgraded to Ruby 4.0.2 compatibility +- Upgraded Faraday from 1.x to 2.14.1 for Ruby 4.0+ support +- Upgraded Vertebrae from 0.8.0 to 1.0.5 +- Upgraded Hashie from 3.6.0 to 5.1.0 +- Removed juwelier dependency in favor of standard Bundler gem tasks +- Updated Faraday middleware to use Faraday 2.x API + ## [0.4.11] - 2025-10-27 ### Bugfixes diff --git a/Gemfile b/Gemfile index e0feba5..e927c20 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ # frozen_string_literal: true -source 'http://rubygems.org' +source 'https://rubygems.org' gem 'vertebrae', '>= 0.6.0' @@ -10,7 +10,7 @@ group :development do gem 'em-http-request', '>=1.1.5', '<2.0' gem 'em-synchrony', '>=1.0.6', '<2.0' gem 'eventmachine', '>=1.2.5', '<2.0' - gem 'juwelier', git: 'https://github.com/flajann2/juwelier.git' + gem 'rake' gem 'rspec', '~> 3.7' gem 'rubocop' gem 'webmock', '~> 3.3' diff --git a/Rakefile b/Rakefile index 415dabd..a9e895f 100644 --- a/Rakefile +++ b/Rakefile @@ -1,47 +1,13 @@ # frozen_string_literal: true -require 'rubygems' -require 'bundler' -begin - Bundler.setup(:default, :development) -rescue Bundler::BundlerError => e - warn e.message - warn 'Run `bundle install` to install missing gems' - exit e.status_code -end -require 'rake' -require './lib/action_kit_rest/version' - -require 'juwelier' -Juwelier::Tasks.new do |gem| - gem.name = 'action_kit_rest' - gem.version = ActionKitRest::VERSION::STRING - gem.homepage = 'http://github.com/controlshift/action_kit_rest' - gem.license = 'MIT' - gem.summary = %(A wrapper for the ActionKit REST API) - gem.description = %(Gem for interacting with the ActionKit API) - gem.email = 'systems@controlshiftlabs.com' - gem.authors = ['Nathan Woodhull', 'Diego Marcet', 'Grey Moore'] - # dependencies defined in Gemfile -end -Juwelier::RubygemsDotOrgTasks.new - +require 'bundler/gem_tasks' require 'rspec/core/rake_task' + desc 'Default: run specs.' task default: :spec desc 'Run specs' -RSpec::Core::RakeTask.new do |t| - t.pattern = './spec/**/*_spec.rb' # don't need this, it's default. +RSpec::Core::RakeTask.new(:spec) do |t| + t.pattern = './spec/**/*_spec.rb' t.rspec_opts = '--color' end - -require 'rdoc/task' -Rake::RDocTask.new do |rdoc| - version = File.exist?('VERSION') ? File.read('VERSION') : '' - - rdoc.rdoc_dir = 'rdoc' - rdoc.title = "action_kit_rest #{version}" - rdoc.rdoc_files.include('README*') - rdoc.rdoc_files.include('lib/**/*.rb') -end diff --git a/action_kit_rest.gemspec b/action_kit_rest.gemspec index 6867164..8fc85ff 100644 --- a/action_kit_rest.gemspec +++ b/action_kit_rest.gemspec @@ -1,111 +1,45 @@ -# Generated by juwelier -# DO NOT EDIT THIS FILE DIRECTLY -# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec' -# -*- encoding: utf-8 -*- -# stub: action_kit_rest 0.4.11 ruby lib +# frozen_string_literal: true -Gem::Specification.new do |s| - s.name = "action_kit_rest".freeze - s.version = "0.4.11" +require_relative "lib/action_kit_rest/version" - s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= - s.require_paths = ["lib".freeze] - s.authors = ["Nathan Woodhull".freeze, "Diego Marcet".freeze, "Grey Moore".freeze] - s.date = "2025-10-27" - s.description = "Gem for interacting with the ActionKit API".freeze - s.email = "systems@controlshiftlabs.com".freeze - s.extra_rdoc_files = [ - "LICENSE.txt", - "README.md" - ] - s.files = [ - ".document", - ".github/workflows/ci.yml", - ".rspec", - ".rubocop.yml", - ".ruby-gemset", - ".ruby-version", - "CHANGELOG.md", - "Gemfile", - "LICENSE.txt", - "README.md", - "Rakefile", - "action_kit_rest.gemspec", - "lib/action_kit_rest.rb", - "lib/action_kit_rest/action.rb", - "lib/action_kit_rest/actions/event_create_action.rb", - "lib/action_kit_rest/actions/event_signup_action.rb", - "lib/action_kit_rest/actions/unsubscribe_action.rb", - "lib/action_kit_rest/allowed_user_field.rb", - "lib/action_kit_rest/api.rb", - "lib/action_kit_rest/base.rb", - "lib/action_kit_rest/client.rb", - "lib/action_kit_rest/event.rb", - "lib/action_kit_rest/event_signup.rb", - "lib/action_kit_rest/language.rb", - "lib/action_kit_rest/list.rb", - "lib/action_kit_rest/page.rb", - "lib/action_kit_rest/pages/base.rb", - "lib/action_kit_rest/pages/donation_page.rb", - "lib/action_kit_rest/pages/event_campaign_page.rb", - "lib/action_kit_rest/pages/import_page.rb", - "lib/action_kit_rest/pages/signup_page.rb", - "lib/action_kit_rest/pages/unsubscribe_page.rb", - "lib/action_kit_rest/phone.rb", - "lib/action_kit_rest/railties.rb", - "lib/action_kit_rest/response/collection.rb", - "lib/action_kit_rest/response/raise_error.rb", - "lib/action_kit_rest/response/validation_error.rb", - "lib/action_kit_rest/response/wrapper.rb", - "lib/action_kit_rest/tag.rb", - "lib/action_kit_rest/user.rb", - "lib/action_kit_rest/version.rb", - "spec/fixtures/action/event_create_action.json", - "spec/fixtures/action/event_signup_action.json", - "spec/fixtures/allowed_user_field/get.json", - "spec/fixtures/allowed_user_field/list.json", - "spec/fixtures/allowed_user_field/list_filtered.json", - "spec/fixtures/error.json", - "spec/fixtures/page/campaign.json", - "spec/fixtures/page/collection.json", - "spec/fixtures/page/find_campaign.json", - "spec/fixtures/page/find_event_create.json", - "spec/fixtures/page/find_event_signup.json", - "spec/fixtures/page/object.json", - "spec/fixtures/phone/object.json", - "spec/fixtures/user/object_with_phones.json", - "spec/fixtures/user/object_without_phones.json", - "spec/lib/action_kit_rest/actions/event_create_action_spec.rb", - "spec/lib/action_kit_rest/actions/event_signup_action_spec.rb", - "spec/lib/action_kit_rest/allowed_user_field_spec.rb", - "spec/lib/action_kit_rest/api_spec.rb", - "spec/lib/action_kit_rest/logger_spec.rb", - "spec/lib/action_kit_rest/page_spec.rb", - "spec/lib/action_kit_rest/pages/event_campaign_page_spec.rb", - "spec/lib/action_kit_rest/pages/import_page_spec.rb", - "spec/lib/action_kit_rest/response/collection_spec.rb", - "spec/lib/action_kit_rest/response/validation_error_spec.rb", - "spec/lib/action_kit_rest/response/wrapper_spec.rb", - "spec/lib/action_kit_rest/user_spec.rb", - "spec/spec_helper.rb", - "spec/support/shared_contexts/stub_logger.rb" - ] - s.homepage = "http://github.com/controlshift/action_kit_rest".freeze - s.licenses = ["MIT".freeze] - s.rubygems_version = "3.4.10".freeze - s.summary = "A wrapper for the ActionKit REST API".freeze +Gem::Specification.new do |spec| + spec.name = "action_kit_rest" + spec.version = ActionKitRest::VERSION::STRING + spec.authors = ["Nathan Woodhull", "Diego Marcet", "Grey Moore"] + spec.email = ["systems@controlshiftlabs.com"] - s.specification_version = 4 + spec.summary = "A wrapper for the ActionKit REST API" + spec.description = "Gem for interacting with the ActionKit API" + spec.homepage = "https://github.com/controlshift/action_kit_rest" + spec.license = "MIT" + spec.required_ruby_version = ">= 3.0.0" - s.add_runtime_dependency(%q.freeze, [">= 0.6.0"]) - s.add_development_dependency(%q.freeze, [">= 2.0", "< 3.0"]) - s.add_development_dependency(%q.freeze, [">= 0"]) - s.add_development_dependency(%q.freeze, [">= 1.1.5", "< 2.0"]) - s.add_development_dependency(%q.freeze, [">= 1.0.6", "< 2.0"]) - s.add_development_dependency(%q.freeze, [">= 1.2.5", "< 2.0"]) - s.add_development_dependency(%q.freeze, [">= 0"]) - s.add_development_dependency(%q.freeze, ["~> 3.7"]) - s.add_development_dependency(%q.freeze, [">= 0"]) - s.add_development_dependency(%q.freeze, ["~> 3.3"]) + spec.metadata["homepage_uri"] = spec.homepage + spec.metadata["source_code_uri"] = spec.homepage + spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/master/CHANGELOG.md" + + # Specify which files should be added to the gem when it is released. + # The `git ls-files -z` loads the files in the RubyGem that have been added into git. + spec.files = Dir.chdir(__dir__) do + `git ls-files -z`.split("\x0").reject do |f| + (File.expand_path(f) == __FILE__) || + f.start_with?(*%w[bin/ spec/ .git .github .document .idea coverage/]) + end + end + spec.require_paths = ["lib"] + + # Runtime dependencies + spec.add_dependency "vertebrae", ">= 0.6.0" + + # Development dependencies + spec.add_development_dependency "bundler", ">= 2.0", "< 3.0" + spec.add_development_dependency "byebug" + spec.add_development_dependency "em-http-request", ">= 1.1.5", "< 2.0" + spec.add_development_dependency "em-synchrony", ">= 1.0.6", "< 2.0" + spec.add_development_dependency "eventmachine", ">= 1.2.5", "< 2.0" + spec.add_development_dependency "rake" + spec.add_development_dependency "rspec", "~> 3.7" + spec.add_development_dependency "rubocop" + spec.add_development_dependency "webmock", "~> 3.3" end diff --git a/lib/action_kit_rest/api.rb b/lib/action_kit_rest/api.rb index e1880e8..0da8537 100644 --- a/lib/action_kit_rest/api.rb +++ b/lib/action_kit_rest/api.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'faraday/mashify' + module ActionKitRest class API < Vertebrae::API def request(*args) @@ -35,21 +37,32 @@ def default_options end def setup - connection.stack do |builder| - builder.use Faraday::Request::Multipart - builder.use Faraday::Request::UrlEncoded + # Override the faraday connection to use ActionKitRest's custom error handler + connection.faraday_connection = Faraday.new(connection.configuration.faraday_options) do |f| if connection.configuration.authenticated? - builder.use Faraday::Request::BasicAuthentication, connection.configuration.username, - connection.configuration.password + f.request :authorization, :basic, connection.configuration.username, connection.configuration.password end + f.request :multipart + f.request :url_encoded - builder.use Faraday::Response::Logger if ENV['DEBUG'] + f.response :logger if ENV['DEBUG'] - builder.use FaradayMiddleware::Mashify - builder.use FaradayMiddleware::ParseJson + unless initialisation_options[:raw] + f.response :mashify + f.response :json + end - builder.use ActionKitRest::Response::RaiseError - builder.adapter connection.configuration.adapter + f.use ActionKitRest::Response::RaiseError + + # Handle adapter registration - some adapters need to be required separately in Faraday 2.x + adapter_name = connection.configuration.adapter + begin + f.adapter adapter_name + rescue Faraday::Error => e + # Fall back to default adapter if the requested one isn't available + warn "Adapter #{adapter_name} not available (#{e.message}), falling back to default" + f.adapter Faraday.default_adapter + end end end end diff --git a/lib/action_kit_rest/response/raise_error.rb b/lib/action_kit_rest/response/raise_error.rb index 037b4a2..25de65f 100644 --- a/lib/action_kit_rest/response/raise_error.rb +++ b/lib/action_kit_rest/response/raise_error.rb @@ -2,7 +2,7 @@ module ActionKitRest module Response - class RaiseError < Faraday::Response::Middleware + class RaiseError < Faraday::Middleware def on_complete(response) status_code = response[:status].to_i if (400...600).include? status_code diff --git a/lib/action_kit_rest/user.rb b/lib/action_kit_rest/user.rb index 6c1fd6e..03b6a72 100644 --- a/lib/action_kit_rest/user.rb +++ b/lib/action_kit_rest/user.rb @@ -13,7 +13,7 @@ def get(id) # (user.phones attribute includes the path for associated phones, not the data itself) if user.id.present? && user.phones.any? phones_list = client.phone.list(user: user.id) - user.obj.phones = phones_list.obj.to_a + user.obj.phones = phones_list.collection? ? phones_list.obj.to_a : phones_list.obj end user diff --git a/lib/action_kit_rest/version.rb b/lib/action_kit_rest/version.rb index 0c7e3eb..1e4b059 100644 --- a/lib/action_kit_rest/version.rb +++ b/lib/action_kit_rest/version.rb @@ -4,7 +4,7 @@ module ActionKitRest module VERSION MAJOR = 0 MINOR = 4 - PATCH = 11 + PATCH = 12 BUILD = nil STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.') diff --git a/spec/lib/action_kit_rest/user_spec.rb b/spec/lib/action_kit_rest/user_spec.rb index c587b19..c11294c 100644 --- a/spec/lib/action_kit_rest/user_spec.rb +++ b/spec/lib/action_kit_rest/user_spec.rb @@ -38,7 +38,8 @@ let(:phone_body) { fixture('phone/object.json') } it 'should include phones' do - stub_get('phone/?user=1').to_return(body: phone_body, status: 200) + stub_get('phone/?user=1').to_return(body: phone_body, status: 200, + headers: { content_type: 'application/json; charset=utf-8' }) expect(subject.user.get(1).phones.count).to eq 3 expect(subject.user.get(1).phones.map(&:phone)).to match_array(%w[7755555555 7755555577 310-310-3310]) end From e4476e26955f5d2121e1e0438fbfe0eece75c541 Mon Sep 17 00:00:00 2001 From: Owens Ehimen Date: Mon, 9 Feb 2026 13:43:23 -0500 Subject: [PATCH 2/6] CON 889: fix rubocop --- lib/action_kit_rest/response/wrapper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/action_kit_rest/response/wrapper.rb b/lib/action_kit_rest/response/wrapper.rb index 21fa379..553dcbe 100644 --- a/lib/action_kit_rest/response/wrapper.rb +++ b/lib/action_kit_rest/response/wrapper.rb @@ -8,7 +8,7 @@ class Wrapper attr_reader :response, :kind, :obj - def_delegators :body, :empty?, :size, :include?, :length, :to_a, :first, :flatten, :include?, :keys, :[] + def_delegators :body, :empty?, :size, :include?, :length, :to_a, :first, :flatten, :keys def initialize(response) @response = response From 6928f636f897185abfd3ca2f7cf3a0f1d48be874 Mon Sep 17 00:00:00 2001 From: Owens Ehimen Date: Mon, 9 Feb 2026 16:53:33 -0500 Subject: [PATCH 3/6] CON 889: PR comments --- .ruby-version | 2 +- CHANGELOG.md | 2 +- Gemfile | 15 ++------------- action_kit_rest.gemspec | 12 ++++++++---- lib/action_kit_rest/user.rb | 2 +- lib/action_kit_rest/version.rb | 6 +++--- 6 files changed, 16 insertions(+), 23 deletions(-) diff --git a/.ruby-version b/.ruby-version index 4d54dad..1454f6e 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -4.0.2 +4.0.1 diff --git a/CHANGELOG.md b/CHANGELOG.md index bd17c2a..88579b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ## [0.4.12] - 2026-02-09 ### Changed -- Upgraded to Ruby 4.0.2 compatibility +- Upgraded to Ruby 4.0.1 compatibility - Upgraded Faraday from 1.x to 2.14.1 for Ruby 4.0+ support - Upgraded Vertebrae from 0.8.0 to 1.0.5 - Upgraded Hashie from 3.6.0 to 5.1.0 diff --git a/Gemfile b/Gemfile index e927c20..b179f07 100644 --- a/Gemfile +++ b/Gemfile @@ -2,16 +2,5 @@ source 'https://rubygems.org' -gem 'vertebrae', '>= 0.6.0' - -group :development do - gem 'bundler', '>= 2.0', '<3.0' - gem 'byebug' - gem 'em-http-request', '>=1.1.5', '<2.0' - gem 'em-synchrony', '>=1.0.6', '<2.0' - gem 'eventmachine', '>=1.2.5', '<2.0' - gem 'rake' - gem 'rspec', '~> 3.7' - gem 'rubocop' - gem 'webmock', '~> 3.3' -end +# Specify your gem's dependencies in action_kit_rest.gemspec +gemspec diff --git a/action_kit_rest.gemspec b/action_kit_rest.gemspec index 8fc85ff..3d17498 100644 --- a/action_kit_rest.gemspec +++ b/action_kit_rest.gemspec @@ -5,7 +5,7 @@ require_relative "lib/action_kit_rest/version" Gem::Specification.new do |spec| spec.name = "action_kit_rest" spec.version = ActionKitRest::VERSION::STRING - spec.authors = ["Nathan Woodhull", "Diego Marcet", "Grey Moore"] + spec.authors = ["Nathan Woodhull", "Diego Marcet", "Grey Moore", "Owens Ehimen"] spec.email = ["systems@controlshiftlabs.com"] spec.summary = "A wrapper for the ActionKit REST API" @@ -16,7 +16,8 @@ Gem::Specification.new do |spec| spec.metadata["homepage_uri"] = spec.homepage spec.metadata["source_code_uri"] = spec.homepage - spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/master/CHANGELOG.md" + spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/main/CHANGELOG.md" + spec.metadata["rubygems_mfa_required"] = "true" # Specify which files should be added to the gem when it is released. # The `git ls-files -z` loads the files in the RubyGem that have been added into git. @@ -26,10 +27,13 @@ Gem::Specification.new do |spec| f.start_with?(*%w[bin/ spec/ .git .github .document .idea coverage/]) end end - spec.require_paths = ["lib"] + spec.require_paths = ["lib"].freeze # Runtime dependencies - spec.add_dependency "vertebrae", ">= 0.6.0" + spec.add_dependency "vertebrae", ">= 1.0.5" + spec.add_dependency "faraday", "~> 2.0" # We use Faraday 2.x APIs directly (Faraday::Middleware, etc.) + spec.add_dependency "faraday-mashify", "~> 1.0" # Required in lib/action_kit_rest/api.rb + spec.add_dependency "hashie", ">= 5.0" # Development dependencies spec.add_development_dependency "bundler", ">= 2.0", "< 3.0" diff --git a/lib/action_kit_rest/user.rb b/lib/action_kit_rest/user.rb index 03b6a72..ff6e516 100644 --- a/lib/action_kit_rest/user.rb +++ b/lib/action_kit_rest/user.rb @@ -13,7 +13,7 @@ def get(id) # (user.phones attribute includes the path for associated phones, not the data itself) if user.id.present? && user.phones.any? phones_list = client.phone.list(user: user.id) - user.obj.phones = phones_list.collection? ? phones_list.obj.to_a : phones_list.obj + user.obj.phones = phones_list.obj end user diff --git a/lib/action_kit_rest/version.rb b/lib/action_kit_rest/version.rb index 1e4b059..123531b 100644 --- a/lib/action_kit_rest/version.rb +++ b/lib/action_kit_rest/version.rb @@ -2,9 +2,9 @@ module ActionKitRest module VERSION - MAJOR = 0 - MINOR = 4 - PATCH = 12 + MAJOR = 1 + MINOR = 0 + PATCH = 0 BUILD = nil STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.') From 3ddfc01c74f0b4f4d03fbf738f51eabbffdf027b Mon Sep 17 00:00:00 2001 From: Owens Ehimen Date: Mon, 9 Feb 2026 16:56:19 -0500 Subject: [PATCH 4/6] CON 889: Remove mashify require statement --- lib/action_kit_rest/api.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/action_kit_rest/api.rb b/lib/action_kit_rest/api.rb index 0da8537..fbdb3c8 100644 --- a/lib/action_kit_rest/api.rb +++ b/lib/action_kit_rest/api.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'faraday/mashify' - module ActionKitRest class API < Vertebrae::API def request(*args) From a05e6cf26461994f75348e83c20d709a8fd9ecee Mon Sep 17 00:00:00 2001 From: Owens Ehimen Date: Mon, 9 Feb 2026 16:59:16 -0500 Subject: [PATCH 5/6] CON 889: Add hashie patch number, update CHANGELOG.md --- CHANGELOG.md | 2 +- action_kit_rest.gemspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88579b0..cbaafac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [0.4.12] - 2026-02-09 +## [1.0.0] - 2026-02-09 ### Changed - Upgraded to Ruby 4.0.1 compatibility diff --git a/action_kit_rest.gemspec b/action_kit_rest.gemspec index 3d17498..572c6f0 100644 --- a/action_kit_rest.gemspec +++ b/action_kit_rest.gemspec @@ -31,9 +31,9 @@ Gem::Specification.new do |spec| # Runtime dependencies spec.add_dependency "vertebrae", ">= 1.0.5" + spec.add_dependency "hashie", "~> 5.1.0" spec.add_dependency "faraday", "~> 2.0" # We use Faraday 2.x APIs directly (Faraday::Middleware, etc.) spec.add_dependency "faraday-mashify", "~> 1.0" # Required in lib/action_kit_rest/api.rb - spec.add_dependency "hashie", ">= 5.0" # Development dependencies spec.add_development_dependency "bundler", ">= 2.0", "< 3.0" From d5780e29e3afcb19f5a2c64ccef358fd1ca2faf7 Mon Sep 17 00:00:00 2001 From: Owens Ehimen Date: Mon, 9 Feb 2026 17:01:08 -0500 Subject: [PATCH 6/6] CON 889: Update vertebrae version --- action_kit_rest.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/action_kit_rest.gemspec b/action_kit_rest.gemspec index 572c6f0..fe847c9 100644 --- a/action_kit_rest.gemspec +++ b/action_kit_rest.gemspec @@ -30,7 +30,7 @@ Gem::Specification.new do |spec| spec.require_paths = ["lib"].freeze # Runtime dependencies - spec.add_dependency "vertebrae", ">= 1.0.5" + spec.add_dependency "vertebrae", "~> 1.0.5" spec.add_dependency "hashie", "~> 5.1.0" spec.add_dependency "faraday", "~> 2.0" # We use Faraday 2.x APIs directly (Faraday::Middleware, etc.) spec.add_dependency "faraday-mashify", "~> 1.0" # Required in lib/action_kit_rest/api.rb