我有一个PORO,我用它作为值对象。我正在通过添加ActiveModel
include ActiveModel::Model
srb tc
我当前正在使用
sorbet-rails
因为这是一个波罗,并没有继承
ActiveRecord
,
bundle exec rails_rbi:all
或
bundle exec rails_rbi:models
我
手动编写.rbi文件,但我真的不想这样做。有没有一种方法可以自动生成它们?
这是一个我需要一个RBI文件的模块的一个被复制的例子
module MyModule
class MyClass
include ActiveModel::Model
extend T::Sig
VALID_VARIANTS = T.let(['Enum1', 'Enum2'], T::Array[String])
sig { returns(String) }
attr_accessor :variant
validates :variant, presence: true, inclusion: { in: VALID_VARIANTS }
validate :enum_1_is_valid, if: Proc.new { |a| a.variant == 'Enum1' }
private
sig { void }
def enum_1_is_valid
# ...
end
end
end