diff --git a/lib/pbbuilder.rb b/lib/pbbuilder.rb index 6e7db10..ba21f63 100644 --- a/lib/pbbuilder.rb +++ b/lib/pbbuilder.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require "pbbuilder/pbbuilder" require 'pbbuilder/errors' require "pbbuilder/protobuf_extension" require "pbbuilder/railtie" if defined?(Rails) @@ -29,7 +28,7 @@ # It basically works exactly like jbuilder. The main difference is that it can use introspection to figure out what kind # of protobuf message it needs to create. -class Pbbuilder +class Pbbuilder < BasicObject def initialize(message) @message = message @@ -48,6 +47,13 @@ def respond_to_missing?(field) !!_descriptor_for_field(field) end + # Make it possible to raise - this is the same functionality + # that ActiveSupport::BasicObject used to be adding to BasicObject, + # mostly for convenience + def raise(*args) + ::Object.send(:raise, *args) + end + def set!(field, *args, &block) name = field.to_s descriptor = _descriptor_for_field(name) diff --git a/lib/pbbuilder/pbbuilder.rb b/lib/pbbuilder/pbbuilder.rb deleted file mode 100644 index 7f48486..0000000 --- a/lib/pbbuilder/pbbuilder.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -Pbbuilder = Class.new(begin - require 'active_support/proxy_object' - ActiveSupport::ProxyObject -rescue LoadError - require 'active_support/basic_object' - ActiveSupport::BasicObject -end) \ No newline at end of file