# -*- encoding: utf-8 -*- # stub: karafka 2.2.2 ruby lib Gem::Specification.new do |s| s.name = "karafka".freeze s.version = "2.2.2".freeze s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= s.metadata = { "bug_tracker_uri" => "https://github.com/karafka/karafka/issues", "changelog_uri" => "https://github.com/karafka/karafka/blob/master/CHANGELOG.md", "documentation_uri" => "https://karafka.io/docs", "funding_uri" => "https://karafka.io/#become-pro", "homepage_uri" => "https://karafka.io", "rubygems_mfa_required" => "true", "source_code_uri" => "https://github.com/karafka/karafka" } if s.respond_to? :metadata= s.require_paths = ["lib".freeze] s.authors = ["Maciej Mensfeld".freeze] s.cert_chain = ["-----BEGIN CERTIFICATE-----\nMIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRAwDgYDVQQDDAdjb250\nYWN0MRcwFQYKCZImiZPyLGQBGRYHa2FyYWZrYTESMBAGCgmSJomT8ixkARkWAmlv\nMB4XDTIzMDgyMTA3MjU1NFoXDTI0MDgyMDA3MjU1NFowPzEQMA4GA1UEAwwHY29u\ndGFjdDEXMBUGCgmSJomT8ixkARkWB2thcmFma2ExEjAQBgoJkiaJk/IsZAEZFgJp\nbzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAOuZpyQKEwsTG9plLat7\n8bUaNuNBEnouTsNMr6X+XTgvyrAxTuocdsyP1sNCjdS1B8RiiDH1/Nt9qpvlBWon\nsdJ1SYhaWNVfqiYStTDnCx3PRMmHRdD4KqUWKpN6VpZ1O/Zu+9Mw0COmvXgZuuO9\nwMSJkXRo6dTCfMedLAIxjMeBIxtoLR2e6Jm6MR8+8WYYVWrO9kSOOt5eKQLBY7aK\nb/Dc40EcJKPg3Z30Pia1M9ZyRlb6SOj6SKpHRqc7vbVQxjEw6Jjal1lZ49m3YZMd\nArMAs9lQZNdSw5/UX6HWWURLowg6k10RnhTUtYyzO9BFev0JFJftHnmuk8vtb+SD\n5VPmjFXg2VOcw0B7FtG75Vackk8QKfgVe3nSPhVpew2CSPlbJzH80wChbr19+e3+\nYGr1tOiaJrL6c+PNmb0F31NXMKpj/r+n15HwlTMRxQrzFcgjBlxf2XFGnPQXHhBm\nkp1OFnEq4GG9sON4glRldkwzi/f/fGcZmo5fm3d+0ZdNgwIDAQABo3cwdTAJBgNV\nHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUPVH5+dLA80A1kJ2Uz5iGwfOa\n1+swHQYDVR0RBBYwFIESY29udGFjdEBrYXJhZmthLmlvMB0GA1UdEgQWMBSBEmNv\nbnRhY3RAa2FyYWZrYS5pbzANBgkqhkiG9w0BAQsFAAOCAYEAnpa0jcN7JzREHMTQ\nbfZ+xcvlrzuROMY6A3zIZmQgbnoZZNuX4cMRrT1p1HuwXpxdpHPw7dDjYqWw3+1h\n3mXLeMuk7amjQpYoSWU/OIZMhIsARra22UN8qkkUlUj3AwTaChVKN/bPJOM2DzfU\nkz9vUgLeYYFfQbZqeI6SsM7ltilRV4W8D9yNUQQvOxCFxtLOetJ00fC/E7zMUzbK\nIBwYFQYsbI6XQzgAIPW6nGSYKgRhkfpmquXSNKZRIQ4V6bFrufa+DzD0bt2ZA3ah\nfMmJguyb5L2Gf1zpDXzFSPMG7YQFLzwYz1zZZvOU7/UCpQsHpID/YxqDp4+Dgb+Y\nqma0whX8UG/gXFV2pYWpYOfpatvahwi+A1TwPQsuZwkkhi1OyF1At3RY+hjSXyav\nAnG1dJU+yL2BK7vaVytLTstJME5mepSZ46qqIJXMuWob/YPDmVaBF39TDSG9e34s\nmsG3BiCqgOgHAnL23+CN3Rt8MsuRfEtoTKpJVcCfoEoNHOkc\n-----END CERTIFICATE-----\n".freeze] s.date = "2023-09-11" s.description = " Karafka is Ruby and Rails efficient Kafka processing framework.\n\n Karafka allows you to capture everything that happens in your systems in large scale,\n without having to focus on things that are not your business domain.\n".freeze s.email = ["contact@karafka.io".freeze] s.executables = ["karafka".freeze] s.files = [".coditsu/ci.yml".freeze, ".console_irbrc".freeze, ".diffend.yml".freeze, ".github/FUNDING.yml".freeze, ".github/ISSUE_TEMPLATE/bug_report.md".freeze, ".github/ISSUE_TEMPLATE/feature_request.md".freeze, ".github/workflows/ci.yml".freeze, ".gitignore".freeze, ".rspec".freeze, ".ruby-gemset".freeze, ".ruby-version".freeze, "CHANGELOG.md".freeze, "CODE_OF_CONDUCT.md".freeze, "CONTRIBUTING.md".freeze, "Gemfile".freeze, "Gemfile.lock".freeze, "LICENSE".freeze, "LICENSE-COMM".freeze, "LICENSE-LGPL".freeze, "README.md".freeze, "bin/benchmarks".freeze, "bin/create_token".freeze, "bin/integrations".freeze, "bin/karafka".freeze, "bin/record_rss".freeze, "bin/rspecs".freeze, "bin/scenario".freeze, "bin/stress_many".freeze, "bin/stress_one".freeze, "bin/verify_license_integrity".freeze, "certs/cert_chain.pem".freeze, "certs/karafka-pro.pem".freeze, "config/locales/errors.yml".freeze, "config/locales/pro_errors.yml".freeze, "docker-compose.yml".freeze, "karafka.gemspec".freeze, "lib/active_job/karafka.rb".freeze, "lib/active_job/queue_adapters/karafka_adapter.rb".freeze, "lib/karafka.rb".freeze, "lib/karafka/active_job/consumer.rb".freeze, "lib/karafka/active_job/current_attributes.rb".freeze, "lib/karafka/active_job/current_attributes/loading.rb".freeze, "lib/karafka/active_job/current_attributes/persistence.rb".freeze, "lib/karafka/active_job/dispatcher.rb".freeze, "lib/karafka/active_job/job_extensions.rb".freeze, "lib/karafka/active_job/job_options_contract.rb".freeze, "lib/karafka/admin.rb".freeze, "lib/karafka/app.rb".freeze, "lib/karafka/base_consumer.rb".freeze, "lib/karafka/cli.rb".freeze, "lib/karafka/cli/base.rb".freeze, "lib/karafka/cli/console.rb".freeze, "lib/karafka/cli/info.rb".freeze, "lib/karafka/cli/install.rb".freeze, "lib/karafka/cli/server.rb".freeze, "lib/karafka/cli/topics.rb".freeze, "lib/karafka/connection/client.rb".freeze, "lib/karafka/connection/consumer_group_coordinator.rb".freeze, "lib/karafka/connection/listener.rb".freeze, "lib/karafka/connection/listeners_batch.rb".freeze, "lib/karafka/connection/messages_buffer.rb".freeze, "lib/karafka/connection/pauses_manager.rb".freeze, "lib/karafka/connection/proxy.rb".freeze, "lib/karafka/connection/raw_messages_buffer.rb".freeze, "lib/karafka/connection/rebalance_manager.rb".freeze, "lib/karafka/contracts.rb".freeze, "lib/karafka/contracts/base.rb".freeze, "lib/karafka/contracts/config.rb".freeze, "lib/karafka/contracts/consumer_group.rb".freeze, "lib/karafka/contracts/server_cli_options.rb".freeze, "lib/karafka/contracts/topic.rb".freeze, "lib/karafka/embedded.rb".freeze, "lib/karafka/env.rb".freeze, "lib/karafka/errors.rb".freeze, "lib/karafka/helpers/async.rb".freeze, "lib/karafka/helpers/colorize.rb".freeze, "lib/karafka/helpers/multi_delegator.rb".freeze, "lib/karafka/instrumentation/callbacks/error.rb".freeze, "lib/karafka/instrumentation/callbacks/statistics.rb".freeze, "lib/karafka/instrumentation/logger.rb".freeze, "lib/karafka/instrumentation/logger_listener.rb".freeze, "lib/karafka/instrumentation/monitor.rb".freeze, "lib/karafka/instrumentation/notifications.rb".freeze, "lib/karafka/instrumentation/proctitle_listener.rb".freeze, "lib/karafka/instrumentation/vendors/datadog/dashboard.json".freeze, "lib/karafka/instrumentation/vendors/datadog/logger_listener.rb".freeze, "lib/karafka/instrumentation/vendors/datadog/metrics_listener.rb".freeze, "lib/karafka/instrumentation/vendors/kubernetes/liveness_listener.rb".freeze, "lib/karafka/licenser.rb".freeze, "lib/karafka/messages/batch_metadata.rb".freeze, "lib/karafka/messages/builders/batch_metadata.rb".freeze, "lib/karafka/messages/builders/message.rb".freeze, "lib/karafka/messages/builders/messages.rb".freeze, "lib/karafka/messages/message.rb".freeze, "lib/karafka/messages/messages.rb".freeze, "lib/karafka/messages/metadata.rb".freeze, "lib/karafka/messages/parser.rb".freeze, "lib/karafka/messages/seek.rb".freeze, "lib/karafka/patches/rdkafka/bindings.rb".freeze, "lib/karafka/pro.rb".freeze, "lib/karafka/pro/active_job/consumer.rb".freeze, "lib/karafka/pro/active_job/dispatcher.rb".freeze, "lib/karafka/pro/active_job/job_options_contract.rb".freeze, "lib/karafka/pro/cleaner.rb".freeze, "lib/karafka/pro/cleaner/errors.rb".freeze, "lib/karafka/pro/cleaner/messages/message.rb".freeze, "lib/karafka/pro/cleaner/messages/messages.rb".freeze, "lib/karafka/pro/contracts/base.rb".freeze, "lib/karafka/pro/contracts/server_cli_options.rb".freeze, "lib/karafka/pro/encryption.rb".freeze, "lib/karafka/pro/encryption/cipher.rb".freeze, "lib/karafka/pro/encryption/contracts/config.rb".freeze, "lib/karafka/pro/encryption/errors.rb".freeze, "lib/karafka/pro/encryption/messages/middleware.rb".freeze, "lib/karafka/pro/encryption/messages/parser.rb".freeze, "lib/karafka/pro/encryption/setup/config.rb".freeze, "lib/karafka/pro/iterator.rb".freeze, "lib/karafka/pro/iterator/expander.rb".freeze, "lib/karafka/pro/iterator/tpl_builder.rb".freeze, "lib/karafka/pro/loader.rb".freeze, "lib/karafka/pro/performance_tracker.rb".freeze, "lib/karafka/pro/processing/collapser.rb".freeze, "lib/karafka/pro/processing/coordinator.rb".freeze, "lib/karafka/pro/processing/filters/base.rb".freeze, "lib/karafka/pro/processing/filters/delayer.rb".freeze, "lib/karafka/pro/processing/filters/expirer.rb".freeze, "lib/karafka/pro/processing/filters/throttler.rb".freeze, "lib/karafka/pro/processing/filters/virtual_limiter.rb".freeze, "lib/karafka/pro/processing/filters_applier.rb".freeze, "lib/karafka/pro/processing/jobs/consume_non_blocking.rb".freeze, "lib/karafka/pro/processing/jobs/revoked_non_blocking.rb".freeze, "lib/karafka/pro/processing/jobs_builder.rb".freeze, "lib/karafka/pro/processing/partitioner.rb".freeze, "lib/karafka/pro/processing/scheduler.rb".freeze, "lib/karafka/pro/processing/strategies.rb".freeze, "lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom.rb".freeze, "lib/karafka/pro/processing/strategies/aj/dlq_ftr_lrj_mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/aj/dlq_ftr_mom.rb".freeze, "lib/karafka/pro/processing/strategies/aj/dlq_ftr_mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/aj/dlq_lrj_mom.rb".freeze, "lib/karafka/pro/processing/strategies/aj/dlq_lrj_mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/aj/dlq_mom.rb".freeze, "lib/karafka/pro/processing/strategies/aj/dlq_mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom.rb".freeze, "lib/karafka/pro/processing/strategies/aj/ftr_lrj_mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/aj/ftr_mom.rb".freeze, "lib/karafka/pro/processing/strategies/aj/ftr_mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/aj/lrj_mom.rb".freeze, "lib/karafka/pro/processing/strategies/aj/lrj_mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/aj/mom.rb".freeze, "lib/karafka/pro/processing/strategies/aj/mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/base.rb".freeze, "lib/karafka/pro/processing/strategies/default.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/default.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/ftr.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/ftr_lrj.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/ftr_lrj_mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/ftr_lrj_vp.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/ftr_mom.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/ftr_mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/ftr_vp.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/lrj.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/lrj_mom.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/lrj_mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/lrj_vp.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/mom.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/dlq/vp.rb".freeze, "lib/karafka/pro/processing/strategies/ftr/default.rb".freeze, "lib/karafka/pro/processing/strategies/ftr/vp.rb".freeze, "lib/karafka/pro/processing/strategies/lrj/default.rb".freeze, "lib/karafka/pro/processing/strategies/lrj/ftr.rb".freeze, "lib/karafka/pro/processing/strategies/lrj/ftr_mom.rb".freeze, "lib/karafka/pro/processing/strategies/lrj/ftr_mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/lrj/ftr_vp.rb".freeze, "lib/karafka/pro/processing/strategies/lrj/mom.rb".freeze, "lib/karafka/pro/processing/strategies/lrj/mom_vp.rb".freeze, "lib/karafka/pro/processing/strategies/lrj/vp.rb".freeze, "lib/karafka/pro/processing/strategies/mom/default.rb".freeze, "lib/karafka/pro/processing/strategies/mom/ftr.rb".freeze, "lib/karafka/pro/processing/strategies/mom/ftr_vp.rb".freeze, "lib/karafka/pro/processing/strategies/mom/vp.rb".freeze, "lib/karafka/pro/processing/strategies/vp/default.rb".freeze, "lib/karafka/pro/processing/strategy_selector.rb".freeze, "lib/karafka/pro/processing/virtual_offset_manager.rb".freeze, "lib/karafka/pro/routing/features/active_job.rb".freeze, "lib/karafka/pro/routing/features/active_job/builder.rb".freeze, "lib/karafka/pro/routing/features/base.rb".freeze, "lib/karafka/pro/routing/features/dead_letter_queue.rb".freeze, "lib/karafka/pro/routing/features/dead_letter_queue/contracts/topic.rb".freeze, "lib/karafka/pro/routing/features/delaying.rb".freeze, "lib/karafka/pro/routing/features/delaying/config.rb".freeze, "lib/karafka/pro/routing/features/delaying/contracts/topic.rb".freeze, "lib/karafka/pro/routing/features/delaying/topic.rb".freeze, "lib/karafka/pro/routing/features/expiring.rb".freeze, "lib/karafka/pro/routing/features/expiring/config.rb".freeze, "lib/karafka/pro/routing/features/expiring/contracts/topic.rb".freeze, "lib/karafka/pro/routing/features/expiring/topic.rb".freeze, "lib/karafka/pro/routing/features/filtering.rb".freeze, "lib/karafka/pro/routing/features/filtering/config.rb".freeze, "lib/karafka/pro/routing/features/filtering/contracts/topic.rb".freeze, "lib/karafka/pro/routing/features/filtering/topic.rb".freeze, "lib/karafka/pro/routing/features/long_running_job.rb".freeze, "lib/karafka/pro/routing/features/long_running_job/config.rb".freeze, "lib/karafka/pro/routing/features/long_running_job/contracts/topic.rb".freeze, "lib/karafka/pro/routing/features/long_running_job/topic.rb".freeze, "lib/karafka/pro/routing/features/patterns.rb".freeze, "lib/karafka/pro/routing/features/patterns/builder.rb".freeze, "lib/karafka/pro/routing/features/patterns/config.rb".freeze, "lib/karafka/pro/routing/features/patterns/consumer_group.rb".freeze, "lib/karafka/pro/routing/features/patterns/contracts/consumer_group.rb".freeze, "lib/karafka/pro/routing/features/patterns/contracts/pattern.rb".freeze, "lib/karafka/pro/routing/features/patterns/contracts/topic.rb".freeze, "lib/karafka/pro/routing/features/patterns/detector.rb".freeze, "lib/karafka/pro/routing/features/patterns/pattern.rb".freeze, "lib/karafka/pro/routing/features/patterns/patterns.rb".freeze, "lib/karafka/pro/routing/features/patterns/topic.rb".freeze, "lib/karafka/pro/routing/features/patterns/topics.rb".freeze, "lib/karafka/pro/routing/features/pausing.rb".freeze, "lib/karafka/pro/routing/features/pausing/contracts/topic.rb".freeze, "lib/karafka/pro/routing/features/pausing/topic.rb".freeze, "lib/karafka/pro/routing/features/throttling.rb".freeze, "lib/karafka/pro/routing/features/throttling/config.rb".freeze, "lib/karafka/pro/routing/features/throttling/contracts/topic.rb".freeze, "lib/karafka/pro/routing/features/throttling/topic.rb".freeze, "lib/karafka/pro/routing/features/virtual_partitions.rb".freeze, "lib/karafka/pro/routing/features/virtual_partitions/config.rb".freeze, "lib/karafka/pro/routing/features/virtual_partitions/contracts/topic.rb".freeze, "lib/karafka/pro/routing/features/virtual_partitions/topic.rb".freeze, "lib/karafka/process.rb".freeze, "lib/karafka/processing/coordinator.rb".freeze, "lib/karafka/processing/coordinators_buffer.rb".freeze, "lib/karafka/processing/executor.rb".freeze, "lib/karafka/processing/executors_buffer.rb".freeze, "lib/karafka/processing/jobs/base.rb".freeze, "lib/karafka/processing/jobs/consume.rb".freeze, "lib/karafka/processing/jobs/idle.rb".freeze, "lib/karafka/processing/jobs/revoked.rb".freeze, "lib/karafka/processing/jobs/shutdown.rb".freeze, "lib/karafka/processing/jobs_builder.rb".freeze, "lib/karafka/processing/jobs_queue.rb".freeze, "lib/karafka/processing/partitioner.rb".freeze, "lib/karafka/processing/result.rb".freeze, "lib/karafka/processing/scheduler.rb".freeze, "lib/karafka/processing/strategies/aj_dlq_mom.rb".freeze, "lib/karafka/processing/strategies/aj_mom.rb".freeze, "lib/karafka/processing/strategies/base.rb".freeze, "lib/karafka/processing/strategies/default.rb".freeze, "lib/karafka/processing/strategies/dlq.rb".freeze, "lib/karafka/processing/strategies/dlq_mom.rb".freeze, "lib/karafka/processing/strategies/mom.rb".freeze, "lib/karafka/processing/strategy_selector.rb".freeze, "lib/karafka/processing/worker.rb".freeze, "lib/karafka/processing/workers_batch.rb".freeze, "lib/karafka/railtie.rb".freeze, "lib/karafka/routing/activity_manager.rb".freeze, "lib/karafka/routing/builder.rb".freeze, "lib/karafka/routing/consumer_group.rb".freeze, "lib/karafka/routing/consumer_mapper.rb".freeze, "lib/karafka/routing/features/active_job.rb".freeze, "lib/karafka/routing/features/active_job/builder.rb".freeze, "lib/karafka/routing/features/active_job/config.rb".freeze, "lib/karafka/routing/features/active_job/contracts/topic.rb".freeze, "lib/karafka/routing/features/active_job/proxy.rb".freeze, "lib/karafka/routing/features/active_job/topic.rb".freeze, "lib/karafka/routing/features/base.rb".freeze, "lib/karafka/routing/features/base/expander.rb".freeze, "lib/karafka/routing/features/dead_letter_queue.rb".freeze, "lib/karafka/routing/features/dead_letter_queue/config.rb".freeze, "lib/karafka/routing/features/dead_letter_queue/contracts/topic.rb".freeze, "lib/karafka/routing/features/dead_letter_queue/topic.rb".freeze, "lib/karafka/routing/features/declaratives.rb".freeze, "lib/karafka/routing/features/declaratives/config.rb".freeze, "lib/karafka/routing/features/declaratives/contracts/topic.rb".freeze, "lib/karafka/routing/features/declaratives/topic.rb".freeze, "lib/karafka/routing/features/manual_offset_management.rb".freeze, "lib/karafka/routing/features/manual_offset_management/config.rb".freeze, "lib/karafka/routing/features/manual_offset_management/contracts/topic.rb".freeze, "lib/karafka/routing/features/manual_offset_management/topic.rb".freeze, "lib/karafka/routing/proxy.rb".freeze, "lib/karafka/routing/router.rb".freeze, "lib/karafka/routing/subscription_group.rb".freeze, "lib/karafka/routing/subscription_groups_builder.rb".freeze, "lib/karafka/routing/topic.rb".freeze, "lib/karafka/routing/topics.rb".freeze, "lib/karafka/runner.rb".freeze, "lib/karafka/serialization/json/deserializer.rb".freeze, "lib/karafka/server.rb".freeze, "lib/karafka/setup/attributes_map.rb".freeze, "lib/karafka/setup/config.rb".freeze, "lib/karafka/setup/dsl.rb".freeze, "lib/karafka/status.rb".freeze, "lib/karafka/templates/application_consumer.rb.erb".freeze, "lib/karafka/templates/example_consumer.rb.erb".freeze, "lib/karafka/templates/karafka.rb.erb".freeze, "lib/karafka/time_trackers/base.rb".freeze, "lib/karafka/time_trackers/pause.rb".freeze, "lib/karafka/time_trackers/poll.rb".freeze, "lib/karafka/version.rb".freeze, "log/.gitkeep".freeze, "renovate.json".freeze] s.homepage = "https://karafka.io".freeze s.licenses = ["LGPL-3.0".freeze, "Commercial".freeze] s.rubygems_version = "3.5.10".freeze s.summary = "Karafka is Ruby and Rails efficient Kafka processing framework.".freeze s.specification_version = 4 s.add_runtime_dependency(%q.freeze, [">= 2.2.2".freeze, "< 2.3.0".freeze]) s.add_runtime_dependency(%q.freeze, [">= 0.20".freeze]) s.add_runtime_dependency(%q.freeze, [">= 2.6.6".freeze, "< 3.0.0".freeze]) s.add_runtime_dependency(%q.freeze, ["~> 2.3".freeze]) end