-
Notifications
You must be signed in to change notification settings - Fork 1
884: Ruby 4 upgrade #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
2eb1002
7753afd
0509c22
7825b14
4ddac64
9bc4d78
75eb6ec
2a83a97
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| 3.2.2 | ||
| 4.0.1 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| # Changelog | ||
|
|
||
| All notable changes to this project will be documented in this file. | ||
|
|
||
| The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), | ||
| and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||
|
|
||
| ## [1.0.0] - 2026-02-11 | ||
|
|
||
| ### Breaking Changes | ||
| - Now requires Faraday 2.x (previously supported Faraday 1.x) | ||
| - Dropped support for Ruby versions older than 3.3. Officially supported versions are Ruby 3.3, 3.4, and 4.0. | ||
|
|
||
| ### Added | ||
| - `ServerError` exception class for 500-599 status codes | ||
| - `ClientError` exception class for 400-499 status codes (except 401/404) | ||
| - Comprehensive test coverage for all error scenarios (401, 404, 400, 422, 500, 503) | ||
|
|
||
| ### Removed | ||
| - Removed juwelier dependency and tasks | ||
|
|
||
| ## [0.5.1] - Previous release | ||
|
|
||
| (Previous changelog entries would go here) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,13 +1,4 @@ | ||
| source "https://rubygems.org" | ||
|
|
||
| gem 'faraday', '> 0.15' | ||
|
|
||
| group :development do | ||
| gem 'rspec' | ||
| gem 'juwelier', git: 'https://github.com/flajann2/juwelier.git' | ||
| gem 'rake' | ||
| gem 'webmock' | ||
| gem 'rubocop' | ||
| gem 'dotenv' | ||
| gem 'byebug' | ||
| end | ||
| # Specify your gem's dependencies in mobilize-america-client.gemspec | ||
| gemspec |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,51 +1,8 @@ | ||
| # encoding: utf-8 | ||
|
|
||
| require 'rubygems' | ||
| require 'bundler' | ||
| begin | ||
| Bundler.setup(:default, :development) | ||
| rescue Bundler::BundlerError => e | ||
| $stderr.puts e.message | ||
| $stderr.puts "Run `bundle install` to install missing gems" | ||
| exit e.status_code | ||
| end | ||
| require 'rake' | ||
| require 'juwelier' | ||
| Juwelier::Tasks.new do |gem| | ||
| # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options | ||
| gem.name = "mobilize-america-client" | ||
| gem.homepage = "http://github.com/controlshift/mobilize_america_client" | ||
| gem.license = "MIT" | ||
| gem.summary = %Q{Client gem for the MobilizeAmerica API} | ||
| gem.email = "grey@controlshiftlabs.com" | ||
| gem.authors = ["Grey Moore"] | ||
|
|
||
| # dependencies defined in Gemfile | ||
| end | ||
| Juwelier::RubygemsDotOrgTasks.new | ||
| # frozen_string_literal: true | ||
|
|
||
| require 'bundler/gem_tasks' | ||
| require 'rspec/core/rake_task' | ||
| desc "Run specs" | ||
| RSpec::Core::RakeTask.new do |t| | ||
| t.pattern = "./spec/**/*_spec.rb" # don't need this, it's default. | ||
| t.rspec_opts = '--color' | ||
| end | ||
|
|
||
|
|
||
| desc "Code coverage detail" | ||
| task :simplecov do | ||
| ENV['COVERAGE'] = "true" | ||
| Rake::Task['test'].execute | ||
| end | ||
|
|
||
| task :default => :spec | ||
|
|
||
| require 'rdoc/task' | ||
| Rake::RDocTask.new do |rdoc| | ||
| version = File.exist?('VERSION') ? File.read('VERSION') : "" | ||
| RSpec::Core::RakeTask.new(:spec) | ||
|
|
||
| rdoc.rdoc_dir = 'rdoc' | ||
| rdoc.title = "mobilize-america-client #{version}" | ||
| rdoc.rdoc_files.include('README*') | ||
| rdoc.rdoc_files.include('lib/**/*.rb') | ||
| end | ||
| task default: :spec |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| 0.5.1 | ||
| 1.0.0 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,71 +1,39 @@ | ||
| # Generated by juwelier | ||
| # DO NOT EDIT THIS FILE DIRECTLY | ||
| # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec' | ||
| # -*- encoding: utf-8 -*- | ||
| # stub: mobilize-america-client 0.5.1 ruby lib | ||
| # frozen_string_literal: true | ||
|
|
||
| Gem::Specification.new do |s| | ||
| s.name = "mobilize-america-client".freeze | ||
| s.version = "0.5.1" | ||
| lib = File.expand_path('lib', __dir__) | ||
| $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) | ||
|
|
||
| s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= | ||
| s.require_paths = ["lib".freeze] | ||
| s.authors = ["Grey Moore".freeze] | ||
| s.date = "2023-03-02" | ||
| s.email = "grey@controlshiftlabs.com".freeze | ||
| s.executables = ["console".freeze, "setup".freeze] | ||
| s.extra_rdoc_files = [ | ||
| "LICENSE", | ||
| "LICENSE.txt", | ||
| "README.md" | ||
| ] | ||
| s.files = [ | ||
| ".github/workflows/ci.yml", | ||
| ".rspec", | ||
| ".rubocop.yml", | ||
| ".ruby-gemset", | ||
| ".ruby-version", | ||
| "CODE_OF_CONDUCT.md", | ||
| "Gemfile", | ||
| "LICENSE", | ||
| "LICENSE.txt", | ||
| "README.md", | ||
| "Rakefile", | ||
| "VERSION", | ||
| "bin/console", | ||
| "bin/setup", | ||
| "example.rb", | ||
| "lib/mobilize_america_client.rb", | ||
| "lib/mobilize_america_client/client.rb", | ||
| "lib/mobilize_america_client/client/attendances.rb", | ||
| "lib/mobilize_america_client/client/enums.rb", | ||
| "lib/mobilize_america_client/client/events.rb", | ||
| "lib/mobilize_america_client/client/organizations.rb", | ||
| "lib/mobilize_america_client/errors.rb", | ||
| "lib/mobilize_america_client/request.rb", | ||
| "mobilize-america-client.gemspec", | ||
| "spec/client/attendances_spec.rb", | ||
| "spec/client/client_spec.rb", | ||
| "spec/client/enums_spec.rb", | ||
| "spec/client/events_spec.rb", | ||
| "spec/client/organizations_spec.rb", | ||
| "spec/fixtures/organizations.json", | ||
| "spec/spec_helper.rb" | ||
| ] | ||
| s.homepage = "http://github.com/controlshift/mobilize_america_client".freeze | ||
| s.licenses = ["MIT".freeze] | ||
| s.rubygems_version = "3.4.3".freeze | ||
| s.summary = "Client gem for the MobilizeAmerica API".freeze | ||
| Gem::Specification.new do |spec| | ||
| spec.name = 'mobilize-america-client' | ||
| spec.version = File.read(File.expand_path('VERSION', __dir__)).strip | ||
| spec.authors = ['Grey Moore', 'Owens Ehimen', 'Diego Marcet'] | ||
| spec.email = ['talk@controlshiftlabs.com'] | ||
|
|
||
| s.specification_version = 4 | ||
| spec.summary = 'Client gem for the MobilizeAmerica API' | ||
| spec.description = 'A Ruby client library for the MobilizeAmerica API' | ||
| spec.homepage = 'https://github.com/controlshift/mobilize_america_client' | ||
| spec.license = 'MIT' | ||
|
|
||
| s.add_runtime_dependency(%q<faraday>.freeze, ["> 0.15"]) | ||
| s.add_development_dependency(%q<rspec>.freeze, [">= 0"]) | ||
| s.add_development_dependency(%q<juwelier>.freeze, [">= 0"]) | ||
| s.add_development_dependency(%q<rake>.freeze, [">= 0"]) | ||
| s.add_development_dependency(%q<webmock>.freeze, [">= 0"]) | ||
| s.add_development_dependency(%q<rubocop>.freeze, [">= 0"]) | ||
| s.add_development_dependency(%q<dotenv>.freeze, [">= 0"]) | ||
| s.add_development_dependency(%q<byebug>.freeze, [">= 0"]) | ||
| end | ||
| spec.files = Dir.chdir(File.expand_path(__dir__)) do | ||
| `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } | ||
| end | ||
| spec.bindir = 'bin' | ||
| spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I know this was in here before, but is the stuff in
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Autogenerated stubs - best to leave it in IMO
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🤷 I'm happy to keep the stubs, but making them part of the released gem feels like an accident. It would be unexpected for a client who installed this gem in their project to type "console" or "setup" and get something specific to the gem. (My understanding is that the
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I havent released the gem yet so I can take it out |
||
| spec.require_paths = ['lib'] | ||
|
|
||
| spec.required_ruby_version = ['>= 3.3', '< 5.0'] | ||
|
|
||
| # Runtime dependencies | ||
| spec.add_runtime_dependency 'faraday', '~> 2.0' | ||
|
|
||
| # Development dependencies | ||
| spec.add_development_dependency 'bundler', '>= 2.0', '< 5.0' | ||
| spec.add_development_dependency 'byebug', '~> 13.0' | ||
| spec.add_development_dependency 'dotenv', '~> 3.0' | ||
| spec.add_development_dependency 'rake', '~> 13.0' | ||
| spec.add_development_dependency 'rspec', '~> 3.0' | ||
| spec.add_development_dependency 'rubocop', '~> 1.0' | ||
| spec.add_development_dependency 'webmock', '~> 3.0' | ||
|
|
||
| spec.metadata['rubygems_mfa_required'] = 'true' | ||
| end | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!