Skip to content

bundle add desiru should not require all of its api integrations #25

@dimroc

Description

@dimroc

In order to run desiru, one has to bundle add all of its api integrations, including:

  • grape
  • sinatra and sinatra-contrib
  • sequel
  • anthropic
  • open_router

These should be made optional.

One can see it being required here:

require_relative 'api/grape_integration'
require_relative 'api/sinatra_integration'
require_relative 'api/persistence_middleware'

require 'grape'
require 'json'
require 'rack/cors'
module Desiru
module API
# Grape integration for Desiru - automatically generate REST API endpoints from signatures
class GrapeIntegration
attr_reader :modules, :async_enabled, :stream_enabled

Example Error:

❯ bin/rails server
/Users/dimroc/.gem/ruby/3.4.2/gems/bundler-2.6.7/lib/bundler/runtime.rb:71:in 'block (2 levels) in Bundler::Runtime#require': There was an error while trying to load the gem 'desiru'. (Bundler::GemRequireError)
Gem Load Error is: cannot load such file -- grape
Backtrace for gem load error is:
/Users/dimroc/.rubies/ruby-3.4.2/lib/ruby/3.4.0/bundled_gems.rb:82:in 'Kernel.require'
/Users/dimroc/.rubies/ruby-3.4.2/lib/ruby/3.4.0/bundled_gems.rb:82:in 'block (2 levels) in Kernel#replace_require'
/Users/dimroc/.gem/ruby/3.4.2/gems/bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in 'Kernel#require'
/Users/dimroc/.gem/ruby/3.4.2/gems/zeitwerk-2.7.3/lib/zeitwerk/core_ext/kernel.rb:34:in 'Kernel#require'
/Users/dimroc/.gem/ruby/3.4.2/bundler/gems/desiru-fc1b7ca407b9/lib/desiru/api/grape_integration.rb:3:in '<main>'
/Users/dimroc/.gem/ruby/3.4.2/bundler/gems/desiru-fc1b7ca407b9/lib/desiru/api.rb:3:in 'Kernel#require_relative'
/Users/dimroc/.gem/ruby/3.4.2/bundler/gems/desiru-fc1b7ca407b9/lib/desiru/api.rb:3:in '<main>'
/Users/dimroc/.gem/ruby/3.4.2/bundler/gems/desiru-fc1b7ca407b9/lib/desiru.rb:73:in 'Kernel#require_relative'
/Users/dimroc/.gem/ruby/3.4.2/bundler/gems/desiru-fc1b7ca407b9/lib/desiru.rb:73:in '<main>'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions